SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
Managing microservices with
Istio Service Mesh
Rafik Harabi, INNOVSQUARE
CNCF Tunisia Meetup 12/2018
Who I am?
● Solution Architect at INNOVSQUARE focusing on Digital
Transformation and Go2Cloud.
● Deloitte UK (London) Associate
● #Kubernetes, #Istio and #SpringPlatform are my daily
routines.
@rafik8_
https://fr.linkedin.com/in/rafikharabi
Moving to microservices network challenges
Network Reliability
Fault tolerance and resiliency
Monitoring and Observability
Challenges deep-dive
Network Reliability
Service have to handle
the network facts:
● Network latency /
bandwidth
● Transport cost
● Topology and
administration
Fault Tolerance
Service have to be able
to handle outright failure
and timeouts:
● Avoid cascading
failure
● Retries
● Circuit breaking
Monitoring
We have to:
● monitor the
delivered
microservices and
their interactions
● Trace requests and
identify potential
hotspots
The evolution of microservices frameworks: from
NetFlix OSS to Istio
2011
NetFlix OSS
first microservices patterns
and libraries open-sourced
2013
Spring Cloud
Enterprise microservice framework
for Java
2014
Docker
Containerization
2015
Kubernetes
Workload orchestration
2018
Istio
Service mesh
Microservices challenges
Challenge 1 Challenge 2 Challenge 3
- N to N communications.
- Distributed software interconnection and troubleshooting is hard.
- Containers should stay thin and platform agnostic.
- Upgrade of polyglot microservices is hard at scale.
Microservices building blocks
Challenge 1 Challenge 3Configuration Service
Service Registry / Discovery
Circuit Breaker / Retry
Rate Limiting
API Gateway
Load Balancing / Intelligent Routing
Authentication & Authorization
Monitoring
Distributed tracingEvent Driven Messaging (Async)
Log AggregationAudit
Microservices building blocks
Challenge 3
Business Value
Configuration Service
Service Registry / DiscoveryCircuit Breaker / Retry
Rate Limiting
Event Driven Messaging (Async)
Audit
Load Balancing / Intelligent Routing
API Gateway
Authentication & Authorization Monitoring
Distributed tracing Log Aggregation
Code oriented frameworks
Challenge 3
Service A Service B
Business logic Business logic
Circuit Breaker
Rate limiting
Tracing
Metrics
Circuit Breaker
Rate limiting
Tracing
Metrics
Code oriented pattern
Challenge 1
Challenge 3
Configuration Service
Service Registry / Discovery
Circuit Breaker/Retry Rate Limiting
API Gateway
Load Balancing / Intelligent Routing
Authentication & Authorization
Monitoring
Distributed tracingEvent Driven Messaging (Async)
Log Aggregation
Audit
Business Service
Foundation
Monitoring and ObservabilityCommunication
Business Values
Code oriented solutions limits
- Language oriented.
- Error prone (implementation).
- Hard to upgrade each microservice when system grow.
- Add technical challenges and duties to development teams.
- Different team in the same organization may have different implementation.
- Each team should maintien his implementation.
Desired state
- Keep microservice concerns separate from the business logic.
- The network should be transparent to applications.
- Developers should focus on delivering business capabilities and not
implementing microservices common concerns.
- Microservices interconnection should be language agnostic.
- Easy to upgrade solution.
Service Mesh
Definition
A service mesh is a dedicated
infrastructure layer for handling
service-to-service communication.
It’s responsible for the reliable
delivery of requests through the
complex topology of services that
comprise a modern, cloud native
application.
buoyant.io
Service Mesh
The design
Each service will have its own proxy
service and all these proxy services
together form the “Service Mesh”.
All the requests to and from each
service will go through the mesh
proxies.
Proxies are also known as sidecars.
Sidecar pattern
Service A
Business logic
Circuit Breaker
Rate limiting
Tracing
Metrics
Proxy
Service B
Business logic
Circuit Breaker
Rate limiting
Tracing
Metrics
Proxy
Injected
Network concerns
become transparent
Service to service communication
History of Istio
- Envoy proxy (Istio data plane) created by Lyft and open-sourced in 2016.
- IBM and Google launch the project in May 2017.
- First major version released in July 2018.
- Version 1.1 under development.
Solution
Istio Promises
● Focus on business logic and
spent less time with common
concerns.
● No change in the service code.
● Central configuration
management.
● Easy to upgrade
● Security
Istio do:
- Service discovery
- Load Balancing & Intelligent
Routing
- Resiliency: Circuit Breaker &
Retry
- Rate Limiting
- Authentication and
Authorization
- Service to Service mTLS
- Policy enforcement
- Observability
- Monitoring metrics
- Distributed tracing
- User authentication and
authorization: we still need an
IAM.
- Event Driven Asynchronous
communication
- Service Orchestration
Istio do not:
Sidecar pattern
Challenge 1
Challenge 3
Configuration Service
Service Registry / Discovery
Circuit Breaker/Retry
Rate Limiting
API Gateway
Authentication & Authorization
Monitoring Distributed tracing
Event Driven Messaging (Async)
Log Aggregation Audit
Business Service
Foundation
Monitoring and ObservabilityCommunication
Business Values
Load Balancing / Intelligent Routing
Business Service
Business Service
Architecture
Challenge 1 Challenge 2 Challenge 3
Istio building blocks 1/2
Component Description
Pilot Responsible for service discovery and for configuring the Envoy
sidecar proxies
Citadel Automated key and certificate management
Mixer Istio-Policy: policy enforcement
Istio-Telemetry: gather telemetry data
Galley Configuration ingestion for istio components
Ingress Gateway manage inbound connection to the service mesh
Egress Gateway manage outbound connection from the service mesh
Sidecar injector Inside sidecar for enabled namespaces
Istio building blocks 1/2
Component Description
Prometheus Metrics collection
Grafana Monitoring dashboard
Jaeger Distributed tracing
Kiali Observability dashboard
Service Graph Service dependencies
Challenge 1 Challenge 2 Challenge 3
Demo Application - BookInfo
Challenge 1 Challenge 2 Challenge 3
Product Page Application
Details Service
Review Service
Rating Service
http://bookinfo.europe-west1-b.innovlabs.io
Demo Application - BookInfo
Application Deployment
istio-init istio-proxy Service container
1 2 3
kubectl describe po/pod-id -n bookinfo-app
Envoy proxy initialization - istio-init
kubectl logs po/pod-id -c istio-init -n bookinfo-app
Dashboard
Challenge 1 Challenge 2 Challenge 3
● Monitoring: http://grafana.europe-west1-b.innovlabs.io/
● Observability: http://kiali.europe-west1-b.innovlabs.io/console/overview
● Metrics: http://prometheus.europe-west1-b.innovlabs.io/graph
● Tracing: http://tracing.europe-west1-b.innovlabs.io/search
● Service graph: http://servicegraph.europe-west1-b.innovlabs.io/dotviz
Service Discovery
Challenge 1 Challenge 2 Challenge 3
Kubernetes provide service discovery, why do I need an extra one ?
Istio supports:
- HTTP L7 filter
- HTTP L7 routing (based on http headers and cookies)
- First class HTTP/2
- gRPC support
- Fine-grained traffic splitting
Ingress Gateway
Challenge 1 Challenge 2 Challenge 3
Define access to services from the outside the service mesh:
Challenge 1 Challenge 3
Product Page
Proxy
Details
Proxy
Ingress Gateway
1
2
3 4
5
6 7
8
Ingress Gateway
Challenge 1 Challenge 2 Challenge 3
Gateway: defines a load balancer operating at the edge of the mesh receiving
incoming (Ingress) or outgoing (Egress) HTTP/TCP connections.
VirtualService: defines a set of traffic routing rules to apply when a host is
addressed.
DestinationRule: defines policies that apply to traffic intended for a service after
routing has occurred.
Ingress Gateway
Challenge 1 Challenge 2 Challenge 3
Ingress Gateway
Challenge 1 Challenge 2 Challenge 3
Ingress Gateway
Challenge 1 Challenge 2 Challenge 3
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "bookinfo.europe-west1-b.innovlabs.io"
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "*"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
route:
- destination:
host: productpage
port:
number: 9080
Traffic Management / Splitting
Challenge 1 Challenge 3
EDS: Endpoint Discovery Service
CDS: Cluster Discovery Service
RDS: Route Discovery Service
LDS: Listener Discovery Service
istioctl proxy-status
istioctl proxy-config clusters -n namespace pod-id
Product Page
Proxy
Details
Proxy
Pilot
xDS Sync xDS Sync
Traffic Management / Splitting
● Achieve affinity by using Cookie, Header, or Source IP.
● Each service can have any number of versions (a.k.a. subsets).
● Pilot translates high-level rules into low-level configurations and distributes
this config to Envoy instances.
● Pilot uses three types of configuration resources to manage traffic within its
service mesh: Virtual Services, Destination Rules, and Service Entries.
Traffic Management / Splitting
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
- name: v3
labels:
version: v3
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 80
- destination:
host: reviews
subset: v2
weight: 20
A/B testing - Canary release
100%
0%
A/B testing - Canary release
100%
0%
80%
20%
A/B testing - Canary release
100%
0%
80%
20%
50%
50%
A/B testing - Canary release
100%
0%
80%
20%
50% 50%
100%
0%
Fault Injection apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: details-service-503
spec:
hosts:
- details
http:
- route:
- destination:
host: details
fault:
abort:
percent: 20
httpStatus: 503
Inject faults to test the resiliency of
your application.
Circuit Breaker
Circuit breaking allows to write
applications that limit the impact of
failures, latency spikes, and other
network effects.
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: details
spec:
host: details
trafficPolicy:
connectionPool:
tcp:
maxConnections: 1
http:
http1MaxPendingRequests: 1
maxRequestsPerConnection: 1
outlierDetection:
consecutiveErrors: 1
interval: 1s
baseEjectionTime: 3m
maxEjectionPercent: 100
Retry strategy
Enable automatic retry when a
temporary network issue occurs.
Timeout could be also specified.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: details
spec:
hosts:
- details
http:
- route:
- destination:
host: details
retries:
attempts: 3
perTryTimeout: 2s
Egress Gateway
Debugging
kubectl logs po/POD-ID -c istio-init -n namespace
istioctl proxy-status
istioctl proxy-config clusters -n namespace POD-ID
istioctl proxy-config listeners -n namespace POD-ID
Istio Service Mesh - next steps
- Mesh Extension: enable managing external services.
- Istio CNI: v1.1
https://deploy-preview-2902--preliminary-istio.netlify.com/docs/setup/kuberne
tes/istio-cni-install/
- Service Mesh interoperability over cloud providers.
Deep dive with istio 1/2
- IBM workshop: https://istio101.gitbook.io/lab/
- Redhat interactive learn: https://learn.openshift.com/servicemesh
- Redhat developer demos:
https://github.com/redhat-developer-demos/istio-tutorial/
- Istio by example, Ray Tsang:
https://github.com/saturnism/istio-by-example-java
Deep dive with istio 2/2
Istio in Action, Christian Posta
“Istio can (and should) be adopted incrementally.”
Christian Posta, Istio in Action
Thank you!
Any questions ?
References
- Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and
Serverless, Daniel Oh
- https://blog.buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-
one/
- https://istio.io/blog/2017/0.1-using-network-policy/

