7 Istio Service Mesh
7 Istio Service Mesh
July 2019
CONFIDENTIAL Designator
Microservices
Benefits and
Challenges
MICROSERVICES ARCHITECTURE
DISTRIBUTED
3 ISTIO WEBINAR
DISTRIBUTED COMPUTING CHALLENGES
wikipedia.org/wiki/Fallacies_of_distributed_computing
4 ISTIO WEBINAR
DISTRIBUTED ARCHITECTURE
5 ISTIO WEBINAR
MICROSERVICES ARE HARD
B D
C
H
Because applications must deal with Client A
F G
E
● Unpredictable failures
I
● End-to-end application correctness
● System degradation
● Topology changes
● Elastic/ephemeral/transient resources
● Distributed logs
● The fallacies of distributed computing
6 ISTIO WEBINAR
AN EXAMPLE
Touchscreen
128GB SSD
Details/Specifications
8GB RAM
Core i3
Windows 10
Add to Cart
7 ISTIO WEBINAR
CHAINING
8 ISTIO WEBINAR
CHAINING (FAILURE)
9 ISTIO WEBINAR
CHAINING (CASCADING FAILURE)
X X X X X
10 ISTIO WEBINAR
CONFIDENTIAL Designator
Traditional
Approaches
POSSIBLE SOLUTIONS
● Circuit Breaking
● Bulkheading
● Timeouts/Retries
● Service Discovery
● Load Balancing
● Traffic Control
12 ISTIO WEBINAR
Container
Hystrix
JVM
service A Zuul
discovery
load-balancer Ribbon
resiliency
metrics Eureka
tracing
app logic Archaius
13 ISTIO WEBINAR
WHAT ABOUT…?
POLYGLOT EXISTING
APPS APPS
14 ISTIO WEBINAR
Kubernetes exacerbates the problem
15 ISTIO WEBINAR
CONFIDENTIAL Designator
Service
Container Platform
Platform
(+ Service Mesh)
...2014 2018
18 ISTIO WEBINAR
19 ISTIO WEBINAR
ISTIO’S CAPABILITIES AT 10,000 FEET
Traffic Management.
Rules and traffic routing lets you control the flow of traffic and API calls between services.
Policy Enforcement.
Apply to the interaction between services and ensure they are enforced. Changes are made by
configuring the mesh, not by changing application code.
Observability.
Gain understanding of the dependencies between services and the nature and flow of traffic between
them, providing the ability to quickly identify and fix issues.
20 ISTIO WEBINAR
MICROSERVICES WITH ISTIO
connect, manage, and secure microservices transparently
Pod
Sidecar Container
Pod Istio Logic Pod
App/Service A App/Service C
21 ISTIO WEBINAR
WHAT IS A SIDECAR?
A proxy instance that abstracts common logic away from individual services
SIDECAR PATTERN
POD
● A utility container in the same pod to SIDECAR
enhance the main container’s functionality
● Share the same network and lifecycle
● Istio uses an Istio Proxy (L7 Proxy) sidecar APP
22 ISTIO WEBINAR
ISTIO PROVIDES BOTH CONTROL AND DATA PLANES
23 ISTIO WEBINAR
COMPONENTS OF ISTIO
Mixer, which provides the policy and access Control Pilot Mixer Citadel
control mechanisms within the service mesh. Plane
Monitoring, reporting, quotas - plugin-based.
24 ISTIO WEBINAR
WHAT DOES CONNECT MEAN?
.2.3
io n=1
Vers
Ve
rs
io
n
=
1.2
.4
Discovery and Routing: Decoupled from infrastructure, load balancing modes, dynamic routing...
Advanced Deployments: A/B testing, gradual rollouts, canary releases, mirroring...
Failure, Health, and Testing: timeouts, retries, circuit breakers, fault injection, active health checks...
25 ISTIO WEBINAR
HOW DO YOU SECURE SERVICES?
26 ISTIO WEBINAR
WHAT CAN YOU CONTROL?
Exempt if:
match(request.headers["cookie"], "user=*") == false
Set and Check Policy: Open-ended, connection limits, rate limits, simple denials, lists
27 ISTIO WEBINAR
HOW CAN YOU OBSERVE?
Understand how your services are operating: Metrics, tracing, network visibility
28 ISTIO WEBINAR
ISTIO AVAILABILITY
Istio 1.0!
● After over a year of work,
● ~200 developers
● Google, IBM, VMWare, Cisco, Red Hat, others...
● Adaptors for many monitoring systems
Istio on OpenShift
● Available in Dev Preview today (3.10)
● GA coming soon (4.1)
29 ISTIO WEBINAR
ISTIO ON OPENSHIFT
Istio on OpenShift
● Available in Dev Preview today (3.10)
● GA coming soon (4.1)
● Istio is an “operator first product” (using Operator Framework)
○ https://github.com/Maistra/istio-operator
○ The operator manages the install (eventually updates)
○ Istio is delivered as containers, not RPMs
30 ISTIO WEBINAR
TRY IT YOURSELF
https://learn.openshift.com/servicemesh/
31