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

サービスメッシュを完全に理解する / Perfect Service Mesh

サービスメッシュを完全に理解する / Perfect Service Mesh

Kohei Ota

April 24, 2020
Tweet

More Decks by Kohei Ota

Other Decks in Programming

Transcript

  1. 自己紹介  Name: Kohei Ota (@inductor)  Company: HPE 

    Role: Cloud Native and DevOps Solutions Architect  Interests  Docker  Kubernetes  Scalable Infra with good developer experience
  2. APP DB カート テーブル 商品 テーブル ユーザー テーブル 決済 テーブル

    テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル サービスが大きくなると
  3. APP DB カート テーブル 商品 テーブル ユーザー テーブル 決済 テーブル

    データの関係がどんどん 複雑になる テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル テーブル
  4. ユーザー DB カート DB 商品 DB 決済 DB API GW

    Service DB Service DB Service DB 登場人物が増えても コンポーネントは シンプルに保てる
  5. ユーザー DB カート DB 商品 DB 決済 DB API GW

    Service DB Service DB Service DB ユーザー DB カート DB 商品 DB 決済 DB Service DB Service DB Service DB ユーザー DB カート DB 商品 DB 決済 DB Service DB Service DB Service DB ユーザー DB カート DB 商品 DB 決済 DB Service DB Service DB Service DB 変なリクエストの監視 gRPCクライアントの実装 サービス間の連携・暗号化 リリース管理 サービスが増えるごと に毎回やってると死ぬ
  6. マイクロサービス によくある構成  Microserviceアーキテクチャを使って 複数のアプリケーションを作成する場合 アプリケーション開発側には次のような 自由度と制約が与えらえる  開発言語は問わない 

    Dockerなどのパッケージングを用 いてアプリケーションの動作を担保  他サービスの情報を参照するときは組み 込み関数やDBのJOIN句は原則使わず、 RESTやgRPCなどを用いたサービス間通 信を使用する  サービスの正常性、異常性を定義し、必 要であればサーキットブレイクやリトラ イ処理などを行う
  7. ユーザー DB カート DB 商品 DB 決済 DB サービス プロキシ

    サービス プロキシ サービス プロキシ サービス プロキシ コントロール プレーン 作成、削除、設定の管理 具体的には? ・gRPCなどのプロキシ ・リトライ処理 ・サービスが正常でなくなったとき の挙動などを制御 ・デプロイ戦略 サービス全体 の監視
  8. まとめ  IaC(Infra as Code/Config)はインフラの構成管理に再現性を持たせるための仕組み  複数のサービスでデザインテンプレートを使いまわしたり、構成管理の安全性、持続性 提供速度を高めることができる  構成管理を突き詰めていくと、アプリケーション・インフラともにサービス全体の複雑性

    を容認せざるを得なくなることがある(いわゆるマイクロサービス化における副作用)  マイクロサービスというバズワードで作られ続ける小さなアプリケーションたちを インフラの構成管理を担保しながら守っていく仕組みが必要 サービスメッシュはこれらの複雑性を解決するための1つの手法