Más contenido relacionado

La actualidad más candente

Service mesh on Kubernetes - Istio 101
Service mesh on Kubernetes - Istio 101Service mesh on Kubernetes - Istio 101
Service mesh on Kubernetes - Istio 101Huy Vo
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with IstioVMware Tanzu
 
Microservices With Istio Service Mesh
Microservices With Istio Service MeshMicroservices With Istio Service Mesh
Microservices With Istio Service MeshNatanael Fonseca
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio Mandar Jog
 
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdNavigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdChristian Posta
 
Service Mesh 101 - Digging into your service
Service Mesh 101 - Digging into your service Service Mesh 101 - Digging into your service
Service Mesh 101 - Digging into your service Huynh Thai Bao
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istioWisnuPrabowo20
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Christian Posta
 
Managing traffic routing with istio and envoy workshop
Managing traffic routing with istio and envoy workshopManaging traffic routing with istio and envoy workshop
Managing traffic routing with istio and envoy workshopOpsta
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioInho Kang
 
Istio By Example (extended version)
Istio By Example (extended version)Istio By Example (extended version)
Istio By Example (extended version)Josef Adersberger
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureTouraj Ebrahimi
 
The Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneThe Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneChristian Posta
 
API World: The service-mesh landscape
API World: The service-mesh landscapeAPI World: The service-mesh landscape
API World: The service-mesh landscapeChristian Posta
 
