Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Service Mesh

The Service Mesh

You’re using Docker. You’re on Kubernetes. You’re building microservices. And now you’re fully ready to scale to arbitrary workloads and gracefully handle partial failures. Or are you? In this talk, former Twitter engineer Oliver Gould describes a critical component of every cloud native application: the “service mesh” that defines how services communicate with each other, shed load, and propagate failure. He traces the lineage of the service mesh from client-specific implementations, to libraries like Finagle, Hysterix, and Stubby, to modern proxy-based incarnations like Linkerd. If you’re writing cloud native applications today, the service mesh is a critical part of ensuring that they can be fast, scalable, and reliable.

625beff353c7c2b068b26d1a57566e05?s=128

Oliver Gould

May 24, 2017
Tweet

Transcript

  1. The Service Mesh Oliver Gould @olix0r, CTO, Buoyant

  2. None
  3. resilience The property of a material that enables it to

    resume its original shape after being bent, stretched, or compressed.
  4. operational stress variable load
 hardware failure
 bugs
 the unexpected
 resilient

    strategies dynamic orchestration
 load balancing
 timeouts & retries
 circuit breaking

  5. 2000 dedicated hardware with
 configuration management dynamically scheduled
 hybrid cloud

    2017
  6. containers orchestrators microservices

  7. service
 A service
 B service
 C runtime communication

  8. service
 A service
 B service
 C Twitter circa 2013

  9. complexity: timeouts & retries timeout=400ms retries=3 timeout=400ms retries=2 timeout=200ms retries=3

    timelines users web db 800ms! 600ms!
  10. cloud native abstractions Virtual machines Data centers Hardware redundancy Servers

    IP addresses, DNS Server monitoring Monolithic applications TCP/IP Containers Orchestrated envs Design for failure Services Service discovery Service monitoring Microservices gRPC, REST
  11. service
 A service
 B service
 C we need something more

    ?
  12. the service mesh an infrastructure layer for managing service to

    service communication
  13. Apache Apache Apache PHP PHP PHP PHP PHP Mysql Mysql

    Mysql LAMP
  14. Nginx Nginx Nginx DB DB DB Fat clients svc svc

    svc svc svc svc svc svc svc svc svc libraries
  15. Nginx Nginx Nginx DB DB DB The service mesh svc

    svc svc svc svc svc svc svc svc svc svc service mesh service mesh
  16. The Linkerd service mesh Service C Service B Service A

    linkerd Service C Service B Service A linkerd Service C Service B Service A linkerd application HTTP proxied HTTP monitoring & control Node 1 Node 2 Node 3 Service C Service B Service A linkerd application HTTP proxied HTTP monitoring & control Node 1
  17. visibility security flexibility reliability

  18. If you’re building a cloud native application,
 you need a

    service mesh. CENSORED
  19. linkerd.io

  20. The service mesh at GlueCon Small, Fast, Memory Safe Network

    Proxies: Rust Meets the Linkerd Service Mesh
 - Carl Lerche (Buoyant), Breakout #3 at 11 today
 
 Linkerd booth Istio: A Holistic Approach to Managing Service-Mesh Traffic on Kubernetes 
 - Louis Ryan (Google) & Shiriram Rajagopalan (IBM)