Cloud-native Application
Debugging with Envoy and
Service Mesh
Christian Posta
Field CTO – Solo.io
2 | Copyright © 2020
CHRISTIAN POSTA
Global Field CTO, Solo.io
@christianposta
christian@solo.io
https://blog.christianposta.com
https://slideshare.net/ceposta
3 | Copyright © 2020
01
02
03
04
05
06
Challenges of microservices,
debugging
Introduction to our lab
environment
Distributed tracing with a
service mesh
Debugging microservices
Debugging in production with
record and replay
Proactive debugging with
chaos experimentation
Approximate flow of workshop
4 | Copyright © 2020
Moving to microservices?
5 | Copyright © 2020
Microservices and Kubernetes
6 | Copyright © 2020
Move fast, safely
https://puppet.com/resources/whitepaper/state-of-devops-report
7 | Copyright © 2020
SERVICE MESH JOURNEY
INNOVATION
MODERNIZE TO
MICROSERVICES
SERVICE MESH MANAGEMENT
ANY MESH - ANYWHERE
ADAPTIVE SERVICE
MESH
8 | Copyright © 2020
December 11, 2018
2018 TOP WOMEN ENTREPRENEURS IN CLOUD INNOVATION
Seventh Annual Award Honors Women Founders for Outstanding
Accomplishments in Cloud and Emerging Technologies, Sponsored by
Facebook, Intel, and Google.
Award Winning Innovation
Key Industry Collaborations
9 | Copyright © 20209 | Copyright © 2020
The problem
10 | Copyright © 2020
As we move to services architectures,
on cloud-native deployment platforms,
we increase the complexity between
our services.
11 | Copyright © 2020
Cloud application networking challenges
• Service discovery
• Retries
• Timeouts
• Load balancing
• Rate limiting
• Thread bulk heading
• Circuit breaking
12 | Copyright © 2020
Cloud application networking challenges
• Edge/DMZ routing
• Surgical / fine / per-request routing
• A/B rollout
• Traffic shaping
• Request racing
• Internal releases / dark launches
• Request shadowing
• Fault injection
13 | Copyright © 2020
Cloud application networking challenges
• Adaptive, zone-aware routing
• Deadlines
• Health checking
• Stats, metric, collection
• Logging
• Distributed tracing
• Security
14 | Copyright © 2020
How do we begin to understand what’s
happening so we can debug?
15 | Copyright © 2020
How we typically like to solve this problem:
16 | Copyright © 202016 | Copyright © 2020
Decentralized, language-independent
observability in the network
Foundational technology to help solve these challenges in a
cloud-native application architecture
17 | Copyright © 2020
Envoy is to Application Networking
what Kubernetes is to Container Deployment
http://envoyproxy.io
18 | Copyright © 2020
Envoy implements:
• zone aware, least request load balancing
• circuit breaking
• outlier detection
• retries, retry policies
• timeout (including budgets)
• traffic shadowing
• request racing
• rate limiting
• access logging, statistics collection
• Many other features!
19 | Copyright © 2020
Envoy to do application networking heavy lifting
20 | Copyright © 2020
Why Envoy?
• C++
• Built ground-up for services environment
• Large, diverse, vibrant community
• Dynamic configuration model
• Highly extensible (in C++  we’ll come back to this)
• Many out of the box L7 filters (HTTP, HTTP2, grpc, redis, mysql,
DynamoDB, thrift, zookeeper, kafka, et. al.)
• Incredible trove of telemetry, tracing out of the box
• Very versatile deployment options (as we’ll see)
21 | Copyright © 2020
Versatility of Envoy: Edge proxy
22 | Copyright © 2020
Versatility of Envoy: Middle proxy
23 | Copyright © 2020
Versatility of Envoy: Service proxy
24 | Copyright © 2020
Control plane for managing mesh of service proxies
25 | Copyright © 2020
Service proxy lives with application instance
26 | Copyright © 2020
Service mesh technologies provide the following:
• Service discovery / Load balancing
• Secure service-to-service communication
• Traffic control / shaping / shifting
• Policy / Intention based access control
• Traffic metric collection
• Service resilience
• API / programmable interface
27 | Copyright © 2020
These application-networking technologies provide a
nice API for programming our network
28 | Copyright © 202028 | Copyright © 2020
Setting up the lab environment
29 | Copyright © 2020
http://bit.ly/debug-microservices
30 | Copyright © 2020
http://bit.ly/debug-microservices
31 | Copyright © 2020
http://bit.ly/debug-microservices
32 | Copyright © 2020
Consul Service Mesh
33 | Copyright © 2020
Consul Service Mesh
connect = {
proxy = {
config = {
upstreams = [
{
destination_name = "mysql",
local_bind_port = 8001
}
]
}
}
}
34 | Copyright © 2020
Consul Service Mesh
35 | Copyright © 202035 | Copyright © 2020
Tracing with a service mesh
36 | Copyright © 2020 @christianposta
DB S3
DEBUGGING IN PRODUCTION
CLUSTER
POD 1 POD 2 POD 3 POD 4
37 | Copyright © 2020 @christianposta
DB S3
P P P P
DEBUGGING IN PRODUCTION
CLUSTER
POD 1 POD 2 POD 3 POD 4
38 | Copyright © 202038 | Copyright © 2020
Lab: Distributed Tracing
39 | Copyright © 202039 | Copyright © 2020
Debugging
40 | Copyright © 2020
THE PROBLEM
41 | Copyright © 2020
THE PROBLEM
A MONOLITHIC APPLICATION
CONSISTS OF A SINGLE
PROCESS
AN ATTACHED DEBUGGER
ALLOWS VIEWING THE
COMPLETE STATE OF THE
APPLICATION DURING RUNTIME
A MICROSERVICES APPLICATION
CONSISTS OF POTENTIALLY
HUNDREDS OF PROCESSES
IS IT POSSIBLE TO GET A
COMPLETE VIEW OF THE STATE
OF A SUCH APPLICATION?!
42 | Copyright © 202042 | Copyright © 2020
Demo: multi-language, distributed
debugging with Squash
43 | Copyright © 2020
SQUASH
DEFAULT MODE SECURE MODE
44 | Copyright © 2020
SQUASH DEFAULT MODE
Node
Namespace: ns-a Namespace: squash
s-dlvc1
45 | Copyright © 2020
-> ls -l /proc/self/ns
total 0
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 cgroup -> cgroup:[4026531835]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 ipc -> ipc:[4026531839]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 mnt -> mnt:[4026531840]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 net -> net:[4026532009]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 pid -> pid:[4026531836]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 pid_for_children -> pid:[4026531836]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 user -> user:[4026531837]
lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 uts -> uts:[4026531838]
-> inod of mnt namespace (unique identifier to the container namespace)
via CRI api call ExecSyncRequest
Node
Namespace: ns-a
s-dlv
CRI
c1
We need to translate the pid of the process (application that run in the container) to
the host pid namespace to allow debugger to attach.
Namespace: Squash
46 | Copyright © 2020
SQUASH SECURE MODE
Node
Namespace: ns-a Namespace: squash
s-dlvc1
CRD Intent
squash
47 | Copyright © 2020
DOCS: HTTPS://SQUASH.SOLO.IO
GITHUB: HTTPS://GITHUB.COM/SOLO-IO/ SQUASH
COMMUNITY: HTTPS://SLACK.SOLO.IO
48 | Copyright © 202048 | Copyright © 2020
Break: 3:00p – 3:30p
When we come back: Debugging microservices lab
NOTE: Make sure to charge your devices!
49 | Copyright © 202049 | Copyright © 2020
Lab: Squash
50 | Copyright © 202050 | Copyright © 2020
Debugging in production
51 | Copyright © 2020 @christianposta
DB S3
DEBUGGING IN PRODUCTION
CLUSTER
POD 1 POD 2
> ONLY HEADER WILL BE SENT
> SAMPLING
POD 3 POD 4
52 | Copyright © 2020 @christianposta
DB S3
P P P P
DEBUGGING IN PRODUCTION
CLUSTER
POD 1 POD 2 POD 3 POD 4
> ONLY HEADER WILL BE SENT
> SAMPLING
53 | Copyright © 2020 @christianposta
DB S3
P P P P
DEBUGGING IN PRODUCTION
CLUSTER
54 | Copyright © 2020 @christianposta
DB S3
P P P P
DEBUGGING IN PRODUCTION
CLUSTER
55 | Copyright © 2020 @christianposta
DEBUGGING IN PRODUCTION
++
56 | Copyright © 202056 | Copyright © 2020
Getting traffic into your mesh
Workflow-specific APIs for Envoy Proxy
57 | Copyright © 2020
Versatility of Envoy: Edge proxy
58 | Copyright © 2020
Envoy needs a control plane.
59 | Copyright © 2020
API Gateway built on Envoy
https://github.com/solo-io/gloo
60 | Copyright © 2020
Gloo Data Plane and Control Plane
EXTERNAL AUTH
RATE LIMITING
GLOO FILTERS
ROUTER
UPSTREAM
EXTERNAL AUTH SERVER
RATE LIMITING SERVER
CACHING
DATA LOSS
PREVENTION
LAMBDA
NATS.IO
TRANSFORMATION
WEB APPLICATION
FIREWALL (WAF)
61 | Copyright © 2020
API Gateway built on Envoy
ENVIRONMENT
SECRET
CONFIGURATION
Data Plane
Upstream
gRPC-JSON transcoder
Rate limiting
External AUTH
…
Control Plane
Configure and manage
envoy’s plugins
Router
62 | Copyright © 2020
Gloo API Gateway
• Unify backend APIs running in Kubernetes, VMs, Physical, FaaS, etc
• Decentralized configuration: allow service teams to move fast
• Declarative configuration
• Provides a control plane for Envoy
• Security (Oauth/ODIC, API Key, TLS, SNI, OPA, HMAC, custom)
• Kubernetes native / run outside Kube as well
• Highly pluggable/extensible
• “If you know Kubernetes, you know Gloo”  user quote
63 | Copyright © 202063 | Copyright © 2020
Lab: Using Loop with Gloo
64 | Copyright © 2020
DOCS: COMING REAL SOON …
GITHUB: COMING REAL SOON …
COMMUNITY: HTTPS://SLACK.SOLO.IO
65 | Copyright © 202065 | Copyright © 2020
Demo: Loop with service mesh
66 | Copyright © 202066 | Copyright © 2020
Proactive debugging
67 | Copyright © 2020 @christianposta
CHAOS ENGINEERING
THINK OF A VACCINE OR A FLU SHOT
INJECT YOURSELF WITH SOMETHING HARMFUL
IN ORDER TO PREVENT A FUTURE ISSUE.
CAREFULLY INJECTING THIS HARM INTO YOUR SYSTEMS
TO TEST THE SYSTEM’S ABILITY TO RESPOND TO IT.
“BREAK THINGS ON PURPOSE" IN ORDER TO LEARN
HOW TO BUILD MORE RESILIENT SYSTEMS.
68 | Copyright © 2020
PROBLEMS WITH CHAOS ENGINEERING TODAY?
LANGUAGE SPECIFIC CODE MODIFICATION
1 2
69 | Copyright © 2020 @christianposta
NETWORK ABSTRACTION
EAST-WEST
TRAFFIC
NORTH-SOUTH
TRAFFIC
SERVICE
I
SERVICE
II
SERVICE
III
SERVICE
IV
SERVICE
V
70 | Copyright © 2020 @christianposta
CONTROL EXPERIMENT
⍄ DEFINE EXPERIMENTS (SET OF: MESSAGE DELAYS, NETWORK FAULTS)
⍄ RUN EVERY INTERVAL (E.G. EVERY FRIDAY AT 9PM)
⍄ GATHERED METRICS – COMPARE BASELINE
⍄ STOP EXPERIMENT IF CONDITION REACHED
71 | Copyright © 2020 @christianposta
GLOOSHOT
GLOOSHOT ALLOWS YOU TO PERFORM CHAOS EXPERIMENTS AT THE SERVICE MESH
LEVEL.
DEFINE ERROR CONDITIONS IN TERMS OF SUCH FAILURE MODES:
⍄ MESSAGE DELAYS
⍄ NETWORK FAULTS.
RUN EXPERIMENTS UNTIL A STOP CONDITION IS MET.
GLOOSHOT INTERFACES WITH ALL MAJOR SERVICE MESHES THROUGH SERVICE MESH
INTERFACE (SMI).
72 | Copyright © 202072 | Copyright © 2020
Demo: Glooshot
73 | Copyright © 2020
DOCS: HTTPS://GLOOSHOT.SOLO.IO
GITHUB: HTTPS://GITHUB.COM/SOLO-IO/GLOOSHOT
COMMUNITY: HTTPS://SLACK.SOLO.IO
74 | Copyright © 202074 | Copyright © 2020
What to watch for
Upcoming improvements for which to keep an eye out
75 | Copyright © 2020
Web Assembly shaking up the data plane
76 | Copyright © 2020
Web Assembly shaking up the data plane
https://github.com/envoyproxy/envoy-wasm
77 | Copyright © 2020
Web Assembly shaking up the data plane
https://webassemblyhub.io
78 | Copyright © 2020 @christianposta
THANK YOU FOR COMING OUT!
@christianposta
christian@solo.io
https://blog.christianposta.com
https://slideshare.net/ceposta
79 | Copyright © 2020
• https://solo.io
• https://slack.solo.io
• https://gloo.solo.io
• https://envoyproxy.io
• https://istio.io
• https://webassemblyhub.io
• https://servicemeshhub.io
• https://blog.christianposta.com

