SlideShare a Scribd company logo
Microservices With
Service Mesh
Hello!
I am Natanael Fonseca
Solution Architect at Everis.
You can find me at: @natanaelfonseca
2
Session Agenda
- Microservices Patterns;
- Spring Cloud;
- What is a Service Mesh?
- What is ISTIO?
- Before and After;
3
- Traffic Control;
- Service Resilience;
- Chaos Testing;
- Observability;
- Security.
Microservices Patterns
▷ Netflix Hystrix (Circuit Breaking)
▷ Netflix Zuul (Edge Routing)
▷ Netflix Ribbon ( Client-Side Service Discovery )
▷ Netflix Eureka (Service Discovery Registry)
▷ Brave / Zipkin (Tracing)
▷ Netflix Spectator / Atlas (Metrics)
4
Spring Cloud Projects
▷ Spring Cloud Config;
▷ Spring Cloud Netflix;
▷ Spring Cloud Bus;
▷ Spring Cloud Foundry;
▷ Spring Cloud Open Service Broker;
▷ Spring Cloud Cluster;
▷ Spring Cloud Consul;
▷ And others…..
5
https://spring.io/projects/spring-cloud
Spring Cloud Netflix
▷ Service Discovery;
▷ Circuit Breaker;
▷ Declarative REST Client with Feign;
▷ Client Side Load Balancer with Ribbon;
▷ Router and Filter with Zuul.
6
Example
7
“A service mesh is the connective tissue between your
services that adds additional capabilities like traffic
control, service discovery, load balancing, resilience,
observability, security, and so on…
8
What is a service mesh?
“Developed by a collaboration between Google, IBM, and
Lyft, Istio is an open-source service mesh that lets you
connect, monitor, and secure microservices deployed on-
premise, in the cloud, or with orchestration platforms like
Kubernetes and Mesos.
9
What is ISTIO?
What are the biggest changes
10
Before and After
Microservices with regular
containers.
11
Microservices with ISTIO
12
Two areas to aim complete solution
13
Control and Data Plane
Data Plane
Comprises the primary Istio sidecar:
▷ Envoy
14
Envoy
A layer 7 load-balancer takes routing decision based on
IPs, TCP or UDP ports or any information it can get
from the application protocol (mainly HTTP). The layer
7 load-balancer acts as a proxy, which means it
maintains two TCP connections: one with the client
and one with the server.
15
Sidecar Pattern
16
https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
Envoy as sidecar container
17
Control Plane
Comprises three primary Istio services:
▷ Pilot
▷ Mixer
▷ Citadel
18
Pilot
Provides capabilities like service discovery as well as
support for VirtualService. The VirtualService is what
gives you fine-grained request distribution, retries,
timeouts, etc
19
Mixer
With Mixer, you can create policies, apply rate-limiting
rules, and even capture custom metrics. Mixer has a
pluggable backend architecture that is rapidly evolving
with new plug-ins and partners that are extending
Mixer’s default capabilities in many new and interesting
ways.
20
Citadel
Formerly known as Istio CA or Auth, is responsible for
certificate signing, certificate issuance, and
revocation/rotation. Istio issues X.509 certificates to
all your microservices, allowing for mutual Transport
Layer Security (mTLS) between those services,
encrypting all their traffic transparently.
21
Examine Istio patterns including smarter canaries and
dark launches
22
Traffic Control
“With a canary deployment, you deploy a new version
of your code to production but allow only a subset of
traffic to reach it
23
Canary Deployment
Destination Rule and Virtual Service
24
In this case, 100% of traffic for the recommendation service will always go to pods matching the
label version v1.
Canary Release for API V2
25
We’re sending 90% of the traffic to v1 and
10% of the traffic to v2 with this VirtualService
Header Based
26
This rule uses a request header–based matching
clause that will match only if the request
includes “Safari” as part of the user-agent header
Dark Launch
27
Istio allows you to duplicate or mirror traffic to a
new version of your application and see how it
behaves compared to the live application pod
Egress Gateway
28
Controlling all outbound traffic with rules.
Service resiliency
How Istio provides load balancing, circuit breaking, and
pool ejection
29
Load Balancing
30
ROUND_ROBIN
This algorithm evenly distributes the load, in order,
across the endpoints in the load-balancing pool.
RANDOM
This evenly distributes the load across the endpoints in
the load-balancing pool but without any order.
LEAST_CONN
This algorithm picks two random hosts from the load-
balancing pool and determines which host has fewer
outstanding requests (of the two) and sends to that
endpoint. This is an implementation of weighted least
request load balancing.
Timeout
31
Calls to services over a network can result in lots
of unpredictable behavior, but the worst behavior
is latency. Did the service fail? Is it just slow? Is it
not even available? Unbounded latency means
any of those things could have happened
Retry
32
With Istio’s retry capability, you can make a few
more attempts before having to truly deal with
the error, potentially falling back to default logic.
To forward the request to another instance just in case you get an open circuit
breaker or pool ejection
Circuit Breaker
33
Istio puts more of the resilience implementation into
the infrastructure so that you can focus more of your
valuable time and energy on code that differentiates
your business from the ever-growing competitive
field.
To create circuit breaker functionality for our services,
we use an Istio DestinationRule
To avoid multiple concurrent requests to an instance
Pool Ejection
34
If the request is forwarded to a certain instance
and it fails (e.g., returns a 50x error code), Istio
will eject this instance from the pool for a
certain sleep window. In our example, the sleep
window is configured to be 15s.
To remove failing instances from the pool of responding instances
Chaos testing
Turbulent conditions through fault injection
35
“Chaos Engineering is the discipline of experimenting
on a distributed system in order to build confidence
in the system’s capability to withstand turbulent
conditions in production
36
Principles of Chaos Engineering
http://principlesofchaos.org/?lang=ENcontent
HTTP Errors
37
We use the combination of Istio’s DestinationRule and VirtualService to
inject a percentage of faults—in this case, returning the HTTP 503 error
code 50% of the time.
Injecting errors via Istio instead of using Java code
Delays
38
The following manifest injects 7
seconds of delay into 50% of the
responses from the
recommendation service
The most insidious of possible distributed computing faults is not a “dead”
service but a service that is responding slowly
Observability
Tracing and metrics
39
Tracing
40
Jaeger implements OpenTracing, a vendor-neutral tracing API. Jaeger was originally open sourced by the
Uber Technologies team and is a distributed tracing system specifically focused on microservices
architecture.
Metrics
41
Istio will gather telemetry data across the service mesh by leveraging Prometheus and
Grafana to get started with this important capability
Service Graph
42
Istio has provided the out-of-the-box basic Servicegraph visualization
since its earliest days
Security
Istio’s security capabilities, such as mTLS, RBAC, and
policy enforcement
43
Mutual Transport Layer Security
44
Enabling mTLS in Istio uses the combination of Policy and DestinationRule objects
(mTLS)
Access Control with Mixer Policy
45
Istio’s Mixer Policy service allows you to construct a series of rules that ensure the various
microservices that make up your application follow an approved invocation path
For example:
• customer is not allowed to call recommendation;
• preference is not allowed to call customer;
• recommendation is not allowed to call customer;
• recommendation is not allowed to call preference.
Role-Based Access Control (RBAC)
46
Istio includes a Role-Based Access Control (RBAC) authorization feature
that can be used to further constrain which services (e.g., customer,
preference, recommendation) are accessible by particular users.
Where mode can be:
OFF: Istio authorization is disabled.
ON: Istio authorization is enabled for all services in the mesh.
ON_WITH_INCLUSION: Enabled only for services and namespaces
specified in the inclusion field.
ON_WITH_EXCLUSION: Enabled for all services in the mesh except the
services and namespaces specified in the exclusion field.
Role-Based Access Control (RBAC)
47
Istio’s RBAC uses a deny-by-default strategy, meaning that nothing is permitted until you explicitly
define an access-control policy to grant access to any service. To reopen the customer endpoint
to end-user traffic, create a ServiceRole and a ServiceRoleBinding
JWT
48
Istio has support for user authentication and authorization via JWT (JSON Web Token)Istio has
support for user authentication and authorization via JWT (JSON Web Token)
Thanks!
Any questions?
You can find me at:
@natanaelfonseca
natanael.vaz@gmail.com
49

