Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

歴史 ● 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Upstreams Architecture of SmartStack proxy app Upstreams Nerve Synapse DB Upstreams

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

要素技術

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Service Mesh Interface Control plane Tools User area Product area

Slide 15

Slide 15 text

まとめ Q&A ● Microservices の進展とともに分散システムの課題がいっぱい増えてきた ● 課題へのアプローチがライブラリモデルから out of process モデルへと変 遷してきた ● 同時に静的な設定ファイルモデルから動的なマネージメントサーバー方式へ と変化してきた Q&A: @taiki45 でも対応