Building Distributed Systems with Netflix OSS and Spring Cloud
A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A...
Transcript of A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A...
![Page 1: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/1.jpg)
CADEC 2020.01.23 & 2020.01.29 | CALLISTAENTERPRISE.SE
SPRING CLOUD + KUBERNETES + ISTIO = ?
A MACRO PERSPECTIVE ONTHE TOOLBOX FOR MICROSERVICES
MAGNUS LARSSON
![Page 2: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/2.jpg)
AGENDA
• Why?
• Challenges
• Open Source to the rescue!
• Overlaps
• Demo
• Summary
![Page 3: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/3.jpg)
WHY?
?• Easier to scale• Faster releases
• Requires• Autonomous components• Share nothing architecture
• Forms a distributed system!
![Page 4: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/4.jpg)
CHALLENGES
?
![Page 5: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/5.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
A-1
?B-2
B-3B-1
B
![Page 6: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/6.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
Service A
Client
Edge Server
Service CService B
![Page 7: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/7.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
CONFIG
CONFIG
CONFIG
CONFIG
CONFIG
CONFIG
![Page 8: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/8.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
![Page 9: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/9.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
OBSERVE
COMPAREACT
CURRENT STATE è DESIRED STATE
![Page 10: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/10.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
![Page 11: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/11.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW ARE MY SERVICES PERFORMING?
OBSERVABILITY
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
![Page 12: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/12.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW ARE MY SERVICES PERFORMING?
OBSERVABILITY
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
![Page 13: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/13.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHO IS CALLING WHO?DISTRIBUTED TRACING
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW ARE MY SERVICES PERFORMING?
OBSERVABILITY
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
![Page 14: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/14.jpg)
CHALLENGES
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHO IS CALLING WHO?DISTRIBUTED TRACING
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW ARE MY SERVICES PERFORMING?
OBSERVABILITY
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
HOW TO HANDLE FAULTS?• SLOW OR NO RESPONSE• TEMPORARY FAULTS• OVERLOAD
RESILIENCE
![Page 15: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/15.jpg)
REQUIRED CAPABILITIES!
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
DISCOVERY SERVER
WHERE ARE THE LOGS?
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
CENTRALIZED CONFIGURATION
WHO IS CALLING WHO?DISTRIBUTED TRACING
WHAT HARDWARE RESOURCES ARE USED?MONITORING
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
SERVICE MANAGEMENT
HOW ARE MY SERVICES PERFORMING?
OBSERVABILITY
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
EDGE SERVER
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
HOW TO HANDLE FAULTS?• SLOW OR NO RESPONSE• TEMPORARY FAULTS• OVERLOAD
RESILIENCE
Service D
Service A Service B Service C
![Page 16: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/16.jpg)
WHERE ARE WE?• Why?
• Challenges
• Open Source to the rescue!
• Overlaps
• Demo
• Summary
![Page 17: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/17.jpg)
THE EVOLUTION
2014
SPRINGCLOUD
Client
Service D
Spring Cloud
Service B
Spring Cloud
Service C
Spring Cloud
Service A
Spring Cloud
Spring Cloud = Application libraries + Services
Discovery Service
(Netflix Eureka)
Circuit BreakerDashboard
(Netflix Turbine + Hystrix Dashboard)
OAuthAuthorization
Server(spring-security)
Config Server(spring-cloud-config
+ GitHub)
Edge server (Netflix Zuul)
Event Bus(RabbitMQ)
Limited to microservices based on Java and Spring
![Page 18: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/18.jpg)
THE EVOLUTION
2013
GOOGLEKUBERNETES
DOCKER
2014
SPRINGCLOUD
Server
Docker engine
Container C Container D
Container A Container B
![Page 19: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/19.jpg)
THE EVOLUTION
2013
GOOGLEKUBERNETES
DOCKER
2014
SPRINGCLOUD
Server
Docker engine
Container C Container D
Container A Container B
>1 server required in production
• High Availability• Scalability
![Page 20: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/20.jpg)
THE EVOLUTION
Master Node Worker Node
Container Runtime
Container C Container D
Observe
Analyze
Act
The control loop
Desired StateStorage
Operator
Updates theDesired state
Reads theDesired state
Reads theActual state
Update the
Actual state
Container A Container B
Kubernetes: A Container Orchestrator
• A cluster of servers running Docker engine acting as one big server
• Enforces actual state = desired state
![Page 21: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/21.jpg)
THE EVOLUTION
2015
K8S V1.0CNCF
SERVICE MESH
ISTIO
20142013
GOOGLEKUBERNETES
DOCKERSPRINGCLOUD
2016 2017 2018
REDHATOPENSHIFT 3.0
GOOGLEGKE
AMAZONEKS
AZUREAKS
VMWAREPKS
2019
Service Mesh Control plane
Ingress Gateway
Service Mesh Proxy
Egress Gateway
Service Mesh Proxy
Microservice B
Service Mesh Proxy
Microservice A
Service Mesh Proxy
Service Mesh Data plane
ISTIO: Service mesh
Observability, Security, Resilience and Traffic Management
![Page 22: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/22.jpg)
THE EVOLUTION
2015
K8S V1.0CNCF
20142013
GOOGLEKUBERNETES
DOCKERSPRINGCLOUD
2016 2017 2018
REDHATOPENSHIFT 3.0
GOOGLEGKE
AMAZONEKS
AZUREAKS
VMWAREPKS
2019100% OPEN SOURCE
SERVICE MESH
ISTIO
![Page 23: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/23.jpg)
CAPABILITY MAPPING
HOW TO HANDLE FAULTS?• SLOW OR NO RESPONSE• TEMPORARY FAULTS• OVERLOAD
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
WHERE ARE THE LOGS?
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
RESILIENCEDISCOVERY SERVER
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
CENTRALIZED CONFIGURATION
WHAT HARDWARE RESOURCES ARE USED?
WHO IS CALLING WHO?DISTRIBUTED TRACING
MONITORING
SERVICE MANAGEMENTOBSERVABILITYHOW ARE MY SERVICES PERFORMING?
EDGE SERVER
Service D
Service A Service B Service C
SPRING CLOUD
ISTIO
KUBERNETES
EFK
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
![Page 24: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/24.jpg)
WHERE ARE WE?• Why?
• Challenges
• Open Source to the rescue!
• Overlaps
• Demo
• Summary
![Page 25: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/25.jpg)
OVERLAPS
Capability Spring Cloud Kubernetes Istio
Service Discovery X XCentral Configuration X XEdge Server X X XDistributed Tracing X XResilience X X
![Page 26: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/26.jpg)
FEATURE COMPLETENESS, E.G. FOR AN EDGE SERVER
Feature Spring CloudGateway
KubernetesIngress Controller
IstioIngress Gateway
Security
- OAuth 2.0 & OIDC X X X- Automated provisioning and
renewal of certificatesX X
Routing
- URL path based X X X- Header based X XObservability XTraffic Management X
![Page 27: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/27.jpg)
OVERLAPS - HOW TO CHOOSE?
• Prefer platform over application library- Independence of microservice implementations
» E.g. language or frameworks
• Exceptions, i.e. use application library for
1. Managing trace ids in a microservice» Setting inbound trace id on outbound requests
2. Resilience mechanisms, e.g. timeout, retry and circuit breakers» Fine tuning often depends on business logic
Note: Platform based resilience is much better than none at al…
![Page 28: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/28.jpg)
OVERLAPS - SELECTIONS
Capability Spring Cloud Kubernetes Istio
Service Discovery X XCentral Configuration X XEdge Server X X XDistributed Tracing X XResilience X X
![Page 29: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/29.jpg)
OVERLAPS – SELECTIONS
Capability Spring Cloud Kubernetes Istio
Service Discovery Netflix EurekaSpring Cloud Load Balancer
Kube Proxy & Service objects
Central Configuration Spring Cloud Config server Config Maps & Secrets
Edge Server Spring Cloud Gateway Ingress Controller Ingress Gateway
Distributed Tracing • Spring Cloud Sleuth• Zipkin
• Jaeger• Zipkin
Resilience Resilience4J Timeout, Retries &Outlier Detection
• Spring Cloud Sleuth • Jaeger
![Page 30: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/30.jpg)
CAPABILITY MAPPING
HOW TO HANDLE FAULTS?• SLOW OR NO RESPONSE• TEMPORARY FAULTS• OVERLOAD
WHERE ARE THE SERVICES?WHICH SERVICE TO CALL?
WHERE ARE THE LOGS?
HOW TO HIDE PRIVATE SERVICES?HOW TO PROTECT PUBLIC SERVICES?
HOW TO • DEPLOY SERVICES?• SCALE SERVICES?• UPGRADE SERVICES?• RESTART FAILING SERVICES?
WHERE IS MY CONFIGURATION?ARE ALL SERVICES CONFIGURATION UP TO DATE?
RESILIENCEDISCOVERY SERVER
HOW TO CORRELATE LOGSFROM DIFFERENT SERVICES?
LOG ANALYSIS
CENTRALIZED CONFIGURATION
WHAT HARDWARE RESOURCES ARE USED?
WHO IS CALLING WHO?DISTRIBUTED TRACING
MONITORING
SERVICE MANAGEMENTOBSERVABILITYHOW ARE MY SERVICES PERFORMING?
EDGE SERVER
Service D
Service A Service B Service C
SPRING CLOUD
ISTIO
KUBERNETES
EFK
HOW TO CONTROL ROUTING?• RATE LIMITING• CANARY & BLUE/GREEN UPGRADES
TRAFFIC MANAGMENT
![Page 31: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/31.jpg)
Prometheus
Grafana
• Monitoring
SPRING CLOUD + KUBERNETES + ISTIO
MongoDB
MongoDB
MySQLReview
Product
RecommendationProduct Composite
• Service Management• Service Discovery• Configuration
Kubernetes
Resilience4J
• Resilience
Fluentd
KibanaElastic-search
• Log analysis
Istio Control Plane
Istio Proxy
Istio Proxy
Istio ProxyIstio ProxyIstio Proxy
Kiali
• Traffic Management• Security
• Observability• Distributed tracing Jaeger
Istio Ingress Gateway
• Edge Server
Istio ProxySpring Cloud Sleuth
• Distributed tracing
![Page 32: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/32.jpg)
WHERE ARE WE?
• Why?• Challenges• Open Source to the rescue!• Overlaps
• Demo- Observability- Logging- Tracing- Monitoring- Resilience
• Summary
![Page 33: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/33.jpg)
DEMO - OBSERVABILITY
![Page 34: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/34.jpg)
DEMO - CENTRALIZED LOGGING
![Page 35: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/35.jpg)
DEMO - CENTRALIZED LOGGING
![Page 36: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/36.jpg)
DEMO - DISTRIBUTED TRACING
![Page 37: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/37.jpg)
DEMO - DISTRIBUTED TRACING
![Page 38: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/38.jpg)
DEMO - MONITORING
![Page 39: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/39.jpg)
DEMO - RESILIENCE
![Page 40: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/40.jpg)
DEMO - RESILIENCE
![Page 41: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/41.jpg)
DEMO - RESILIENCE
![Page 42: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/42.jpg)
SUMMARY
• Microservices promise- Easier to scale- Faster release cycles
• Cooperating microservices è Distributed System- Inherent complexity- Can be managed with Open Source
» Application library, e.g. Spring Cloud» Container orchestrators, e.g. Kubernetes» Service mesh, e.g. Istio
• Handle overlaps
• Works great together!- …if used correctly
![Page 43: A MACRO PERSPECTIVE ON THE TOOLBOX FOR MICROSERVICES · 2020-06-10 · Spring Cloud Service A Spring Cloud Spring Cloud = Application libraries + Services Discovery Service (Netflix](https://reader033.fdocuments.in/reader033/viewer/2022050117/5f4d943968593756d475d9e6/html5/thumbnails/43.jpg)
RECOMMENDED READING
• Book – Hands-on microserviceshttps://www.packtpub.com/web-development/hands-on-microservices-with-spring-boot-and-spring-cloud
• Blog series – Java & GO based microservices• https://callistaenterprise.se/blogg/teknik/
2015/05/20/blog-series-building-microservices/