Google Cloud Platform

Cloud OnAir 番組レポート : Google Cloud で実践するマイクロサービスアーキテクチャ

Cloud OnAir は、Google Cloud の製品をわかりやすく解説し、最新の情報などをいち早く皆様にお伝えする Online 番組です。

2 月 21 日の放送は、「マイクロサービスアーキテクチャ」がテーマです。Google Kubernetes Engine(GKE)Istio など Google Cloud のサービスを使ってどのように作るのか、実践的な方法をご紹介します。

マイクロサービスとは

アプリケーションの多くは、フロントエンド、バックエンド、データベースの 3 層アーキテクチャに基づいて構成されています。この 3 層それぞれをどのように実装するかはさまざまな方法があり、中にはフロントエンドとバックエンドを単一のプロセスとして実装する(モノリシックなアプリケーション)場合もあります。

モノリシックなアプリケーションは、実現したい機能が単純であれば実装が早くできる、スケールすることも容易というメリットがあります。一方、機能の追加が続くと運用作業の負担が増加し、コードベースが複雑になることでビルドからテストの時間もかかります。変更が容易ではなくなり、ビジネスの成長にあわせたタイムリーな拡張が難しくなるというデメリットもあります。

そこで考案されたものがマイクロサービスです。マイクロサービスは、Thoughtworks 社の James Lewis 氏と Martin Fowler 氏が 2014 年に提唱したものです。機能毎に独立したアプリケーション (サービス)に分割します。各サービスは単一の目的をもつものであり、分散システム、サービス間は疎結合、 軽量な API などでやり取りが行われます。

マイクロサービス化は次のようなメリットをもたらします。

  • 機能追加が容易に
  • 可用性・耐障害性向上
  • スケールアウトが容易に
  • 新技術の導入がしやすい
  • DevOps / Agile との親和性

新機能をタイムリーに高速にリリースすることが可能となり、ビジネスの成長に合わせてシステムを柔軟にスケールさせることができます。

マイクロサービスを支えるインフラストラクチャ

しかしながら、マイクロサービス化には新たな課題も存在します。番組では、特に技術的な側面から、課題を整理します。具体的な課題は以下の通りです。
  1. サービスディスカバリー
  2. オートスケーリング
  3. トラフィックコントロール
  4. Fault Isolation(障害の分離)
  5. Observability (可観測性)
  6. サービス間の認証・認可

これらの課題を解決するために、Google Cloud Platform のサービスの中で、Google Kubernetes Engine(GKE)と サービスメッシュを実現する Istio を中心にその特徴を解説します。Node Auto-ProvisioningContainer Native Loadbalancing などの新機能も紹介します。

サービスメッシュとは、マイクロサービス環境において、 サービスディスカバリ、 トラフィックコントロール、 認証・認可、メトリックス収集などの機能を担うソフトウェアです。アプリケーション自体に手を入れるのではなく、 サイドカーと呼ばれるネットワークプロキシを使うことで機能を提供します。

Istio は、Google や IBM が中心となり開発が進むサービスメッシュを提供するためのオープンソースソフトウェアです。Istio on GKE は、GKE 上の Add-on  として、Istio によるサービスメッシュを簡単に構築することができます。つまり、前述に上げたマイクロサービス化の課題を解決することができることになります。

番組では、Istio の使い方、実際の動きを解説します。さらに、理解を深めるために Istio  によるトラフィックコントロールのデモンストレーションをご覧いただけます。

pastedimage.png

番組で説明した資料はこちらで公開しています。

onair

Cloud OnAir では、各回 Google Cloud のエンジニアがトピックを設け、Google Cloud の最新情報を解説しています。過去の番組、説明資料、さらには視聴者からの質問と回答はこちらよりご覧いただけます。 最新の情報を得るためにもまずはご登録をお願いします。