istio: service mesh for all
istio: service mesh for allistio: service mesh for all
istio: service mesh for allMandar Jog
 
Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onapHuabing Zhao
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...Daniel Bryant
 
O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"Daniel Bryant
 

La actualidad más candente (20)

Service mesh on Kubernetes - Istio 101
Service mesh on Kubernetes - Istio 101Service mesh on Kubernetes - Istio 101
Service mesh on Kubernetes - Istio 101
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
Microservices With Istio Service Mesh
Microservices With Istio Service MeshMicroservices With Istio Service Mesh
Microservices With Istio Service Mesh
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio
 
Service mesh
Service meshService mesh
Service mesh
 
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdNavigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
 
Service Mesh 101 - Digging into your service
Service Mesh 101 - Digging into your service Service Mesh 101 - Digging into your service
Service Mesh 101 - Digging into your service
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
 
Managing traffic routing with istio and envoy workshop
Managing traffic routing with istio and envoy workshopManaging traffic routing with istio and envoy workshop
Managing traffic routing with istio and envoy workshop
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Istio By Example (extended version)
Istio By Example (extended version)Istio By Example (extended version)
Istio By Example (extended version)
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
The Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneThe Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data Plane
 
API World: The service-mesh landscape
API World: The service-mesh landscapeAPI World: The service-mesh landscape
API World: The service-mesh landscape
 
