Slide 1

Slide 1 text

From Cloud-Hosted to Cloud-Native QCon London β€˜23 1 @joatmon08

Slide 2

Slide 2 text

2 ☁ How It Started πŸ“² @joatmon08

Slide 3

Slide 3 text

cloud-native build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. github.com/cncf/toc/blob/main/DEFINITION.md 3 @joatmon08

Slide 4

Slide 4 text

4 How It’s Going πŸ“² ☁ @joatmon08

Slide 5

Slide 5 text

cloud hosted build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. github.com/cncf/toc/blob/main/DEFINITION.md 5 @joatmon08

Slide 6

Slide 6 text

Rosemary Wang @joatmon08 joatmon08.github.io Developer Advocate | HashiCorp Author | Infrastructure as Code, Patterns & Practices 6

Slide 7

Slide 7 text

cloud-native considerations ● adaptability ● observability ● immutability ● elasticity ● changeability 7 @joatmon08 *balance delivery and future-proofing

Slide 8

Slide 8 text

adaptability adjust between environments 8 @joatmon08

Slide 9

Slide 9 text

9 ☁ @joatmon08

Slide 10

Slide 10 text

Adapt by abstraction. 10 @joatmon08

Slide 11

Slide 11 text

11 Version? Images? Customization? Persistence? ☁ @joatmon08

Slide 12

Slide 12 text

Implement β€œjust enough” abstraction to mitigate effort. 12 @joatmon08

Slide 13

Slide 13 text

● Decouple artifact dependencies ● Decouple configuration and secrets ● Use dependency injection ● Write abstract (end-to-end) tests ● Update to stable (-1) version 13 @joatmon08

Slide 14

Slide 14 text

as a last resort, refactor the abstraction 14 @joatmon08

Slide 15

Slide 15 text

observability navigate cloud cover 15 @joatmon08

Slide 16

Slide 16 text

16 syslog @joatmon08

Slide 17

Slide 17 text

Set (some) standards. 17 @joatmon08

Slide 18

Slide 18 text

18 syslog @joatmon08

Slide 19

Slide 19 text

Meet resources where they are at. 19 @joatmon08

Slide 20

Slide 20 text

● Map dependencies ● Tag and add metadata ● Enable audit and access logs ● Aggregate telemetry ● Standardize and index telemetry ● Assess push versus pull 20 @joatmon08

Slide 21

Slide 21 text

as a last resort, rebuild the monitoring system 21 @joatmon08

Slide 22

Slide 22 text

immutability keeps up with dynamic environments 22 @joatmon08

Slide 23

Slide 23 text

23 Update Java ☁ login deploy @joatmon08

Slide 24

Slide 24 text

Roll out new resources for most changes. 24 @joatmon08

Slide 25

Slide 25 text

25 Update Java ☁ login @joatmon08

Slide 26

Slide 26 text

Some changes must be mutable. 26 @joatmon08

Slide 27

Slide 27 text

● Automate infrastructure as code ● Decouple state and configuration ● Reload / restart for changes ● Optimize provisioning ● Distribute data 27 @joatmon08

Slide 28

Slide 28 text

as a last resort, refactor for immutability 28 @joatmon08

Slide 29

Slide 29 text

elasticity make the most of resources 29 @joatmon08

Slide 30

Slide 30 text

30 ☁ @joatmon08

Slide 31

Slide 31 text

Elasticity is about the cost of time. 31 @joatmon08

Slide 32

Slide 32 text

32 Workload Density Horizontal Scaling Resource Efficiency Vertical Scaling @joatmon08

Slide 33

Slide 33 text

Cloud-native does not always mean horizontal scaling. 33 @joatmon08

Slide 34

Slide 34 text

● Evaluate idle versus active resources ● Minimize the β€œtraffic trombone” ● Optimize warm-up and runtime ● Assess volume versus frequency 34 @joatmon08

Slide 35

Slide 35 text

as a last resort, rebuild to mitigate cost 35 @joatmon08

Slide 36

Slide 36 text

changeability use the latest technologies 36 @joatmon08

Slide 37

Slide 37 text

37 ☁ @joatmon08

Slide 38

Slide 38 text

The latest often involve paradigm shifts. 38 @joatmon08

Slide 39

Slide 39 text

39 ☁ @joatmon08

Slide 40

Slide 40 text

Intermediate steps exist for change. 40 @joatmon08

Slide 41

Slide 41 text

● Assess benefit ● Review previous considerations ● Choose an intermediate step ● Refactor application / infrastructure 41 @joatmon08

Slide 42

Slide 42 text

as a last resort, build a greenfield environment 42 @joatmon08

Slide 43

Slide 43 text

cloud-native build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. github.com/cncf/toc/blob/main/DEFINITION.md 43 @joatmon08

Slide 44

Slide 44 text

cloud-native considerations ● adaptability ● observability ● immutability ● elasticity ● changeability 44 @joatmon08

Slide 45

Slide 45 text

Thank you! Rosemary Wang @joatmon08 joatmon08.github.io 45