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

A2443b68836f2d166eae52b940e99bf6?s=128

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
  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
  3. ▰ Cloud Native, k8s, etc ▰ Google Cloud Study Jams

    ▰ Case studies ▰ Telegram channel ▰ Voice chats
  4. What is Cloud Native?

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

    ▰ Serverless ▰ Cloud Native
  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
  7. What Tools do you need for Cloud Native?

  8. None
  9. “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
  10. ▰ Graduated 16 ▰ Incubating 22 ▰ Sandbox 60

  11. 11 What should I learn?

  12. 12 What should I learn?

  13. 13 What should I learn?

  14. Learn principles, not tools. Change mindset.

  15. Principles

  16. Cloud Native ▰ Distributed system – Cloud provider services ▰

    DevOps – 12 Factors & CI/CD ▰ Serverless – Containers & Functions
  17. Learn principles, not tools.

  18. Distributed systems

  19. 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
  20. 12 Factors

  21. 12factor.net

  22. What is Quality? 22 Explicitly declare and isolate dependencies ▰

    declaration VS isolation ▰ never relies on implicit existence ▰ system tool can be a dependency
  23. 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.
  24. 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
  25. What is Quality? 25 Strictly separate build and run stages

    ▰ Artifact ▰ Build ▰ Release ▰ Run time ▰ Dry run
  26. What is Quality? 26 Execute the app as one or

    more stateless processes ▰ stateless ▰ share-nothing ▰ state stored at backing-service
  27. What is Quality? 27 Scale out via the process model

    ▰ Unix ▰ process ▰ should never daemonize ▰ Use process manager like systemd
  28. What is Quality? 28 ▰ Same backing services ▰ Same

    lib versions ▰ Same bla-bla for Reproducibility
  29. stdout stderr

  30. Serverless

  31. None
  32. None
  33. None
  34. Cases

  35. How will you implement avatar uploading?

  36. None
  37. None
  38. How will you work with service what has 99% SLA?

  39. None
  40. QUESTIONS TIME! Waiting for you at the Panel Discussion and

    at the channel ➡