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

Cloud Service Mesh への期待が止まらない!!

Cloud Service Mesh への期待が止まらない!!

2024.08.30 Jagu'e'r クラウドネイティブ分科会 Meetup#15 の 10 分枠で登壇させていただいた際の資料です。
https://jaguer-cloud-native.connpass.com/event/324998/

Tomonori Hayashi

August 30, 2024
Tweet

More Decks by Tomonori Hayashi

Other Decks in Technology

Transcript

  1. Tomonori Hayashi • NTT コミュニケーションズ イノベーションセンター所属 ◦ ノーコード時系列分析ツール「 Node-AI」の開発/運用 ◦

    ソフトウェアエンジニア ▪ Front:TypeScript - React/Next.js ▪ Infra:Google Cloud • Google Cloud Partner Top Engineer 2024 • Google Cloud All Certifications • Jagu’e’r との関わり ◦ 2022.12 - 人材育成分科会 運営参加 ◦ 2024.01 - O11y-SRE 分科会 運営参加 2 @pHaya72 @t_hayashi
  2. Node-AI の紹介 • ノーコードで AI モデルを作成できる WEB アプリケーション • カードを直感的につなげるだけで

    時系列データの前処理から AI モデルの学習・評価までの パイプラインを作成・実行 できる • 技術スタック ◦ TypeScript + React / Next ◦ Python + Django ◦ C# + ASP.NET Core + SignalR ◦ Kubernetes ◦ Google Cloud ◦ Scikit-learn / Tensorflow / Pytorch 3
  3. Google Cloud Next ‘24 で発表された 8 世界中のどこからでもサービス管理 コントロールプレーン・ データプレーンが Google

    管理 Google Cloud のネットワークやコン ピュートとシームレスに統合可能 ※ 引用:https://assets.swoogo.com/uploads/3777201-661713fbb0003.pdf
  4. Google Cloud Next ‘24 で発表された 9 世界中のどこからでもサービス管理 コントロールプレーン・ データプレーンが Google

    管理 Google Cloud のネットワークやコン ピュートとシームレスに統合可能 エンタープライズレベルの 巨大なデプロイメントにも対応 ※ 引用:https://assets.swoogo.com/uploads/3777201-661713fbb0003.pdf
  5. Google Cloud Next ‘24 で発表された 10 世界中のどこからでもサービス管理 コントロールプレーン・ データプレーンが Google

    管理 Google Cloud のネットワークやコン ピュートとシームレスに統合可能 エンタープライズレベルの 巨大なデプロイメントにも対応 ※ 引用:https://assets.swoogo.com/uploads/3777201-661713fbb0003.pdf サービスメッシュって なんだっけ・・・😇
  6. なぜサービスメッシュなのか? 12 サービスメッシュとは? コントロールプレーン サービスA アプリケーション インスタンス アプリケーション インスタンス サービスB

    データプレーン データプレーン Ingress Traffic Mesh Traffic Egress Traffic マイクロサービスアーキテクチャの 複雑さ(認証/認可・通信暗号化 etc)を管理して、 信頼性・セキュリティ・可観測性を向上させる 処理レイヤ
  7. なぜサービスメッシュなのか? 13 サービスメッシュとは? コントロールプレーン サービスA アプリケーション インスタンス アプリケーション インスタンス サービスB

    データプレーン データプレーン Ingress Traffic Mesh Traffic Egress Traffic マイクロサービスアーキテクチャの 複雑さ(認証/認可・通信暗号化 etc)を管理して、 信頼性・セキュリティ・可観測性を向上させる 処理レイヤ 1. スケールと信頼性 サービス間のトラフィック管理や負荷分散などの機能提供により アプリケーションのスケーラビリティと信頼性を向上
  8. なぜサービスメッシュなのか? 14 サービスメッシュとは? コントロールプレーン サービスA アプリケーション インスタンス アプリケーション インスタンス サービスB

    データプレーン データプレーン Ingress Traffic Mesh Traffic Egress Traffic マイクロサービスアーキテクチャの 複雑さ(認証/認可・通信暗号化 etc)を管理して、 信頼性・セキュリティ・可観測性を向上させる 処理レイヤ 1. スケールと信頼性 サービス間のトラフィック管理や負荷分散などの機能提供により アプリケーションのスケーラビリティと信頼性を向上 2. セキュリティとポリシー サービス間の通信を保護やアクセス制御の機能提供により ゼロトラストセキュリティを実現
  9. なぜサービスメッシュなのか? 15 サービスメッシュとは? コントロールプレーン サービスA アプリケーション インスタンス アプリケーション インスタンス サービスB

    データプレーン データプレーン Ingress Traffic Mesh Traffic Egress Traffic マイクロサービスアーキテクチャの 複雑さ(認証/認可・通信暗号化 etc)を管理して、 信頼性・セキュリティ・可観測性を向上させる 処理レイヤ 1. スケールと信頼性 サービス間のトラフィック管理や負荷分散などの機能提供により アプリケーションのスケーラビリティと信頼性を向上 2. セキュリティとポリシー サービス間の通信を保護やアクセス制御の機能提供により ゼロトラストセキュリティを実現 3. サービス管理 サービス間の通信に関するテレメトリデータを提供により アプリケーションのパフォーマンスや依存関係を監視
  10. Google Cloud のサービスメッシュ 16 Anthos Service Mesh ・Istio ベースのフルマネージドサービス ・ハイブリッド

    & マルチクラウドに対応 ・プラットフォーム管理者やサービス運用者などのサービスメッ シュに理解が深いユーザーがターゲット Traffic Director ・フルマネージドサービス ・Google Cloud のみ対応 ・ネットワーク管理者など Google Cloud 内に簡単にサービス メッシュを導入したいユーザーがターゲット Anthos Service Mesh コントロールプレーン App A Pod Pod App B Envoy Proxy Envoy Proxy Traffic Director App A インスタンス インスタンス App B (プロキシレス) Envoy Proxy サイドカー コンテナ
  11. Google Cloud のサービスメッシュ 17 Anthos Service Mesh ・Istio ベースのフルマネージドサービス ・ハイブリッド

    & マルチクラウドに対応 ・プラットフォーム管理者やサービス運用者などの サービスメッシュに理解が深いユーザーがターゲット Traffic Director ・フルマネージドサービス ・Google Cloud のみ対応 ・ネットワーク管理者など Google Cloud 内に簡単にサービス メッシュを導入したいユーザーがターゲット Cloud Service Mesh A globally scalable, fully managed, Google platform integrated service mesh for all enterprise 世界中のどこからでもサービス管理 コントロールプレーン・ データプレーンが Google 管理 Google Cloud のネットワークやコン ピュートとシームレスに統合可能 エンタープライズレベルの 巨大なデプロイメントにも対応
  12. Cloud Service Mesh への期待① 18 Ambient Mode の提供 ・Istio のデータプレーン実装の新しいアプローチ

    ・アプリケーションコードを変更することなく導入可能 ・Sidecar Mode と比較してリソース消費の削減や パフォーマンス向上を期待できる コントロールプレーン App A Node Node Proxy App B App A Proxy App B 1. 共有プロキシ 各ノードで軽量なプロキシが共有リソースとして動作 プロキシは L4(TCP/IP) トラフィック管理を担当、透過的に機能 2. オプションの L7 プロキシ L7(HTTP/gRPC) の高度な機能が必要であれば専用のプロキシを追加可能 全てのワークロードに配置しなくてよい
  13. Cloud Service Mesh への期待② 19 Ambient Mode の提供 ・Istio のデータプレーン実装の新しいアプローチ

    ・アプリケーションコードを変更することなく導入可能 ・Sidecar Mode と比較してリソース消費の削減や パフォーマンス向上を期待できる コントロールプレーン App A Node Node Proxy App B App A Proxy App B Cloud Run でのサービスメッシュ構築 ・Google Cloud Next ‘24 の Cloud Run のセッションで  アナウンスがあった ・Cloud Service Mesh によって Cloud Run でサービス   メッシュ構築が可能に
  14. Cloud Service Mesh × Cloud Run 21 旧 Traffic Director

    による連携っぽい動きしそう Cloud Run との連携は、 旧 Traffic Director の Envoy プロキシベースのサービスメッシュと HTTP サービスによるセットアップに準拠し ているっぽい ※ 引用:https://cloud.google.com/service-mesh/docs/service-routing/set-up-envoy-http-mesh Cloud Service Mesh とのやりとりするための クライアントサービスがいるっぽい Mesh リソースと HTTP Route リソース の設定情報を流していそう
  15. Cloud Service Mesh × Cloud Run 22 チュートリアル的なのを触ってみた Cloud Run

    サービス以外にも Network Endpoint Group, Backend Service, HTTP Route, Mesh などいくつかのサービスデプロイが必 要だった Cloud Run Service (Backend) Backend Service Network Endpoint Group (Severless) HTTP Route Cloud DNS Cloud Service Mesh Cloud Run Service (Client) curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" "$CLIENT_SERVICE_URL/fortio/fetch/BACKEND_SERVICE_NAME.DOMAIN_NAME"
  16. Cloud Service Mesh × Cloud Run 23 サービスメッシュの大枠となるような Mesh リソースの作成

    簡単な YAML ファイルを作成して、そのファイルを読み込ませて Mesh リソースを作成する Cloud Run Service (Backend) Backend Service Network Endpoint Group (Severless) HTTP Route Cloud Run Service (Client) curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" "$CLIENT_SERVICE_URL/fortio/fetch/BACKEND_SERVICE_NAME.DOMAIN_NAME" Mesh リソースの作成 mesh.yaml Name: MESH_NAME gcloud network-services meshes import MESH_NAME \ --source=mesh.yaml \ --location=global Cloud DNS Cloud Service Mesh
  17. Cloud Service Mesh × Cloud Run 24 Route リソースに Mesh

    リソースを参照させる 今回はバックエンドが HTTP サービスなので、 Route リソースの中でも HTTP Route リソースを作成して、 Mesh リソース紐付けさせる Cloud Run Service (Backend) Backend Service Network Endpoint Group (Severless) HTTP Route Cloud DNS Cloud Service Mesh Cloud Run Service (Client) curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" "$CLIENT_SERVICE_URL/fortio/fetch/BACKEND_SERVICE_NAME.DOMAIN_NAME" Route リソースで Mesh リソースとの紐付け http_route.yaml name: "DESTINATION_SERVICE_NAME-route" hostnames: - "DESTINATION_SERVICE_NAME.DOMAIN_NAME" meshes: - "projects/PROJECT_NAME/locations/global/meshes/MESH_NAME" rules: - action: destinations: - serviceName: "projects/../locations/…/backendServices/DESTINATION_SERVICE_NAME-REGION" gcloud network-services http-routes import helloworld-http-route \ --source=http_route.yaml \ --location=global
  18. Cloud Service Mesh のコンソール画面 25 • コンソールの Cloud Service Mesh(Traffic

    Director) の項目から見えるのは Backend Service を中心とした 情報 • Mesh リソースに紐づいている Route リソースには複 数の Backend Service リソースを紐付けられる → 複数の Cloud Run サービスでサービスメッシュを 構築できる(ぽい) Backend Service リソース名 Network Endpoint Group リソース名 Route リソース名 Mesh リソース名
  19. チュートリアルで確認できたメリット 27 サービスメッシュに参加していれば全て認証ありにできそう? Client 経由のリクエストは認証ありの Backend-a, Backend-b にそれぞれ通る しかし、Backend-a から

    Backend-b に対するリクエストは弾かれた Cloud Run Service (Backend-a) Backend Service Network Endpoint Group (Severless) HTTP Route Cloud DNS Cloud Service Mesh Cloud Run Service (Client) 認証あり Backend Service Cloud Run Service (Backend-b) Network Endpoint Group (Severless) 認証あり まだまだ理解が足りない!!
  20. まとめ Cloud Service Mesh を活用してコード変更なくサービスメッシュを構築できる • 期待ポイント ◦ GKE でサービスメッシュを構築する際の

    Ambient Mode の提供 ◦ Cloud Run でサービスメッシュを構築できる Cloud Run でサービスメッシュをサポート!( Preview) • 実際にやってみると旧 Traffic Director によるサービスメッシュ構築を踏襲 • コード変更なく認証ありで通信できる まだまだ理解足りていないので後日ブログを書こうと思います!!
  21. CREDITS: This presentation template was created by Slidesgo, and includes

    icons by Flaticon, and infographics & images by Freepik Thanks! 30 @pHaya72 @t_hayashi