全1284文字
PR

 「マイクロサービスをうまく動かすにはサービスメッシュというインフラが必要になる」。こう語るのは日本IBM クラウド&コグニティブ・ソフトウェア事業部 ハイブリッドクラウドCTOの高良真穂氏。マイクロサービスの次の展開として、2021年はサービスメッシュに注目が集まりそうだ。

 比較的小さなサービスを疎結合に連携してシステムを構築する「マイクロサービスアーキテクチャー」が日本でも普及し始めている。各サービスの独立性を保ちやすいので、顧客のフィードバックを取り込み改善を繰り返すような開発スタイルに向く。

 ただし、数十から数百といったサービスを連携させたとき、メッシュ(網の目)状に構成されたサービス間のネットワークを適切に管理する必要がある。コンテナ管理ツール「Kubernetes」がデファクトになってきた今、その上で動くサービスを管理するサービスメッシュが求められるようになった。

 サービスメッシュの管理ツールはいくつかあるが、代表格はオープンソースの「Istio」だ。データプレーンとコントロールプレーンから成り、データプレーンでは管理対象のサービスが稼働するコンテナ(Pod)にプロキシーを埋め込む。プロキシーはメッシュ状のネットワークを構成し、サービス間のネットワークを監視。コントロールプレーンはプロキシーを管理し、トラフィックのルーティングなどを行う。

図 サービスメッシュ管理ツール「Istio」の構成
図 サービスメッシュ管理ツール「Istio」の構成
サービス間のやり取りを一元管理
[画像のクリックで拡大表示]

 Istioが提供する機能は大きく3つある。ルーティングやロードバランシング、タイムアウト管理などの「トラフィック管理」、認証や通信暗号化などの「セキュリティー」、ログ収集やトレースなどの「監視」である。

 多くのサービスを連携して動かすマイクロサービスアーキテクチャーの利用について、日本マイクロソフト シニア・クラウド・ソリューション・アーキテクトの樽澤広亨氏は「各サービスのリリース方法、システム全体の信頼性を判断するためのテスト手法、障害影響を最小化する仕組みなどを考慮しておく必要がある」と指摘する。

 Istioはこうしたマイクロサービス運用の効率化にも役立つ。新機能を段階的にリリースする「カナリアリリース」、本番システムを安全に切り替える「ブルー・グリーンデプロイメント」、障害発生時に該当サービスへのルーティングを停止する「サーキットブレーカー」といった仕組みは、Istioのロードバランシング機能やポリシー管理などで比較的簡単に実装可能だ。

 Istioを通じて得られた性能や障害に関する情報をフィードバックすることで、アプリの品質向上にもつながる。

 サービスメッシュを管理するツールは発展途上にある。Istioは現在、米グーグル、米IBM、米ヴイエムウェアなどが参加するコミュニティーで機能拡張が進められている。一方で米マイクロソフトを中心にサービスメッシュ管理の標準化を目指すプロジェクト「Service Mesh Interface(SMI)」がCNCF(Cloud Native Computing Foundation)の中で立ち上がった。今後、こうした覇権争いにも要注目だ。