Slide 1

Slide 1 text

Navigating the service mesh ecosystem George Miranda @gmiranda23 Ghent Kubernetes Meetup CfgMgmtCamp 2018

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

What we’ll focus on — Beyond the hype — What is the problem? — How/why was the service mesh born? — What you should be asking — Product philosophies

Slide 6

Slide 6 text

George Miranda Director of Community @BuoyantIO @gmiranda23 Previously: Chef Software, Inc (2012-2017)

Slide 7

Slide 7 text

Microservices can be abstracted as highly distributed application architecture @gmiranda23

Slide 8

Slide 8 text

data web web web worker worker worker data data data worker @gmiranda23

Slide 9

Slide 9 text

@gmiranda23

Slide 10

Slide 10 text

The problem @gmiranda23

Slide 11

Slide 11 text

@gmiranda23

Slide 12

Slide 12 text

@gmiranda23

Slide 13

Slide 13 text

@gmiranda23

Slide 14

Slide 14 text

@gmiranda23

Slide 15

Slide 15 text

The (old) solution @gmiranda23

Slide 16

Slide 16 text

Circuit breakers Timeouts Your code looks like this now Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery @gmiranda23

Slide 17

Slide 17 text

Timeouts Your infrastructure looks like this now Timeouts Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side Circuit Biz Logic Telemetry RPC code Distributed Client-side

Slide 18

Slide 18 text

A better solution @gmiranda23

Slide 19

Slide 19 text

@gmiranda23

Slide 20

Slide 20 text

The service mesh @gmiranda23

Slide 21

Slide 21 text

@gmiranda23 Control Plane Data Plane

Slide 22

Slide 22 text

Navigating the ecosystem @gmiranda23

Slide 23

Slide 23 text

Remember: I work for Buoyant — Opinions are my own! @gmiranda23

Slide 24

Slide 24 text

Remember: I work for Buoyant — Opinions are my own! — Be skeptical of my advice @gmiranda23

Slide 25

Slide 25 text

Remember: I work for Buoyant — Opinions are my own! — Be skeptical of my advice — Still, I’m watching out for you @gmiranda23

Slide 26

Slide 26 text

What you should be asking yourself @gmiranda23

Slide 27

Slide 27 text

1) Am I ready for a service mesh? @gmiranda23

Slide 28

Slide 28 text

2) What problems am I having today? @gmiranda23

Slide 29

Slide 29 text

3) What level of observability do your services have today? @gmiranda23

Slide 30

Slide 30 text

4) What functions of a service mesh have you already built? How will they interact if you introduce a service mesh? @gmiranda23

Slide 31

Slide 31 text

5) What platform(s) do you need to support? @gmiranda23

Slide 32

Slide 32 text

6) What does division of team responsibilities look like today? How will that work when managing the service mesh? @gmiranda23

Slide 33

Slide 33 text

7) Centralized or decentralized functionality? @gmiranda23

Slide 34

Slide 34 text

8) Support expectations? @gmiranda23

Slide 35

Slide 35 text

Product philosophies @gmiranda23

Slide 36

Slide 36 text

Remember: I work for Buoyant — Opinions are my own! — Be skeptical of my advice — Still, I’m watching out for you — Covered in chronological order (not an exhaustive list) @gmiranda23

Slide 37

Slide 37 text

@gmiranda23

Slide 38

Slide 38 text

@gmiranda23 Linkerd — Productized version of Finagle library — Many available components & integrations — Data plane (linkerd) & control plane (namerd) — Multi-platform & feature rich — Production ready, battle tested — Built on Scala & JVM — CNCF hosted project — Commercial services & support

Slide 39

Slide 39 text

@gmiranda23

Slide 40

Slide 40 text

@gmiranda23 Envoy — Developed for use by Lyft — “Universal data plane” — Can be used on its own (distributed config) — Paired with Istio by default (May 2017) — 3rd party control planes available (not required) — C/C++ — CNCF hosted project

Slide 41

Slide 41 text

@gmiranda23

Slide 42

Slide 42 text

@gmiranda23 Istio — Joint partnership: Google, IBM, Redhat — Highly configurable control plane — Uses Envoy by default, but can swap data planes — On the road to production — Some additional platform support — Robust architecture & coverage of use cases — Growing 3rd party vendor ecosystem

Slide 43

Slide 43 text

(Other data plane solutions exist here) @gmiranda23

Slide 44

Slide 44 text

@gmiranda23

Slide 45

Slide 45 text

@gmiranda23 Conduit — Launched Dec 2017 — Minimum viable service mesh — Ultralight, zero config, performant, simple — Data plane (Rust), Control plane (Go) — Specific to Kubernetes — Built on lessons from Linkerd in production — Intent to join CNCF

Slide 46

Slide 46 text

Where should I start? @gmiranda23

Slide 47

Slide 47 text

1) Readiness 2) Problems today 3) Current observability 4) Current functionality 5) Platform support 6) Team responsibilities & roles 7) Centralized or decentralized 8) Commercial support needs @gmiranda23

Slide 48

Slide 48 text

@gmiranda23 Try one! Give the projects feedback. Join the community.

Slide 49

Slide 49 text

Thank you! Q & A @gmiranda23