Level 5: Microservice化

目的・ゴール: Microserviceを支えるインフラの技術・テクノロジースタックを活用

Level4までで既存のアプリケーションをコンテナ化して本番運用可能かつ迅速にリリースできる仕組みを作りました。 このレベルではアプリケーションをコンポーネント単位に分割していった際に必要となるインフラの仕組みを適用します。

また、Microserviceを実現するServiceMesh、”Istio”を体験します。

流れ

  1. Microservice化していくにあたって発生する課題
  2. 解決する技術の1つ "Istio"

Microservice化していくにあたって発生する課題

マイクロサービス化が進むと1つのシステムを複数の細かいコンポーネントにわけ、独立したサービスとして迅速にデプロイできるようになり、

その反面、モノリスなアプリケーションでは問題とならなかったサービス間の接続、モニタリング、通信の制御、エンドツーエンドの認証などが課題として顕在化してきます。

マイクロサービスを実現するためには上記の課題を解決する必要があります。

解決する技術の1つ "Istio"

ここでは上記の課題を解決するための"Istio"について紹介します。

モノリスなアプリケーションから分散型・コンポーネントに分割されたアプリケーションへコンポーネント分割際に発生する課題に対して有効です。

最初はモノリスなアプリケーションをそのままコンテナ化し徐々にコンポーネントに分けていく、そしてサービス間通信をうまくやるためのServiceMeshとして開発されました。

ポイントはアプリケーションに影響なくIstioを導入できることです。

ここでは簡単にIstioを体験してみます。

Istio を体験してみる

マイクロサービスの参考アーキテクチャ

Microserviceのアプリケーションを様々なテクノロジー、言語を使って実現しているサンプルがあります。 このサンプルでは様々なスタックで必要とされるテクノロジーが網羅されているため参考になります。

コンピューティングの最適化

サーバレスアーキテクチャというキーワードが注目されています。

AWSであればLambda, AzureであればDurableFunction, GCPであれば Cloud Functions といった各クラウドプロバイダーがそれぞれサービスを提供しています。

もちろんKubernetes上でも同様のサーバレスアーキテクチャを実現するものがあります。

Knative というものが存在しており、Helm、Istioで構成されておりセットアップは最小でできるようになっています。

さらなる進化

マルチクラウド、ハイブリッドクラウドは一部実践編で体験することができます。

マルチクラウド化にはIstioのCrossClusterMesh等を使った方法でも実現が可能です。

全般的にネットワークの設計をどうするかという課題が残ります。

  • マルチクラウド化
  • ハイブリッドクラウド化