More Related Content

What's hot

Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
Jonh Wendell
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?
Orkhan Gasimov
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
Sreenivas Makam
 
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshService-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Christian Posta
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
Luke Marsden
 
Kubernetes a comprehensive overview
Kubernetes   a comprehensive overviewKubernetes   a comprehensive overview
Kubernetes a comprehensive overview
Gabriel Carro
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
Mirantis
 
Demystifying Service Mesh
Demystifying Service MeshDemystifying Service Mesh
Demystifying Service Mesh
Mitchell Pronschinske
 
Api observability
Api observability Api observability
Api observability
Red Hat
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
CloudOps2005
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
Megan O'Keefe
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
Weaveworks
 
Kubernetes and Prometheus
Kubernetes and PrometheusKubernetes and Prometheus
Kubernetes and Prometheus
Weaveworks
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Edureka!
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
ssuser31375f
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
Jeeva Chelladhurai
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
C4Media
 

What's hot (20)

Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshService-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
 
Kubernetes a comprehensive overview
Kubernetes   a comprehensive overviewKubernetes   a comprehensive overview
Kubernetes a comprehensive overview
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
Demystifying Service Mesh
Demystifying Service MeshDemystifying Service Mesh
Demystifying Service Mesh
 
Api observability
Api observability Api observability
Api observability
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Kubernetes and Prometheus
Kubernetes and PrometheusKubernetes and Prometheus
Kubernetes and Prometheus
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
 

