Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

What is Cloud Native?

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

“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

Slide 7

Slide 7 text

What Tools do you need for Cloud Native?

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

“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

Slide 10

Slide 10 text

▰ Graduated 16 ▰ Incubating 22 ▰ Sandbox 60

Slide 11

Slide 11 text

11 What should I learn?

Slide 12

Slide 12 text

12 What should I learn?

Slide 13

Slide 13 text

13 What should I learn?

Slide 14

Slide 14 text

Learn principles, not tools. Change mindset.

Slide 15

Slide 15 text

Principles

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Learn principles, not tools.

Slide 18

Slide 18 text

Distributed systems

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

12 Factors

Slide 21

Slide 21 text

12factor.net

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

stdout stderr

Slide 30

Slide 30 text

Serverless

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Cases

Slide 35

Slide 35 text

How will you implement avatar uploading?

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

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