Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

43
Developing and deploying cloud-native apps as resilient microservices architectures Edson Yanaga Director of Developer Experience @yanaga

Transcript of Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Page 1: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Developing and deploying cloud-native apps as resilient microservices architecturesEdson Yanaga Director of Developer Experience @yanaga

Page 2: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com2

Java Champion Microsoft MVP

@yanaga

Page 3: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

“Now, every company is a software company” — Forbes

Page 4: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com4

Page 5: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

“The two most important days in your life are the day you are born and the day you

find out why.” — Mark Twain

Page 6: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Software is made by people for people

Page 7: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Legacy

Page 8: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Any code delivered into production is Legacy

Page 9: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Feedback Loop

Page 10: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com10

Context

Page 11: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

What is preventing you from delivering faster?

Page 12: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Bugs Testing

Integration problems Continuous Integration

Manual Deployment Continuos Delivery

Integration problems again Microservices

Page 13: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

We’re scaling people, not software

Page 14: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Distributed Systems are hard, but so are people

Page 15: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

We’re solving integration issues by reducing the context to a cohesive Microservice

Page 16: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Conway’s Law

Page 17: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com

“organizations which design systems (…) are constrained to produce designs which are copies of the communication structures of

these organizations.”

17

Page 18: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com18

“Two Pizza Rule” — Jeff Bezos

Page 19: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Self-contained

Page 20: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Self-contained

Teams

Page 21: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

How do I run my Microservices?

Page 22: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

PaaS

Page 23: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Buy or Build?

Page 24: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com24

Page 25: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com25

Page 26: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

How do I begin my journey?

Page 27: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com

Strangler Application

27

Page 28: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Domain-Driven Design Bounded Contexts

Page 29: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com29

Page 30: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com30

Page 31: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com31

Wildfly Swarm

Spring Boot

Node.js

Page 32: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com

API Gateway

32

Page 33: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com33

Page 34: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com34

API Gateway

Page 35: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

“reliability must come from software” — Jeff Dean (Google)

Page 36: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com

Design for Failure

36

Page 37: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Join developers.redhat.com37

Circuit Breaker Bulkhead

Page 38: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Smart Routing

Page 39: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Blue/Green Deployment A/B Testing

Canary Deployments Specific debugging and tracing

Page 40: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Remember? It’s a journey

Page 41: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

And we are taking the first steps

Page 42: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

Want to follow the path?Join

developers.redhat.com

Page 43: Developing And Deploying Cloud-Native Apps As Resilient Microservices Architectures (Edson Yanaga)

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews

Thank you!