NoOps Meetup Tokyo #7: 入門サービスメッシュ

44e6e0e9bcc3d8279020aad563f16f34?s=47 taiki45
July 29, 2019

NoOps Meetup Tokyo #7: 入門サービスメッシュ

44e6e0e9bcc3d8279020aad563f16f34?s=128

taiki45

July 29, 2019
Tweet

Transcript

  1. Taiki Ono NoOps Meetup Tokyo #7 入門サービスメッシュ

  2. None
  3. Agenda • 業界がサービスメッシュに至るまでの変遷 • サービスメッシュの技術的要素を一部解説 3

  4. 歴史 • 2011年8月 Finagle public release • 2013年10月 SmartStack public

    release • 2014年11月 Prana public release • 2016年2月 Linkerd public release ◦ 2017年4月 Linkerd v1.0 public release ◦ 2018年9月 Linkerd v2 pubic release • 2016年9月 Envoy public release 4
  5. Microservices 界の当時の状況 • Service discovery, routing, load balancing • Observability

    outputs (stats, tracing, logging) • Implementations of retry, circuit breaking, rate limiting, timeouts, and other distributed systems best practices. • Protocols (HTTP/1, HTTP/2, gRPC, databases, caching, etc.). • Authentication and Authorization 5
  6. Upstreams Architecture of SmartStack proxy app Upstreams Nerve Synapse DB

    Upstreams
  7. https://medium.com/netflix-techblog/prana-a-sidecar-for-your-netflix-paas-based-applications-and-services-258a5790a015

  8. Concept of Service Mesh proxy app Control plane Upstreams proxy

    Upstreams proxy
  9. 要素技術

  10. xDS API for data-plane configuration proxy app Control plane Upstreams

    proxy Upstreams proxy xDS API xDS API
  11. Envoy config management via xDS APIs • Envoy is a

    universal data plane • xDS == * Discovery Service (various configuration APIs). E.g.,: ◦ LDS == Listener Discovery Service, CDS == Cluster Discovery Service • Both gRPC streaming and JSON/YAML REST via proto3! • Central management system can control a fleet of Envoys avoiding per-proxy config file hell • Global bootstrap config for every Envoy, rest taken care of by the management server • Envoys + xDS + management system == fleet wide traffic management distributed system 11
  12. List of xDS APIs • Cluster Discovery Service • Route

    Discovery Service • Endpoint Discovery Service • Listener Discovery Service • Health Discovery Service • Rate Limit Service • Secret Discovery Service • Metric Service 12
  13. xDS APIs • API definitions (mirror) https://github.com/envoyproxy/data-plane-api • Framework for

    Go https://github.com/envoyproxy/go-control-plane • Framework for Java https://github.com/envoyproxy/java-control-plane • 基本的にデータソース (e.g. k8s API server) からデータを取得、いい感じな データ構造に変換して配信 13
  14. Service Mesh Interface Control plane Tools User area Product area

  15. まとめ Q&A • Microservices の進展とともに分散システムの課題がいっぱい増えてきた • 課題へのアプローチがライブラリモデルから out of process

    モデルへと変 遷してきた • 同時に静的な設定ファイルモデルから動的なマネージメントサーバー方式へ と変化してきた Q&A: @taiki45 でも対応