@alexsotob#VoxxedBristol
Sail in the Cloud
Alex Soto
Red Hat
@alexsotob2
Alex Soto
Red Hat Engineer
www.lordofthejars.com
@alexsotob
Who Am I?
ctwvxddaysbristol18
@alexsotob3
Questions
@alexsotob4
MyApp
Monolith
@alexsotob5
Modules
@alexsotob6
Components
@alexsotob7
Microservices
@alexsotob8
Microservices
@alexsotob9
Microservices
@alexsotob10
Network of Services
@alexsotob11
Microservices Own Their Data
@alexsotob12
Multiple Points of Entry
@alexsotob13
Microservices == Distributed Computing
OS
JVM
Service A
OS
JVM
Service B
OS
JVM
Service C
@alexsotob14
▪ The network is reliable
▪ Latency is zero
▪ Bandwidth is infinite
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
▪ Topology does not change
▪ There is one administrator
▪ Transport cost is zero
▪ The network is homogeneous
Fallacies of Distributed Computing
@alexsotob15
Failure of a Service
@alexsotob16
Cascading Failure
@alexsotob17
Microservices’ilities
MyService
Monitoring
Tracing
API
Discovery
Invocation
Resilience
Pipeline
Authentication
Logging Elasticity
@alexsotob18
@alexsotob19
Microservices’ilities + OpenShift
MyService
Monitoring
Tracing
API
Discovery
Invocation
Resilience
Pipeline
Authentication
Logging Elasticity
@alexsotob20
Pods
A group of whales is commonly referred to
as a pod and a pod usually consists a group
of whales that have bonded together either
because of biological reasons or through
friendships developed between two or more
whales.
In many cases a typical whale pod consists
of anywhere from 2 to 30 whales or more.*
*http://www.whalefacts.org/what-is-a-group-of-whales-called/
@alexsotob21
Istio — ‘Sail’
(Kubernetes — the ‘Helmsman’)
@alexsotob22
But wow!
Am I so ready
for this change.
— Anna
“
@alexsotob23
Microservices’ilities + OpenShift + Istio
MyService
Monitoring
Tracing
API
Discovery
Invocation
Resilience
Pipeline
Authentication
Logging Elasticity
@alexsotob24
Container
JVM
Service B
Discovery
Load-balancer
Resiliency
Metrics
Tracing
Container
JVM
Service A
Discovery
Load-balancer
Resiliency
Metrics
Tracing
Container
JVM
Service C
Discovery
Load-balancer
Resiliency
Metrics
Tracing
Before Istio
Microservices Embedding Capabilities
@alexsotob25
Okay,
can I just,
say something crazy?
— Anna
“
@alexsotob26
Pod
Container
JVM
Service A
Sidecar Container
Pod
Container
JVM
Service C
Sidecar Container
After Istio
Pod
Container
JVM
Service B
Sidecar Container
Microservices Externalizing Capabilities
The sidecar intercepts all network traffic
@alexsotob27
Istio Concepts
Destination
Rule
Virtual Service Service Entry Gateway
✓ Circuit Breaker
✓ Load Balancers
✓ TLS settings
✓ Defining subsets
✓ Virtual services,
not in registry
✓ Describes
mapping
between
destinations
✓ Configure traffic
to external
services of the
mesh
✓ Use with
Detination Rule
& Virtual Service
✓ Load balancer at the
edge of the mesh
✓ Use with Virtual
Service
@alexsotob28
@alexsotob29
@alexsotob30
@alexsotob31
@alexsotob32
It's time to see
what I can do
To test the limits
and break through
— Elsa
“
@alexsotob33
DEMO
http://bit.ly/istio-tutorial
@alexsotob34
@alexsotob35
@alexsotob36
Kiali.io
New
Service
Graph
@alexsotob37
I'm never going back,
the past
is in the past
— Elsa
“
@alexsotob38
Polyglot Microservices Platforms circa 2018
@alexsotob39
Digital Darwinism
Re-Org to
DevOps
Self-Service,
On-Demand.
Elastic
Infrastructure
as Code
Automation
Puppet,
Chef,
Ansible,
Kubernetes
CI & CD
Deployment
Pipeline
Advanced
Deployment
Techniques
Microservices
@alexsotob asotobue@redhat.com

Sail in the Cloud - An intro to Istio