Dumb Services In
Smart Nets
Ant Weiss, Otomato Software
Deploy Like a Ninja with a Service
Mesh
whoami: Anton (Ant) Weiss
@antweiss
Otomato Software Delivery
http://otomato.link
@antweiss
while True:
intellect = 0.05
@antweiss
while True:
intellect = 0.05
dumbness = 0.95
@antweiss
Microservices !!!
API
gateway
User
mgmt
Product
Service
Pricing
Service
Orders
Service
Billing
Service
Payment
Service
MainUI
DB DB DB
DB DB DB
UserUI
MobileUI
@antweiss
Microservices !!!
API
gateway
User
mgmt
Product
Service
Pricing
Service
Orders
Service
Billing
Service
Payment
Service
MainUI
DB DB DB
DB DB DB
UserUI
MobileUI
MacroPAIN !!!
@antweiss
@antweiss
The Traps of Distributed SysteMS
@antweiss
● Misconfigured Fallback Options
The Traps of Distributed SysteMS
@antweiss
● Misconfigured Fallback Options
● Retry Storms
The Traps of Distributed SysteMS
@antweiss
● Misconfigured Fallback Options
● Retry Storms
● Outages When a Downstream is Overloaded
The Traps of Distributed SysteMS
@antweiss
● Misconfigured Fallback Options
● Retry Storms
● Outages When a Downstream is Overloaded
● Cascading Failures When a SPOF crashes
The Traps of Distributed SysteMS
@antweiss
http://principlesofchaos.org
The Traps of Distributed SysteMS
@antweiss
PATTERNS of RESILIENCE
@antweiss
● connection pools
PATTERNS of RESILIENCE
@antweiss
● connection pools
● failure detectors
PATTERNS of RESILIENCE
@antweiss
● connection pools
● failure detectors
● failover strategies:
○ circuit breaking
○ exponential back-offs
PATTERNS of RESILIENCE
@antweiss
● connection pools
● failure detectors
● failover strategies:
○ circuit breaking
○ exponential back-offs
● load-balancers
PATTERNS of RESILIENCE
@antweiss
● connection pools
● failure detectors
● failover strategies:
○ circuit breaking
○ exponential back-offs
● load-balancers
● back-pressure techniques
○ rate limiting, etc
PATTERNS of RESILIENCE
@antweiss
ADDITIONAL CONCERNS
Service Discovery
@antweiss
ADDITIONAL CONCERNS
Service Discovery
Observability:
● Distributed Tracing
● Network Telemetry
@antweiss
Service Discovery
Observability:
● Distributed Tracing
● Network Telemetry
Security:
● Point-to-point mTLS
ADDITIONAL CONCERNS
@antweiss
ADDITIONAL CONCERNS
Service Discovery
Observability:
● Distributed Tracing
● Network Telemetry
Security:
● Point-to-point mTLS
Continuous Delivery
@antweiss
ADDITIONAL CONCERNS
Service Discovery
Observability:
● Distributed Tracing
● Network Telemetry
Security:
● Point-to-point mTLS
Progressive Delivery
@antweiss
Progressive Delivery Strategies
● Rolling updates
@antweiss
● Rolling updates
● Dark Launch
Progressive Delivery Strategies
@antweiss
● Rolling updates
● Dark Launch
● Blue-Green
Progressive Delivery Strategies
@antweiss
● Rolling updates
● Dark Launch
● Blue-Green
● Canary
Progressive Delivery Strategies
@antweiss
● Rolling updates
● Dark Launch
● Blue-Green
● Canary
● Traffic Mirroring
Kiaaaiiii !!
Progressive Delivery Strategies
@antweiss
Go to a Library?
Finagle
Ribbon
Hystrix
Zipkin
Spring-sleuth
Polly (for .NET)
@antweiss
The Cloud-Native Answer: Service Mesh
Istio
@antweiss
Istio Perks
● Smart Routing and Load Balancing
@antweiss
● Smart Routing and Load Balancing
● Detailed Network Telemetry
Istio Perks
@antweiss
● Smart Routing and Load Balancing
● Detailed Network Telemetry
● Security (TLS) Built-In
Istio Perks
@antweiss
● Smart Routing and Load Balancing
● Detailed Network Telemetry
● Security (TLS) Built-In
● Platform(?) and Language Independent
Istio Perks
@antweiss
● Smart Routing and Load Balancing
● Detailed Network Telemetry
● Security (TLS) Built-In
● Platform(?) and Language Independent
No Changes to App Code!!! (Well, almost)
Istio Perks
@antweiss
ISTIO ARCHITECTURE
@antweiss
Demo App
front
bethaleph
envoy envoy
envoy
istio-ingress-gateway
envoy
https://github.com/otomato-gh/istio-games
@antweiss
YAM
L
who?
@antweiss
The BirdWatch Loop
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: birdwatches.otomato.link
WAIT
FOR
CANARY
Found Canary:
Service: aleph
Version: 0.4
Release
some
traffic to
the canary
Canary
Healthy?
Canary Flies to
Production
yes no
Canary Dies
https://github.com/otomato-gh/birdwatch-otomator
@antweiss
Real NInjas Use:
K8S
Operators
Manage Complex (Stateful)
Apps
K8S
Otomators
Automate Cluster
Management
VS.
https://github.com/otomato-gh/birdwatch-otomator
@antweiss
● Won’t DevOps get Stuck in the Mesh?
SOME HARD QuestIONS:
@antweiss
SOME HARD QuestIONS:
● Won’t DevOps get Stuck in the Mesh?
● Who’s Gonna Build the Otomators?
@antweiss
SOME HARD QuestIONS:
● Won’t DevOps get Stuck in the Mesh?
● Who’s Gonna Build the Otomators?
● Why Python and not Golang?
@antweiss
SUMMARIZE:
● Service Mesh Protects Us From the Traps
● Solves the Shared Libraries Issues
● A Good Fit if you like Centralised Control
● Smarter Pipelines -> Dumber Services
● Without Otomators The Mesh Can Get Clogged
● Dumb Services in a Clogged Mesh = Catastrophe
● Therefore Real Ninjas use Otomators
@antweiss
The Future:
● Alternatives:
○ Linkerd 2.0 (from Bouyant)
○ Consul Connect (Hashicorp)
● Commercial Options
○ Aspen Mesh (F5 incubator)
○ AWS, Azure, GCP
● SMI Spec - the Standard Service Mesh API
@antweiss
Thank You
@antweiss
http://otomato.link
http://devopstrain.pro

Dumb Services in Smart Nets - istio