Slide 1

Slide 1 text

Taiki Ono builderscon Tokyo 2019 入門サービスメッシュ

Slide 2

Slide 2 text

Agenda ● 業界がサービスメッシュに至るまでの変遷 ○ Microservices での課題 ○ ライブラリアプローチの限界 ○ サービスメッシュの登場 ● サービスメッシュのプロダクション事例の紹介 ○ Extending SmartStack ○ Hybrid workloads with containers and VMs ○ Incremental adaptation to Istio ● サービスメッシュ選球眼 2

Slide 3

Slide 3 text

Service Mesh Before Container

Slide 4

Slide 4 text

Service Mesh Before Container

Slide 5

Slide 5 text

Service Mesh Before

Slide 6

Slide 6 text

Microservices 界での当時の状況 ● 開発のスケーラビリティ向上のために分散化し複雑になるシステム構成 ○ 多数の小さいチームでそれぞれが小さいアプリケーションを開発 -> マイクロサービス ○ クラウド技術を使うことでより動的なデプロイ構成を可能にする -> クラウドネイティブ ● 今までのツールでは対応できない運用課題が増加 ○ 柔軟で性能が良い traffic control, load balancing ○ Observability ○ Failure recovery, fault isolation ○ サービス認証/access control, End-to-End でセキュアな通信 ● Finagle に代表されるライブラリアプローチの興隆 ○ 実装の一貫性の問題 ○ アップグレードが高コスト・要コミュニケーション 6

Slide 7

Slide 7 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 ● 2017年5月 Istio public release 7

Slide 8

Slide 8 text

Upstreams Architecture of SmartStack proxy app Upstreams Nerve Synapse DB Upstreams routing

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Concept of Service Mesh proxy app Control plane Upstreams proxy Upstreams proxy Service Entries TSDB routing, failure recv, en-decryption etc.

Slide 11

Slide 11 text

世のサービスメッシュ実装 ● Proxy=Envoy ○ Control plane 自作勢 ○ Istio ○ マネージドサービス: Traffic Director, App Mesh, etc. ○ Consul ● Linkerd v2 ● Nginx based ● ...

Slide 12

Slide 12 text

Use cases 1: Extending SmartStack

Slide 13

Slide 13 text

EnvoyCon 2018 / How to DDOS yourself with Envoy: https://sched.co/HDbQ

Slide 14

Slide 14 text

EnvoyCon 2018 / How to DDOS yourself with Envoy: https://sched.co/HDbQ

Slide 15

Slide 15 text

EnvoyCon 2018 / How to DDOS yourself with Envoy: https://sched.co/HDbQ

Slide 16

Slide 16 text

Use cases 2: Containers/VMs hybrid workload

Slide 17

Slide 17 text

EnvoyCon 2018 / Building + Operating Service Mesh: https://sched.co/HDdu

Slide 18

Slide 18 text

Hybrid workload with VMs ● VM ベースの構成からコンテナベースの構成へマイグレーションする時とか にも利用できる ○ あるいは on-prems から public cloud へのマイグレーション ○ Legacy は少しづつ地道に modern にしていくしかない ● 既存のサービスメッシュ実装のみではまだ難しい分野 ○ 要素技術を組み合わせていく必要がある ○ エンタープライズ向けに製品を開発している会社もでてきている 18

Slide 19

Slide 19 text

Use cases 3: Incremental adaptation to Istio

Slide 20

Slide 20 text

Google Cloud Next ’19 in Tokyo / D2-4-S07: https://cloud.withgoogle.com/next/tokyo/sessions?session=D2-4-S07

Slide 21

Slide 21 text

https://medium.com/@vbanthia/adopting-istio-for-a-multi-tenant-kubernetes-cluster-in-producti on-df1a8260ca24

Slide 22

Slide 22 text

サービスメッシュ選球眼 ● 自分たちの規模を見据える ○ 大規模になるなら開発・運用の分散化が重要になってくる ○ 高度に分散化した環境では通信層での”仕事”は必須に近い ● 自分たちの環境を分析してソフトウェアを選ぶ ○ Brown field か green field か ● いつかは念じたらビジネスロジックが動く時代が来るかもしれない ○ 念じたらどこかのコンピューター群で自分たちのビジネスロジックが動き、相互にやりとり する、そんなランタイムもサービスメッシュも統合されたようなプラットフォームができそ う -> Serverless ○ それまでの繋ぎ、過渡期かもしれない

Slide 23

Slide 23 text

まとめ Q&A ● サービスメッシュは Microservices での課題を解決する ○ そもそも解決したい問題がかなり advanced ○ 自分たちの問題に合わせて少しずつ利用する ○ いつかフルマネージドになるのでそれまで待つのも手 ● サービスメッシュはいろんな環境で多様に利用できる ○ “Service Mesh is not for Kubernetes only” ○ ただし VM/コンテナ の共用構成やマルチクラウド・ハイブリッドクラウドな構成では*まだ* 既存の製品は使えないことがほとんどなのと事例も少ないのでがんばりが必要 Q&A: @taiki45 でも対応

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Service Mesh Before Container