Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Native Approach for Node.js Developers

Cloud Native Approach for Node.js Developers

Nikita Galkin

August 21, 2021
Tweet

More Decks by Nikita Galkin

Other Decks in Programming

Transcript

  1. Cloud Native Approach
    for Node.js Developers
    by Nikita Galkin
    Aug 21, 2021

    View full-size slide

  2. Nikita
    Galkin
    Love and Know:
    ▰ How to make developers and business happy
    ▰ Technical and process debt elimination
    Believe that:
    ▰ Any problem must be solved at the right level
    ▰ Software is easy. People are hard
    ▰ A problem should be highlighted, an idea should
    be "sold", a solution should be demonstrated
    Links:
    Site GitHub Twitter Facebook
    2

    View full-size slide

  3. ▰ Cloud Native, k8s, etc
    ▰ Google Cloud Study Jams
    ▰ Case studies
    ▰ Telegram channel
    ▰ Voice chats

    View full-size slide

  4. What is
    Cloud
    Native?

    View full-size slide

  5. How host Node.js?
    ▰ Virtual machine
    ▰ Docker
    ▰ Kubernetes
    ▰ Serverless
    ▰ Cloud Native

    View full-size slide

  6. “A new computing paradigm that is
    optimized for modern distributed
    systems environments capable of
    scaling to tens of thousands of self
    healing multi-tenant nodes”
    Cloud Native Computing Foundation

    View full-size slide

  7. What Tools
    do you need
    for Cloud
    Native?

    View full-size slide

  8. “You are viewing 1,749 cards with
    a total of 2,916,324 stars, market
    cap of $23.1T and funding of
    $30.5B.”
    Cloud Native Computing Foundation

    View full-size slide

  9. ▰ Graduated 16
    ▰ Incubating 22
    ▰ Sandbox 60

    View full-size slide

  10. 11
    What should I learn?

    View full-size slide

  11. 12
    What should I learn?

    View full-size slide

  12. 13
    What should I learn?

    View full-size slide

  13. Learn principles,
    not tools.
    Change mindset.

    View full-size slide

  14. Cloud Native
    ▰ Distributed system –
    Cloud provider services
    ▰ DevOps – 12 Factors &
    CI/CD
    ▰ Serverless – Containers
    & Functions

    View full-size slide

  15. Learn principles, not tools.

    View full-size slide

  16. Distributed
    systems

    View full-size slide

  17. per year per quarter per month per week per day per hour
    90% 36.5 days 9 days 3 days 16.8 hours 2.4 hours 6 minutes
    95% 18.25 days 4.5 days 1.5 days 8.4 hours 1.2 hours 3 minutes
    99% 3.65 days 21.6 hours 7.2 hours 1.68 hours 14.4 minutes 36 seconds
    99.5% 1.83 days 10.8 hours 3.6 hours 50.4 minutes 7.20 minutes 18 seconds

    View full-size slide

  18. 12factor.net

    View full-size slide

  19. What is Quality?
    22
    Explicitly declare and
    isolate dependencies
    ▰ declaration VS isolation
    ▰ never relies on implicit
    existence
    ▰ system tool can be a
    dependency

    View full-size slide

  20. What is Quality?
    23
    Store config in the
    environment
    ▰ Config is not part of the
    artifact
    ▰ could be made open source
    at any moment, without
    compromising any
    credentials.

    View full-size slide

  21. What is Quality?
    24
    Treat backing services as
    attached resources
    ▰ local and third party parity
    ▰ Attach URL or other
    locator/credentials stored in
    the config

    View full-size slide

  22. What is Quality?
    25
    Strictly separate build and
    run stages
    ▰ Artifact
    ▰ Build
    ▰ Release
    ▰ Run time
    ▰ Dry run

    View full-size slide

  23. What is Quality?
    26
    Execute the app as one or
    more stateless processes
    ▰ stateless
    ▰ share-nothing
    ▰ state stored at
    backing-service

    View full-size slide

  24. What is Quality?
    27
    Scale out via the process
    model
    ▰ Unix
    ▰ process
    ▰ should never daemonize
    ▰ Use process manager like
    systemd

    View full-size slide

  25. What is Quality?
    28
    ▰ Same backing services
    ▰ Same lib versions
    ▰ Same bla-bla for
    Reproducibility

    View full-size slide

  26. stdout stderr

    View full-size slide

  27. How will you
    implement avatar
    uploading?

    View full-size slide

  28. How will you
    work with service
    what has 99%
    SLA?

    View full-size slide

  29. QUESTIONS TIME!
    Waiting for you
    at the Panel
    Discussion
    and
    at the channel ➡

    View full-size slide