Similar to 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 2019
Ram Vennam
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
Judy Breedlove
 
End-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud ComputingEnd-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud Computing
Dr Sukhpal Singh Gill
 
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
Mohammad Asif Siddiqui
 
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
 
Service Mesh For Beginner
Service Mesh For BeginnerService Mesh For Beginner
Service Mesh For Beginner
Mien Dinh
 
Meetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service MeshMeetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service Mesh
ConSol Consulting & Solutions Software GmbH
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Ahmed Misbah
 
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
CodeOps 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
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
VladimirRadzivil
 
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
Daniel Ciruli
 
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
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
Rafik HARABI
 
Wccp introduction final2
Wccp introduction final2Wccp introduction final2
Wccp introduction final2
bui thequan
 
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
Lee Calcote
 
Disadvantages Of Robotium
Disadvantages Of RobotiumDisadvantages Of Robotium
Disadvantages Of Robotium
Susan Tullis
 
Study Notes - Using an API Gateway
Study Notes - Using an API GatewayStudy Notes - Using an API Gateway
Study Notes - Using an API Gateway
Rick Hwang
 
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
Visualize and secure your service mess with Red Hat OpenShift Service MeshVisualize and secure your service mess with Red Hat OpenShift Service Mesh
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
Jordi Sola
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
Carlos Cavero Barca
 

Similar to 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
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
End-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud ComputingEnd-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud Computing
 
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
 
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)
 
Service Mesh For Beginner
Service Mesh For BeginnerService Mesh For Beginner
Service Mesh For Beginner
 
Meetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service MeshMeetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service Mesh
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
 
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 ...
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
 
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
 
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...
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
Wccp introduction final2
Wccp introduction final2Wccp introduction final2
Wccp introduction final2
 
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
 
Disadvantages Of Robotium
Disadvantages Of RobotiumDisadvantages Of Robotium
Disadvantages Of Robotium
 
Study Notes - Using an API Gateway
Study Notes - Using an API GatewayStudy Notes - Using an API Gateway
Study Notes - Using an API Gateway
 
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
Visualize and secure your service mess with Red Hat OpenShift Service MeshVisualize and secure your service mess with Red Hat OpenShift Service Mesh
Visualize and secure your service mess with Red Hat OpenShift Service Mesh
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
 

More from Natanael Fonseca

Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
Natanael Fonseca
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
Natanael Fonseca
 
Aula05
Aula05Aula05
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
Natanael Fonseca
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
Natanael Fonseca
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
Natanael Fonseca
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
Natanael Fonseca
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
Natanael Fonseca
 
Fragmentos
FragmentosFragmentos
Fragmentos
Natanael Fonseca
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
Natanael Fonseca
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca
 
Certificados Digitais x509
Certificados Digitais x509Certificados Digitais x509
Certificados Digitais x509
Natanael Fonseca
 
Certificados Digitais x509
Certificados Digitais x509Certificados Digitais x509
Certificados Digitais x509
Natanael Fonseca
 
Infra Estrutura de Chaves Publicas(PKI)
Infra Estrutura de Chaves Publicas(PKI)Infra Estrutura de Chaves Publicas(PKI)
Infra Estrutura de Chaves Publicas(PKI)
Natanael Fonseca
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
Natanael Fonseca
 
Transações em EJB
Transações em EJBTransações em EJB
Transações em EJB
Natanael Fonseca
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
Natanael Fonseca
 
Java annotation
Java annotationJava annotation
Java annotation
Natanael Fonseca
 
Validação de certificados digitais
Validação de certificados digitaisValidação de certificados digitais
Validação de certificados digitais
Natanael Fonseca
 

More from Natanael Fonseca (19)

Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
 
Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
 
Fragmentos
FragmentosFragmentos
Fragmentos
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Certificados Digitais x509
Certificados Digitais x509Certificados Digitais x509
Certificados Digitais x509
 
Certificados Digitais x509
Certificados Digitais x509Certificados Digitais x509
Certificados Digitais x509
 
