見出し画像

Tanzu Service Meshによるクラウド・ネイティブ・マイクロサービスのアプリケーション復元性

クラウド・ネイティブ・マイクロサービスのもたらす課題

マイクロサービスベースのモダンアプリケーションは、マルチクラウド環境下で大規模に運用すると、これまでにはなかった課題をもたらします。

例えば、ほとんどのモダナイゼーションプロジェクトの目的は、ビジネス機能の提供時間を短縮することです。
そしてこの時間短縮には、柔軟性の高いマイクロサービスベースのアーキテクチャが必要となります。
つまり、Day1に開発者が生み出したアーキテクチャの利便性が、Day2においてはサイトリライアビリティエンジニア(SRE)の課題となってしまうのです。

画像6

開発者はビジネス機能が大規模に動作し、一定のパフォーマンス特性を発揮することを期待しています。
しかし、そのための最終的なコストや必要なITリソースを把握していない場合があります。
一方、SREは必要なITリソースを把握していますが、設定されたパフォーマンス目標を満たすためにマイクロサービスをスケールアップする最善の方法を知らないかもしれません。
このような状況は、あっという間にリリースの遅延やチーム間のコミュニケーション不足に発展します。
さらに高度に分散されたアプリケーションの耐障害性の問題を引き起こす可能性があります。

画像1

必要とされているのはサービスレベル指標(SLI)を定義する開発者と、SLI をもとにサービスレベル目標(SLO)を定義するSREの間で取り決められた、より自動化されたアプローチです。
VMware では、このような合意を SLO ポリシーと呼んでいます。

ではSLOをどのようにして設定すればいいのでしょうか。

SLOsでのSLIs

例えばTanzu Service Meshでは、SLOは複数のSLIで構成されています。
開発者はSREチームとコミュニケーションをとり、ベースラインとなるSLIを特定します。
そして様々な本番環境でSLOを構成、常に反復することでアプリケーションの耐障害性を向上させることができます。

マイクロサービスの世界ではアプリケーションは1つまたは複数のアプリケーション・ドメインで構成されます。
これらのドメインは大規模なアプリケーションを分解したり、開発環境、ステージング環境、本番環境、プラットフォームなどの異なる環境を表現したり、オペレーター、アプリケーションオーナー、開発者のさまざまな関心事を分離するために作成されます。

画像7

Tanzu Service Meshのグローバルネームスペース(GNS)を利用してアプリケーションドメインを構築すると、開発者はネームスペースを利用しマイクロサービスを展開します。
そしてアプリケーション運用者やSREは各種SLIを利用して合意された性能目標に基づいてアプリケーションのSLOを定義することができます。

Tanzu Service MeshのGNSは、SLOの合意をシステムに結びつけ、その範囲内のすべてのサービスがSLOを遵守できるようにします。
GNSを介して開発者、プロダクトオーナー、SREが合意したSLOに沿って実行できるシステムは、クラウドネイティブアプリケーションをレイヤー化するための重要なアーキテクチャパターンと考えられます。

画像2

復原性を持つアプリケーションの構築

では実際にTanzu Service Meshを活用し、分散型の復原性のあるアプリケーションを構築する方法をご紹介します。

まず最初に、Tanzu Service MeshでGNSを作成します。
GNSは1つ以上のKubernetesクラスターにまたがって作成することができ、オンプレミスや複数のクラウドに展開することができます。

画像3

次にSLOを定義することで、アプリケーションの健全性を監視します。
CPU、メモリー、レイテンシーなどの閾値をSLIとして設定し、それを使ってSLOを定義します。

画像4

アプリケーションへの需要が高まると、使用量の増加に対応できるようにする必要があります。
この点を考慮しながらオートスケーリング・ポリシーを設定します。

画像5

SLOを設定することで、アプリケーションのオートスケール動作に影響を与えることができます。

Tanzu Service Meshは、各マイクロサービスのSLIを監視し、それに基づいてアプリケーションを自動的にスケーリングします。
ニーズに応じて、オートスケーリングポリシーを効率ベース(需要が低下したらスケールダウンする)に設定したり、パフォーマンスモード(絶対にスケールダウンしない)にしたりすることもできます。

またアプリケーションをより多くのクラスターやネームスペースに展開し、キャパシティを増やしたり、ディザスタリカバリに利用したりすることもできます。
Tanzu Service MeshのGNSのポリシーはインフラのスケールアウトやネームスペースの追加に応じて、これらのサービスに自動的に適用されます。本ビデオでは、これらの新機能をご紹介します。

原文

この記事が気に入ったらサポートをしてみませんか?