[市場動向]

マイクロサービス同士の通信の課題をプロキシで解消、日本IBMがIstioのメリットを説明

2018年8月24日(金)日川 佳三(IT Leaders編集部)

日本IBMは2018年8月24日、会見を開き、コンテナ技術を用いて開発したマイクロサービス同士のネットワーク接続を管理する基盤ソフト「Istio」について説明した。Istioは同社が開発に関わっているオープンソースであり、2018年7月31日にバージョン1.0をリリースした。

写真1:日本IBM IBMクラウド事業本部 テクニカル・セールス エクゼクティブ・テクニカル・スペシャリスト 樽澤広亨氏写真1:日本IBM IBMクラウド事業本部 テクニカル・セールス エクゼクティブ・テクニカル・スペシャリスト 樽澤広亨氏
拡大画像表示

 Istioは、マイクロサービス同士のネットワーク接続を管理する基盤ソフトである。マイクロサービスと外部の通信を仲介するプロキシサーバー「Envoy」を個々のマイクロサービスの手前に配置するという仕組みによって、マイクロサービス間の通信を把握し、これを制御する。

 Dockerコンテナのオーケストレーション/管理ソフト「Kubernetes」の環境で利用できる。Kubernetesがコンテナを管理・制御する単位で1つまたは複数のコンテナをグループ化した単位であるPodの中に、マイクロサービスのコンテナとプロキシサーバーのEnvoyが入る形になる。

 Istioを開発・提供する背景には、多数のマイクロサービスを組み合わせたシステムにおいては、マイクロサービス同士の通信が複雑になり、通信の経路制御や負荷分散といったネットワーク設計が煩雑になるという状況がある。個々のマイクロサービスの手前にプロキシサーバーを配置し、これを一元管理することで、これらの課題を解消する。

 また、プロキシサーバーはマイクロサービスとは独立して動作する別サーバーであるため、既存のマイクロサービスに変更を加えることなく利用できる。日本IBMによると、類似の機能を提供するソフトウェアの多くは、プログラムにリンクするAPIライブラリとして実装してあり、ソースコードの書き換えが発生するという。

 なお、Istioの前提となる、マイクロサービス型でアプリケーションを開発することのメリットは、メンテナンスが柔軟になることである。小さな個々のサービスを組み合わせることで大きな機能を実現しているため、小さな個々のサービス単位で更新などのメンテナンスができる。機能全体を一度に停止させることなく機能をアップデートできる。

マイクロサービス間の経路制御やサービスの可用性向上などに利用

 Istioを使って可能になることは、トラフィック管理、セキュリティ、監視の3つである。

 特徴的なユースケースの1つが経路制御である。カナリアリリースと呼ぶ、アクセスの90%を本番系システムへ、10%を開発中の次期システムへと経路を振り分け、次期システムに問題がなければ100%次期システムに切り替える、といった運用ができる。また、アクセス者の属性に応じて本番環境と次期環境に振り分けるコンテンツベースの経路制御もできる。

 カオスエンジニアリング(フォールトインジェクション)も可能である。テスト用のスタブを作ることなく、プロキシサーバー上で意図的にネットワーク遅延をシミュレートするといったシステム障害を起こし、障害対応のテストができる。

 マイクロサービスの本番環境を安定稼働させる機能として、サーキットブレーカー機能も使える。アクセス先のマイクロサービスからの応答が返ってこない場合に、タイマー待ち処理でサービスがダウンしてしまう現象を防ぐ。プロキシサーバーが即座にエラーを返して対応する。バックエンドでアクセス先サーバーの生死をチェックし、アクセス先サーバーが復活したらアクセスを中継する。

関連記事

Special

-PR-

マイクロサービス同士の通信の課題をプロキシで解消、日本IBMがIstioのメリットを説明日本IBMは2018年8月24日、会見を開き、コンテナ技術を用いて開発したマイクロサービス同士のネットワーク接続を管理する基盤ソフト「Istio」について説明した。Istioは同社が開発に関わっているオープンソースであり、2018年7月31日にバージョン1.0をリリースした。

PAGE TOP