Infra Estrutura de Chaves Publicas(PKI)
Infra Estrutura de Chaves Publicas(PKI)Infra Estrutura de Chaves Publicas(PKI)
Infra Estrutura de Chaves Publicas(PKI)
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
 
Transações em EJB
Transações em EJBTransações em EJB
Transações em EJB
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
Java annotation
Java annotationJava annotation
Java annotation
 
Validação de certificados digitais
Validação de certificados digitaisValidação de certificados digitais
Validação de certificados digitais
 

Recently uploaded

active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
sudsdeep
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Livetecs LLC
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
ssuser2b426d1
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
DNUG e.V.
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
SimonedeGijt
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
VishrutGoyani1
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
akshesh doshi
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
sachin chaurasia
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
e-Definers Technology
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
kalichargn70th171
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Softwares
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
Mitchell Marsh
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Estuary Flow
 

Recently uploaded (20)

active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
 

Microservices With Istio Service Mesh

  • 2. Hello! I am Natanael Fonseca Solution Architect at Everis. You can find me at: @natanaelfonseca 2
  • 3. Session Agenda - Microservices Patterns; - Spring Cloud; - What is a Service Mesh? - What is ISTIO? - Before and After; 3 - Traffic Control; - Service Resilience; - Chaos Testing; - Observability; - Security.
  • 4. Microservices Patterns ▷ Netflix Hystrix (Circuit Breaking) ▷ Netflix Zuul (Edge Routing) ▷ Netflix Ribbon ( Client-Side Service Discovery ) ▷ Netflix Eureka (Service Discovery Registry) ▷ Brave / Zipkin (Tracing) ▷ Netflix Spectator / Atlas (Metrics) 4
  • 5. Spring Cloud Projects ▷ Spring Cloud Config; ▷ Spring Cloud Netflix; ▷ Spring Cloud Bus; ▷ Spring Cloud Foundry; ▷ Spring Cloud Open Service Broker; ▷ Spring Cloud Cluster; ▷ Spring Cloud Consul; ▷ And others….. 5 https://spring.io/projects/spring-cloud
  • 6. Spring Cloud Netflix ▷ Service Discovery; ▷ Circuit Breaker; ▷ Declarative REST Client with Feign; ▷ Client Side Load Balancer with Ribbon; ▷ Router and Filter with Zuul. 6
  • 8. “A service mesh is the connective tissue between your services that adds additional capabilities like traffic control, service discovery, load balancing, resilience, observability, security, and so on… 8 What is a service mesh?
  • 9. “Developed by a collaboration between Google, IBM, and Lyft, Istio is an open-source service mesh that lets you connect, monitor, and secure microservices deployed on- premise, in the cloud, or with orchestration platforms like Kubernetes and Mesos. 9 What is ISTIO?
  • 10. What are the biggest changes 10 Before and After
  • 13. Two areas to aim complete solution 13 Control and Data Plane
  • 14. Data Plane Comprises the primary Istio sidecar: ▷ Envoy 14
  • 15. Envoy A layer 7 load-balancer takes routing decision based on IPs, TCP or UDP ports or any information it can get from the application protocol (mainly HTTP). The layer 7 load-balancer acts as a proxy, which means it maintains two TCP connections: one with the client and one with the server. 15
  • 17. Envoy as sidecar container 17
  • 18. Control Plane Comprises three primary Istio services: ▷ Pilot ▷ Mixer ▷ Citadel 18
  • 19. Pilot Provides capabilities like service discovery as well as support for VirtualService. The VirtualService is what gives you fine-grained request distribution, retries, timeouts, etc 19
  • 20. Mixer With Mixer, you can create policies, apply rate-limiting rules, and even capture custom metrics. Mixer has a pluggable backend architecture that is rapidly evolving with new plug-ins and partners that are extending Mixer’s default capabilities in many new and interesting ways. 20
  • 21. Citadel Formerly known as Istio CA or Auth, is responsible for certificate signing, certificate issuance, and revocation/rotation. Istio issues X.509 certificates to all your microservices, allowing for mutual Transport Layer Security (mTLS) between those services, encrypting all their traffic transparently. 21
  • 22. Examine Istio patterns including smarter canaries and dark launches 22 Traffic Control
  • 23. “With a canary deployment, you deploy a new version of your code to production but allow only a subset of traffic to reach it 23 Canary Deployment
  • 24. Destination Rule and Virtual Service 24 In this case, 100% of traffic for the recommendation service will always go to pods matching the label version v1.
  • 25. Canary Release for API V2 25 We’re sending 90% of the traffic to v1 and 10% of the traffic to v2 with this VirtualService
  • 26. Header Based 26 This rule uses a request header–based matching clause that will match only if the request includes “Safari” as part of the user-agent header
  • 27. Dark Launch 27 Istio allows you to duplicate or mirror traffic to a new version of your application and see how it behaves compared to the live application pod
  • 28. Egress Gateway 28 Controlling all outbound traffic with rules.
  • 29. Service resiliency How Istio provides load balancing, circuit breaking, and pool ejection 29
  • 30. Load Balancing 30 ROUND_ROBIN This algorithm evenly distributes the load, in order, across the endpoints in the load-balancing pool. RANDOM This evenly distributes the load across the endpoints in the load-balancing pool but without any order. LEAST_CONN This algorithm picks two random hosts from the load- balancing pool and determines which host has fewer outstanding requests (of the two) and sends to that endpoint. This is an implementation of weighted least request load balancing.
  • 31. Timeout 31 Calls to services over a network can result in lots of unpredictable behavior, but the worst behavior is latency. Did the service fail? Is it just slow? Is it not even available? Unbounded latency means any of those things could have happened
  • 32. Retry 32 With Istio’s retry capability, you can make a few more attempts before having to truly deal with the error, potentially falling back to default logic. To forward the request to another instance just in case you get an open circuit breaker or pool ejection
  • 33. Circuit Breaker 33 Istio puts more of the resilience implementation into the infrastructure so that you can focus more of your valuable time and energy on code that differentiates your business from the ever-growing competitive field. To create circuit breaker functionality for our services, we use an Istio DestinationRule To avoid multiple concurrent requests to an instance
  • 34. Pool Ejection 34 If the request is forwarded to a certain instance and it fails (e.g., returns a 50x error code), Istio will eject this instance from the pool for a certain sleep window. In our example, the sleep window is configured to be 15s. To remove failing instances from the pool of responding instances
  • 35. Chaos testing Turbulent conditions through fault injection 35
  • 36. “Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production 36 Principles of Chaos Engineering http://principlesofchaos.org/?lang=ENcontent
  • 37. HTTP Errors 37 We use the combination of Istio’s DestinationRule and VirtualService to inject a percentage of faults—in this case, returning the HTTP 503 error code 50% of the time. Injecting errors via Istio instead of using Java code
  • 38. Delays 38 The following manifest injects 7 seconds of delay into 50% of the responses from the recommendation service The most insidious of possible distributed computing faults is not a “dead” service but a service that is responding slowly
  • 40. Tracing 40 Jaeger implements OpenTracing, a vendor-neutral tracing API. Jaeger was originally open sourced by the Uber Technologies team and is a distributed tracing system specifically focused on microservices architecture.
  • 41. Metrics 41 Istio will gather telemetry data across the service mesh by leveraging Prometheus and Grafana to get started with this important capability
  • 42. Service Graph 42 Istio has provided the out-of-the-box basic Servicegraph visualization since its earliest days
  • 43. Security Istio’s security capabilities, such as mTLS, RBAC, and policy enforcement 43
  • 44. Mutual Transport Layer Security 44 Enabling mTLS in Istio uses the combination of Policy and DestinationRule objects (mTLS)
  • 45. Access Control with Mixer Policy 45 Istio’s Mixer Policy service allows you to construct a series of rules that ensure the various microservices that make up your application follow an approved invocation path For example: • customer is not allowed to call recommendation; • preference is not allowed to call customer; • recommendation is not allowed to call customer; • recommendation is not allowed to call preference.
  • 46. Role-Based Access Control (RBAC) 46 Istio includes a Role-Based Access Control (RBAC) authorization feature that can be used to further constrain which services (e.g., customer, preference, recommendation) are accessible by particular users. Where mode can be: OFF: Istio authorization is disabled. ON: Istio authorization is enabled for all services in the mesh. ON_WITH_INCLUSION: Enabled only for services and namespaces specified in the inclusion field. ON_WITH_EXCLUSION: Enabled for all services in the mesh except the services and namespaces specified in the exclusion field.
  • 47. Role-Based Access Control (RBAC) 47 Istio’s RBAC uses a deny-by-default strategy, meaning that nothing is permitted until you explicitly define an access-control policy to grant access to any service. To reopen the customer endpoint to end-user traffic, create a ServiceRole and a ServiceRoleBinding
  • 48. JWT 48 Istio has support for user authentication and authorization via JWT (JSON Web Token)Istio has support for user authentication and authorization via JWT (JSON Web Token)
  • 49. Thanks! Any questions? You can find me at: @natanaelfonseca natanael.vaz@gmail.com 49