読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールとWeb通知を入手してください。
IBMのAnimesh Singh氏とTommy Li氏は最近のKubeCon + CloudNativeCon North America 2017 Conferenceで、Istioフレームワークを活用したマイクロサービスの回復力と耐障害性について語った。
マイクロサービスアーキテクチャモデルは、高度にスケーラブルで分散したサービスを提供しており、回復力と耐障害性を備えた各レイヤーで障害管理が必要である。また、サービスにおける、きめの細かいアクセス制御やレート制限など、ポリシーによる決定事項を施行する必要もある。サービスメッシュアーキテクチャは、アプリケーションやフレームワークとは別にマイクロサービスフレームワークで必要とされる一般的な回復機能を抽出することにより、これらの要件に役立つ。
Singh氏は、DockerとKubernetesがオーケストレーション&スケジューリングサービスモデルの一部としてOSIモデルのレイヤ5の一部であるコンテナスタックについて話した。また、Kubernetes技術に基づいてサービスを管理するために使用できるIBMのCloud Container Serviceについても説明した。
Kubernetesはマイクロサービスにとって良い選択である。スケジューリング、クラスタ管理、検出機能などのコンテナオーケストレーション機能により、マイクロサービスのデプロイと管理が容易になる。
Singh氏とLi氏は、反応性と回復力のあるマイクロサービスを構築するためのいくつかの要件について話した。
- 障害回避
- 障害分離
- 障害検出
- 回復
基本的にサービスのネットワークであるサービスメッシュは、個々のサービスについて心配する必要なく、マイクロサービスに回復力を提供することでKubernetesを補完する。軽量のサイドカーは、サービス間のトラフィックを管理することで役立つ。
サービスメッシュの実装であるIstioは、回復力のあるマイクロサービスをデプロイするために使用できる。講演者は、Control Plane、Data Planeコンポーネントと同様、Pilot、Mixer、ProxyなどのIstioの概念について話した。Istioはコードに変更を加えることなくアプリケーションに耐障害性機能を追加する。回復機能には、タイムアウト、タイムアウトを伴うリトライ、サーキットブレーカ、ヘルスチェック、AZ対応のロードバランシング、システマティックフォルトインジェクションなどがある。
彼らは、トラフィック分割やトラフィックステアリング(コンテンツベースのトラフィックステアリング)などのパターンを使用して実現できるIstioによって、マイクロサービスに回復力を持たせる方法について説明した。このプレゼンテーションでは、Istioを使用したサンプルアプリの回復力のデモンストレーションが行われた。サンプルアプリケーションには、Istioフォルトインジェクションを使用して問題シナリオを手動で何度も作成するために自動生成されるコントロールパネルが含まれている。また、シミュレートされた失敗したマイクロサービスと、マイクロサービスメッシュからの応答をライブで観察する方法も示した。
Singh氏とLi氏はKubernetesとマイクロサービスベースの開発者パターンについて議論した。
- KubernetesのSpring Boot Microservices
- KubernetesのJava MicroProfile Microservices
- KubernetesのIstioを使ってマイクロサービストラフィックを管理する
- Istioを活用して回復力と耐障害性のあるマイクロサービスを作成する
コンテナオーケストレーションの開発者パターンについてもっと知りたい場合は、ウェブサイトをチェックのこと。
Rate this Article
- Editor Review
- Chief Editor Action