istio: service mesh for all
istio: service mesh for allistio: service mesh for all
istio: service mesh for all
 
Microservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerationsMicroservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerations
 
Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onap
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"O'Reilly 2017: "Introduction to Service Meshes"
O'Reilly 2017: "Introduction to Service Meshes"
 

Similar a Managing microservices with Istio Service Mesh

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Ram Vennam
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18CodeOps Technologies LLP
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...WSO2
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...apidays
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice toolingLuca Mattia Ferrari
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyLee Calcote
 
Is your MQTT broker IoT ready?
Is your MQTT broker IoT ready?Is your MQTT broker IoT ready?
Is your MQTT broker IoT ready?Eurotech
 
Introduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetupIntroduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetupDaniel Ciruli
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshCloudOps2005
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API ManagementWSO2
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksMohammad Asif Siddiqui
 
Managing Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on KubernetesManaging Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on KubernetesIftach Schonbaum
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioSAMIR BEHARA
 
Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersSaiLinnThu2
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesMirantis
 
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannot
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannotapidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannot
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannotapidays
 
Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverableSarmad Ibrahim
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsMichel Burger
 
Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Chia-Chun Shih
 

Similar a Managing microservices with Istio Service Mesh (20)

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxy
 
Is your MQTT broker IoT ready?
Is your MQTT broker IoT ready?Is your MQTT broker IoT ready?
Is your MQTT broker IoT ready?
 
Introduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetupIntroduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetup
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service Mesh
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice Frameworks
 
Managing Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on KubernetesManaging Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on Kubernetes
 