Cloud-Native Application Debugging with Envoy and Service Mesh

  • 1.
    Cloud-native Application Debugging withEnvoy and Service Mesh Christian Posta Field CTO – Solo.io
  • 2.
    2 | Copyright© 2020 CHRISTIAN POSTA Global Field CTO, Solo.io @christianposta christian@solo.io https://blog.christianposta.com https://slideshare.net/ceposta
  • 3.
    3 | Copyright© 2020 01 02 03 04 05 06 Challenges of microservices, debugging Introduction to our lab environment Distributed tracing with a service mesh Debugging microservices Debugging in production with record and replay Proactive debugging with chaos experimentation Approximate flow of workshop
  • 4.
    4 | Copyright© 2020 Moving to microservices?
  • 5.
    5 | Copyright© 2020 Microservices and Kubernetes
  • 6.
    6 | Copyright© 2020 Move fast, safely https://puppet.com/resources/whitepaper/state-of-devops-report
  • 7.
    7 | Copyright© 2020 SERVICE MESH JOURNEY INNOVATION MODERNIZE TO MICROSERVICES SERVICE MESH MANAGEMENT ANY MESH - ANYWHERE ADAPTIVE SERVICE MESH
  • 8.
    8 | Copyright© 2020 December 11, 2018 2018 TOP WOMEN ENTREPRENEURS IN CLOUD INNOVATION Seventh Annual Award Honors Women Founders for Outstanding Accomplishments in Cloud and Emerging Technologies, Sponsored by Facebook, Intel, and Google. Award Winning Innovation Key Industry Collaborations
  • 9.
    9 | Copyright© 20209 | Copyright © 2020 The problem
  • 10.
    10 | Copyright© 2020 As we move to services architectures, on cloud-native deployment platforms, we increase the complexity between our services.
  • 11.
    11 | Copyright© 2020 Cloud application networking challenges • Service discovery • Retries • Timeouts • Load balancing • Rate limiting • Thread bulk heading • Circuit breaking
  • 12.
    12 | Copyright© 2020 Cloud application networking challenges • Edge/DMZ routing • Surgical / fine / per-request routing • A/B rollout • Traffic shaping • Request racing • Internal releases / dark launches • Request shadowing • Fault injection
  • 13.
    13 | Copyright© 2020 Cloud application networking challenges • Adaptive, zone-aware routing • Deadlines • Health checking • Stats, metric, collection • Logging • Distributed tracing • Security
  • 14.
    14 | Copyright© 2020 How do we begin to understand what’s happening so we can debug?
  • 15.
    15 | Copyright© 2020 How we typically like to solve this problem:
  • 16.
    16 | Copyright© 202016 | Copyright © 2020 Decentralized, language-independent observability in the network Foundational technology to help solve these challenges in a cloud-native application architecture
  • 17.
    17 | Copyright© 2020 Envoy is to Application Networking what Kubernetes is to Container Deployment http://envoyproxy.io
  • 18.
    18 | Copyright© 2020 Envoy implements: • zone aware, least request load balancing • circuit breaking • outlier detection • retries, retry policies • timeout (including budgets) • traffic shadowing • request racing • rate limiting • access logging, statistics collection • Many other features!
  • 19.
    19 | Copyright© 2020 Envoy to do application networking heavy lifting
  • 20.
    20 | Copyright© 2020 Why Envoy? • C++ • Built ground-up for services environment • Large, diverse, vibrant community • Dynamic configuration model • Highly extensible (in C++  we’ll come back to this) • Many out of the box L7 filters (HTTP, HTTP2, grpc, redis, mysql, DynamoDB, thrift, zookeeper, kafka, et. al.) • Incredible trove of telemetry, tracing out of the box • Very versatile deployment options (as we’ll see)
  • 21.
    21 | Copyright© 2020 Versatility of Envoy: Edge proxy
  • 22.
    22 | Copyright© 2020 Versatility of Envoy: Middle proxy
  • 23.
    23 | Copyright© 2020 Versatility of Envoy: Service proxy
  • 24.
    24 | Copyright© 2020 Control plane for managing mesh of service proxies
  • 25.
    25 | Copyright© 2020 Service proxy lives with application instance
  • 26.
    26 | Copyright© 2020 Service mesh technologies provide the following: • Service discovery / Load balancing • Secure service-to-service communication • Traffic control / shaping / shifting • Policy / Intention based access control • Traffic metric collection • Service resilience • API / programmable interface
  • 27.
    27 | Copyright© 2020 These application-networking technologies provide a nice API for programming our network
  • 28.
    28 | Copyright© 202028 | Copyright © 2020 Setting up the lab environment
  • 29.
    29 | Copyright© 2020 http://bit.ly/debug-microservices
  • 30.
    30 | Copyright© 2020 http://bit.ly/debug-microservices
  • 31.
    31 | Copyright© 2020 http://bit.ly/debug-microservices
  • 32.
    32 | Copyright© 2020 Consul Service Mesh
  • 33.
    33 | Copyright© 2020 Consul Service Mesh connect = { proxy = { config = { upstreams = [ { destination_name = "mysql", local_bind_port = 8001 } ] } } }
  • 34.
    34 | Copyright© 2020 Consul Service Mesh
  • 35.
    35 | Copyright© 202035 | Copyright © 2020 Tracing with a service mesh
  • 36.
    36 | Copyright© 2020 @christianposta DB S3 DEBUGGING IN PRODUCTION CLUSTER POD 1 POD 2 POD 3 POD 4
  • 37.
    37 | Copyright© 2020 @christianposta DB S3 P P P P DEBUGGING IN PRODUCTION CLUSTER POD 1 POD 2 POD 3 POD 4
  • 38.
    38 | Copyright© 202038 | Copyright © 2020 Lab: Distributed Tracing
  • 39.
    39 | Copyright© 202039 | Copyright © 2020 Debugging
  • 40.
    40 | Copyright© 2020 THE PROBLEM
  • 41.
    41 | Copyright© 2020 THE PROBLEM A MONOLITHIC APPLICATION CONSISTS OF A SINGLE PROCESS AN ATTACHED DEBUGGER ALLOWS VIEWING THE COMPLETE STATE OF THE APPLICATION DURING RUNTIME A MICROSERVICES APPLICATION CONSISTS OF POTENTIALLY HUNDREDS OF PROCESSES IS IT POSSIBLE TO GET A COMPLETE VIEW OF THE STATE OF A SUCH APPLICATION?!
  • 42.
    42 | Copyright© 202042 | Copyright © 2020 Demo: multi-language, distributed debugging with Squash
  • 43.
    43 | Copyright© 2020 SQUASH DEFAULT MODE SECURE MODE
  • 44.
    44 | Copyright© 2020 SQUASH DEFAULT MODE Node Namespace: ns-a Namespace: squash s-dlvc1
  • 45.
    45 | Copyright© 2020 -> ls -l /proc/self/ns total 0 lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 cgroup -> cgroup:[4026531835] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 ipc -> ipc:[4026531839] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 mnt -> mnt:[4026531840] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 net -> net:[4026532009] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 pid -> pid:[4026531836] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 pid_for_children -> pid:[4026531836] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 user -> user:[4026531837] lrwxrwxrwx 1 idit idit 0 Dec 7 01:14 uts -> uts:[4026531838] -> inod of mnt namespace (unique identifier to the container namespace) via CRI api call ExecSyncRequest Node Namespace: ns-a s-dlv CRI c1 We need to translate the pid of the process (application that run in the container) to the host pid namespace to allow debugger to attach. Namespace: Squash
  • 46.
    46 | Copyright© 2020 SQUASH SECURE MODE Node Namespace: ns-a Namespace: squash s-dlvc1 CRD Intent squash
  • 47.
    47 | Copyright© 2020 DOCS: HTTPS://SQUASH.SOLO.IO GITHUB: HTTPS://GITHUB.COM/SOLO-IO/ SQUASH COMMUNITY: HTTPS://SLACK.SOLO.IO
  • 48.
    48 | Copyright© 202048 | Copyright © 2020 Break: 3:00p – 3:30p When we come back: Debugging microservices lab NOTE: Make sure to charge your devices!
  • 49.
    49 | Copyright© 202049 | Copyright © 2020 Lab: Squash
  • 50.
    50 | Copyright© 202050 | Copyright © 2020 Debugging in production
  • 51.
    51 | Copyright© 2020 @christianposta DB S3 DEBUGGING IN PRODUCTION CLUSTER POD 1 POD 2 > ONLY HEADER WILL BE SENT > SAMPLING POD 3 POD 4
  • 52.
    52 | Copyright© 2020 @christianposta DB S3 P P P P DEBUGGING IN PRODUCTION CLUSTER POD 1 POD 2 POD 3 POD 4 > ONLY HEADER WILL BE SENT > SAMPLING
  • 53.
    53 | Copyright© 2020 @christianposta DB S3 P P P P DEBUGGING IN PRODUCTION CLUSTER
  • 54.
    54 | Copyright© 2020 @christianposta DB S3 P P P P DEBUGGING IN PRODUCTION CLUSTER
  • 55.
    55 | Copyright© 2020 @christianposta DEBUGGING IN PRODUCTION ++
  • 56.
    56 | Copyright© 202056 | Copyright © 2020 Getting traffic into your mesh Workflow-specific APIs for Envoy Proxy
  • 57.
    57 | Copyright© 2020 Versatility of Envoy: Edge proxy
  • 58.
    58 | Copyright© 2020 Envoy needs a control plane.
  • 59.
    59 | Copyright© 2020 API Gateway built on Envoy https://github.com/solo-io/gloo
  • 60.
    60 | Copyright© 2020 Gloo Data Plane and Control Plane EXTERNAL AUTH RATE LIMITING GLOO FILTERS ROUTER UPSTREAM EXTERNAL AUTH SERVER RATE LIMITING SERVER CACHING DATA LOSS PREVENTION LAMBDA NATS.IO TRANSFORMATION WEB APPLICATION FIREWALL (WAF)
  • 61.
    61 | Copyright© 2020 API Gateway built on Envoy ENVIRONMENT SECRET CONFIGURATION Data Plane Upstream gRPC-JSON transcoder Rate limiting External AUTH … Control Plane Configure and manage envoy’s plugins Router
  • 62.
    62 | Copyright© 2020 Gloo API Gateway • Unify backend APIs running in Kubernetes, VMs, Physical, FaaS, etc • Decentralized configuration: allow service teams to move fast • Declarative configuration • Provides a control plane for Envoy • Security (Oauth/ODIC, API Key, TLS, SNI, OPA, HMAC, custom) • Kubernetes native / run outside Kube as well • Highly pluggable/extensible • “If you know Kubernetes, you know Gloo”  user quote
  • 63.
    63 | Copyright© 202063 | Copyright © 2020 Lab: Using Loop with Gloo
  • 64.
    64 | Copyright© 2020 DOCS: COMING REAL SOON … GITHUB: COMING REAL SOON … COMMUNITY: HTTPS://SLACK.SOLO.IO
  • 65.
    65 | Copyright© 202065 | Copyright © 2020 Demo: Loop with service mesh
  • 66.
    66 | Copyright© 202066 | Copyright © 2020 Proactive debugging
  • 67.
    67 | Copyright© 2020 @christianposta CHAOS ENGINEERING THINK OF A VACCINE OR A FLU SHOT INJECT YOURSELF WITH SOMETHING HARMFUL IN ORDER TO PREVENT A FUTURE ISSUE. CAREFULLY INJECTING THIS HARM INTO YOUR SYSTEMS TO TEST THE SYSTEM’S ABILITY TO RESPOND TO IT. “BREAK THINGS ON PURPOSE" IN ORDER TO LEARN HOW TO BUILD MORE RESILIENT SYSTEMS.
  • 68.
    68 | Copyright© 2020 PROBLEMS WITH CHAOS ENGINEERING TODAY? LANGUAGE SPECIFIC CODE MODIFICATION 1 2
  • 69.
    69 | Copyright© 2020 @christianposta NETWORK ABSTRACTION EAST-WEST TRAFFIC NORTH-SOUTH TRAFFIC SERVICE I SERVICE II SERVICE III SERVICE IV SERVICE V
  • 70.
    70 | Copyright© 2020 @christianposta CONTROL EXPERIMENT ⍄ DEFINE EXPERIMENTS (SET OF: MESSAGE DELAYS, NETWORK FAULTS) ⍄ RUN EVERY INTERVAL (E.G. EVERY FRIDAY AT 9PM) ⍄ GATHERED METRICS – COMPARE BASELINE ⍄ STOP EXPERIMENT IF CONDITION REACHED
  • 71.
    71 | Copyright© 2020 @christianposta GLOOSHOT GLOOSHOT ALLOWS YOU TO PERFORM CHAOS EXPERIMENTS AT THE SERVICE MESH LEVEL. DEFINE ERROR CONDITIONS IN TERMS OF SUCH FAILURE MODES: ⍄ MESSAGE DELAYS ⍄ NETWORK FAULTS. RUN EXPERIMENTS UNTIL A STOP CONDITION IS MET. GLOOSHOT INTERFACES WITH ALL MAJOR SERVICE MESHES THROUGH SERVICE MESH INTERFACE (SMI).
  • 72.
    72 | Copyright© 202072 | Copyright © 2020 Demo: Glooshot
  • 73.
    73 | Copyright© 2020 DOCS: HTTPS://GLOOSHOT.SOLO.IO GITHUB: HTTPS://GITHUB.COM/SOLO-IO/GLOOSHOT COMMUNITY: HTTPS://SLACK.SOLO.IO
  • 74.
    74 | Copyright© 202074 | Copyright © 2020 What to watch for Upcoming improvements for which to keep an eye out
  • 75.
    75 | Copyright© 2020 Web Assembly shaking up the data plane
  • 76.
    76 | Copyright© 2020 Web Assembly shaking up the data plane https://github.com/envoyproxy/envoy-wasm
  • 77.
    77 | Copyright© 2020 Web Assembly shaking up the data plane https://webassemblyhub.io
  • 78.
    78 | Copyright© 2020 @christianposta THANK YOU FOR COMING OUT! @christianposta christian@solo.io https://blog.christianposta.com https://slideshare.net/ceposta
  • 79.
    79 | Copyright© 2020 • https://solo.io • https://slack.solo.io • https://gloo.solo.io • https://envoyproxy.io • https://istio.io • https://webassemblyhub.io • https://servicemeshhub.io • https://blog.christianposta.com