Microservices to Service Mesh
@thangchung + @thinhnotes
July 2018
Important Notes
• Key Takeaways
- Evolution of Software Development in NashTech
- Software Developer Craftsmanship
- Cloud Native
- Service Mesh
- Myth from Modern Era
• What is NOT?
- Asynchronous Communication
- Eventually Consistency Mechanism for Data
- Stateful Service or Application
- Testing Strategy in distributed system
• Q&A
Evolution of Software Development in NashTech
Let’s begin with what NashTech’ Solution Architects do so far…
Requirements
NashTech Story
~  2015
Monolith Application
Monolith Application - Modular
Bounded Context
Event Driven Architecture
NashTech Story
2016 
Early 2017
Legacy
Systems &
COTS
• Bounded Context
• Event Driven Architecture
• Strangling Pattern
• Containerization
• 12 factors App Principles
• Infrastructure as Code 2017  ~
Cloud Native
NashTech Story
Reference at Steinzeit war gestern! Die vielfältigen Wege der Cloud-nativen Evolution
Software Developer Craftsmanship
Let see how NashTech developers do on the daily basis…
Developer Story
Business Code
Developer Story
Business Code
Client – Server
Model
Developer Story
Business Code
Facade / Proxy
(RPC)
Developer Story
Business Code
Facade / Proxy
(RPC)
WAITING
Developer Story
Business Code
Facade / Proxy
(RPC)
WAITING
Developer Story
Business Code
Facade / Proxy
(RPC)
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
WAITING WAITING
WAITING
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
WAITING WAITING
WAITING
WAITING
WAITING WAITING
WAITING
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
State???
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State Distributed State Distributed State
All Circuit
Breakers share
State
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State Distributed State Distributed State
Which one is
HEALTHY?
Developer Story
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State Distributed State Distributed State
DNS looks like
Client-side Service
Discovery
Client-side Service
Discovery
Client-side Service
Discovery
WTFun for Application Modernization?
Just for RPC Reliability &
Resiliency
Then, 5 Cloud
Commandments
Then, 8 Fallacies of
Distributed Computing
Then, 12 Factor App
Principals
Loose Polyglot, Hard
to Change……
Cloud Native
Everywhere is cloudy, especially in NashTech…
Cloud Native Application Maturity
Cloud Native Application Development
Reference from Cloud Native Application development - A New Computing Paradigm by Oracle
2017
What make different?
2017
DEMO: Build Microservices Application on Kubernetes
DEMO: Lift and Shift the Application
Development Build Shift
Dockerfile
Docker Hub
Service Mesh
Let’s mess everything up, but tidy it right later on…
Development View
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State
Client-side Service
Discovery
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State
Client-side Service
Discovery
Development View
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State
Client-side Service
Discovery
Business Code SDK
Development View
Business Code SDK
SCARY WORLD
Development View
Business Code SDK
SCARY WORLD
Development View
Business Code SIDECAR
SCARY WORLD
Development View
Business Code SIDECAR
SCARY WORLD
Development View
SCARY WORLD
Orchestrator View
Business Code
Facade / Proxy
(RPC)
Circuit Breakers
/ Timeouts
Telemetry
Distributed State
Client-side Service
Discovery
SERVICE
PLATFORM
Sidecar
SCARY WORLD
Orchestrator View
Business Code
Resiliency
SERVICE
PLATFORM
Sidecar
SCARY WORLD
Orchestrator View
Resiliency
PLATFORM
Traffic
Control
Security Availability
Business Code
SERVICE
Sidecar
SCARY WORLD
Mesh it up
SERVICE MESH
PLATFORM
Business Code
SERVICE
Sidecar
Mesh it up
SERVICE MESH
PLATFORM
Business Code
SERVICE
Sidecar
CONTROL
PLANE
DATA
PLANE
Service Mesh Umbrella
NELSON
CONTROL PLANE DATA PLANE
You name it…
Business Code
SERVICE
Proxy Architecture
Sidecar
https://www.slideshare.net/datawire/lyfts-envoy-from-monolith-to-service-mesh-matt-klein-lyft/12
• Edge Proxy
• Shared Proxy
• Sidecar Proxy
Istio Architecture
Istio Architecture: Traffic Control
Reference at http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution-part-ii
Egress
Istio Architecture: Resiliency
• Load Balancing
• Timeout
• Retry
• Circuit Breaker
• Pool Ejection
Istio Architecture: Chaos Testing
• HTTP Errors
• Delays
Istio Architecture: Observability
Observability
Metrics
LogsTraces
Istio Architecture: Security
• Blacklist
Istio Architecture: Security
• Whitelist
DEMO: BookInfo
WTFun for Application Modernization?
Just for RPC reliability
Then, 5 Cloud
Commandments
Then, 8 Fallacies of
Distributed Computing
Then, 12 Factor App
Principals
……
Myth from Modern Era
Greek is a modernized life in the ancient world, but we can make it even
better nowadays...
The Myth
Images source at https://printablefreecoloring.com
The Myth
Images source at https://printablefreecoloring.com
The Myth
Images source at https://printablefreecoloring.com
The Myth
Images source at https://printablefreecoloring.com
The Myth
Images source at https://printablefreecoloring.com
…
The Myth
Images source at https://printablefreecoloring.com
…
THANK YOU
www.nashtechglobal.com
Q&A

From Microservices to Service Mesh - devcafe event - July 2018

Editor's Notes

  • #7 Facebook: 800 devs, 400 ops