Building a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istioBuilding a scalable microservice architecture with envoy, kubernetes and istio
Building a scalable microservice architecture with envoy, kubernetes and istio
 
Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform Engineers
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannot
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannotapidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannot
apidays LIVE Paris - Multicluster Service Mesh in Action by Denis Jannot
 
Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice Solutions
 
Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)Service mesh from linkerd to conduit (cloud native taiwan meetup)
Service mesh from linkerd to conduit (cloud native taiwan meetup)
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Managing microservices with Istio Service Mesh

  • 1. Managing microservices with Istio Service Mesh Rafik Harabi, INNOVSQUARE CNCF Tunisia Meetup 12/2018
  • 2. Who I am? ● Solution Architect at INNOVSQUARE focusing on Digital Transformation and Go2Cloud. ● Deloitte UK (London) Associate ● #Kubernetes, #Istio and #SpringPlatform are my daily routines. @rafik8_ https://fr.linkedin.com/in/rafikharabi
  • 3. Moving to microservices network challenges Network Reliability Fault tolerance and resiliency Monitoring and Observability
  • 4. Challenges deep-dive Network Reliability Service have to handle the network facts: ● Network latency / bandwidth ● Transport cost ● Topology and administration Fault Tolerance Service have to be able to handle outright failure and timeouts: ● Avoid cascading failure ● Retries ● Circuit breaking Monitoring We have to: ● monitor the delivered microservices and their interactions ● Trace requests and identify potential hotspots
  • 5. The evolution of microservices frameworks: from NetFlix OSS to Istio
  • 6. 2011 NetFlix OSS first microservices patterns and libraries open-sourced 2013 Spring Cloud Enterprise microservice framework for Java 2014 Docker Containerization 2015 Kubernetes Workload orchestration 2018 Istio Service mesh
  • 7. Microservices challenges Challenge 1 Challenge 2 Challenge 3 - N to N communications. - Distributed software interconnection and troubleshooting is hard. - Containers should stay thin and platform agnostic. - Upgrade of polyglot microservices is hard at scale.
  • 8. Microservices building blocks Challenge 1 Challenge 3Configuration Service Service Registry / Discovery Circuit Breaker / Retry Rate Limiting API Gateway Load Balancing / Intelligent Routing Authentication & Authorization Monitoring Distributed tracingEvent Driven Messaging (Async) Log AggregationAudit
  • 9. Microservices building blocks Challenge 3 Business Value Configuration Service Service Registry / DiscoveryCircuit Breaker / Retry Rate Limiting Event Driven Messaging (Async) Audit Load Balancing / Intelligent Routing API Gateway Authentication & Authorization Monitoring Distributed tracing Log Aggregation
  • 10. Code oriented frameworks Challenge 3 Service A Service B Business logic Business logic Circuit Breaker Rate limiting Tracing Metrics Circuit Breaker Rate limiting Tracing Metrics
  • 11. Code oriented pattern Challenge 1 Challenge 3 Configuration Service Service Registry / Discovery Circuit Breaker/Retry Rate Limiting API Gateway Load Balancing / Intelligent Routing Authentication & Authorization Monitoring Distributed tracingEvent Driven Messaging (Async) Log Aggregation Audit Business Service Foundation Monitoring and ObservabilityCommunication Business Values
  • 12. Code oriented solutions limits - Language oriented. - Error prone (implementation). - Hard to upgrade each microservice when system grow. - Add technical challenges and duties to development teams. - Different team in the same organization may have different implementation. - Each team should maintien his implementation.
  • 13. Desired state - Keep microservice concerns separate from the business logic. - The network should be transparent to applications. - Developers should focus on delivering business capabilities and not implementing microservices common concerns. - Microservices interconnection should be language agnostic. - Easy to upgrade solution.
  • 14. Service Mesh Definition A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. buoyant.io
  • 15. Service Mesh The design Each service will have its own proxy service and all these proxy services together form the “Service Mesh”. All the requests to and from each service will go through the mesh proxies. Proxies are also known as sidecars.
  • 16. Sidecar pattern Service A Business logic Circuit Breaker Rate limiting Tracing Metrics Proxy Service B Business logic Circuit Breaker Rate limiting Tracing Metrics Proxy Injected Network concerns become transparent Service to service communication
  • 17. History of Istio - Envoy proxy (Istio data plane) created by Lyft and open-sourced in 2016. - IBM and Google launch the project in May 2017. - First major version released in July 2018. - Version 1.1 under development.
  • 18. Solution Istio Promises ● Focus on business logic and spent less time with common concerns. ● No change in the service code. ● Central configuration management. ● Easy to upgrade ● Security
  • 19. Istio do: - Service discovery - Load Balancing & Intelligent Routing - Resiliency: Circuit Breaker & Retry - Rate Limiting - Authentication and Authorization - Service to Service mTLS - Policy enforcement - Observability - Monitoring metrics - Distributed tracing - User authentication and authorization: we still need an IAM. - Event Driven Asynchronous communication - Service Orchestration Istio do not:
  • 20. Sidecar pattern Challenge 1 Challenge 3 Configuration Service Service Registry / Discovery Circuit Breaker/Retry Rate Limiting API Gateway Authentication & Authorization Monitoring Distributed tracing Event Driven Messaging (Async) Log Aggregation Audit Business Service Foundation Monitoring and ObservabilityCommunication Business Values Load Balancing / Intelligent Routing Business Service Business Service
  • 22. Challenge 1 Challenge 2 Challenge 3
  • 23. Istio building blocks 1/2 Component Description Pilot Responsible for service discovery and for configuring the Envoy sidecar proxies Citadel Automated key and certificate management Mixer Istio-Policy: policy enforcement Istio-Telemetry: gather telemetry data Galley Configuration ingestion for istio components Ingress Gateway manage inbound connection to the service mesh Egress Gateway manage outbound connection from the service mesh Sidecar injector Inside sidecar for enabled namespaces
  • 24. Istio building blocks 1/2 Component Description Prometheus Metrics collection Grafana Monitoring dashboard Jaeger Distributed tracing Kiali Observability dashboard Service Graph Service dependencies
  • 25. Challenge 1 Challenge 2 Challenge 3
  • 26. Demo Application - BookInfo Challenge 1 Challenge 2 Challenge 3 Product Page Application Details Service Review Service Rating Service http://bookinfo.europe-west1-b.innovlabs.io
  • 27. Demo Application - BookInfo
  • 28. Application Deployment istio-init istio-proxy Service container 1 2 3 kubectl describe po/pod-id -n bookinfo-app
  • 29. Envoy proxy initialization - istio-init kubectl logs po/pod-id -c istio-init -n bookinfo-app
  • 30. Dashboard Challenge 1 Challenge 2 Challenge 3 ● Monitoring: http://grafana.europe-west1-b.innovlabs.io/ ● Observability: http://kiali.europe-west1-b.innovlabs.io/console/overview ● Metrics: http://prometheus.europe-west1-b.innovlabs.io/graph ● Tracing: http://tracing.europe-west1-b.innovlabs.io/search ● Service graph: http://servicegraph.europe-west1-b.innovlabs.io/dotviz
  • 31. Service Discovery Challenge 1 Challenge 2 Challenge 3 Kubernetes provide service discovery, why do I need an extra one ? Istio supports: - HTTP L7 filter - HTTP L7 routing (based on http headers and cookies) - First class HTTP/2 - gRPC support - Fine-grained traffic splitting
  • 32. Ingress Gateway Challenge 1 Challenge 2 Challenge 3 Define access to services from the outside the service mesh: Challenge 1 Challenge 3 Product Page Proxy Details Proxy Ingress Gateway 1 2 3 4 5 6 7 8
  • 33. Ingress Gateway Challenge 1 Challenge 2 Challenge 3 Gateway: defines a load balancer operating at the edge of the mesh receiving incoming (Ingress) or outgoing (Egress) HTTP/TCP connections. VirtualService: defines a set of traffic routing rules to apply when a host is addressed. DestinationRule: defines policies that apply to traffic intended for a service after routing has occurred.
  • 34. Ingress Gateway Challenge 1 Challenge 2 Challenge 3
  • 35. Ingress Gateway Challenge 1 Challenge 2 Challenge 3
  • 36. Ingress Gateway Challenge 1 Challenge 2 Challenge 3 apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: bookinfo-gateway spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "bookinfo.europe-west1-b.innovlabs.io" apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo spec: hosts: - "*" gateways: - bookinfo-gateway http: - match: - uri: exact: /productpage route: - destination: host: productpage port: number: 9080
  • 37. Traffic Management / Splitting Challenge 1 Challenge 3 EDS: Endpoint Discovery Service CDS: Cluster Discovery Service RDS: Route Discovery Service LDS: Listener Discovery Service istioctl proxy-status istioctl proxy-config clusters -n namespace pod-id Product Page Proxy Details Proxy Pilot xDS Sync xDS Sync
  • 38. Traffic Management / Splitting ● Achieve affinity by using Cookie, Header, or Source IP. ● Each service can have any number of versions (a.k.a. subsets). ● Pilot translates high-level rules into low-level configurations and distributes this config to Envoy instances. ● Pilot uses three types of configuration resources to manage traffic within its service mesh: Virtual Services, Destination Rules, and Service Entries.
  • 39. Traffic Management / Splitting apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: reviews spec: host: reviews subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 - name: v3 labels: version: v3 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1 weight: 80 - destination: host: reviews subset: v2 weight: 20
  • 40. A/B testing - Canary release 100% 0%
  • 41. A/B testing - Canary release 100% 0% 80% 20%
  • 42. A/B testing - Canary release 100% 0% 80% 20% 50% 50%
  • 43. A/B testing - Canary release 100% 0% 80% 20% 50% 50% 100% 0%
  • 44. Fault Injection apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: details-service-503 spec: hosts: - details http: - route: - destination: host: details fault: abort: percent: 20 httpStatus: 503 Inject faults to test the resiliency of your application.
  • 45. Circuit Breaker Circuit breaking allows to write applications that limit the impact of failures, latency spikes, and other network effects. apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: details spec: host: details trafficPolicy: connectionPool: tcp: maxConnections: 1 http: http1MaxPendingRequests: 1 maxRequestsPerConnection: 1 outlierDetection: consecutiveErrors: 1 interval: 1s baseEjectionTime: 3m maxEjectionPercent: 100
  • 46. Retry strategy Enable automatic retry when a temporary network issue occurs. Timeout could be also specified. apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: details spec: hosts: - details http: - route: - destination: host: details retries: attempts: 3 perTryTimeout: 2s
  • 48. Debugging kubectl logs po/POD-ID -c istio-init -n namespace istioctl proxy-status istioctl proxy-config clusters -n namespace POD-ID istioctl proxy-config listeners -n namespace POD-ID
  • 49. Istio Service Mesh - next steps - Mesh Extension: enable managing external services. - Istio CNI: v1.1 https://deploy-preview-2902--preliminary-istio.netlify.com/docs/setup/kuberne tes/istio-cni-install/ - Service Mesh interoperability over cloud providers.
  • 50. Deep dive with istio 1/2 - IBM workshop: https://istio101.gitbook.io/lab/ - Redhat interactive learn: https://learn.openshift.com/servicemesh - Redhat developer demos: https://github.com/redhat-developer-demos/istio-tutorial/ - Istio by example, Ray Tsang: https://github.com/saturnism/istio-by-example-java
  • 51. Deep dive with istio 2/2 Istio in Action, Christian Posta
  • 52. “Istio can (and should) be adopted incrementally.” Christian Posta, Istio in Action
  • 54. References - Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and Serverless, Daniel Oh - https://blog.buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need- one/ - https://istio.io/blog/2017/0.1-using-network-policy/