こんにちは、さくらインターネットの大喜多です。

2018年6月8日、クラウドコンピューティングEXPOのアフターセミナーとして、さくらインターネットのパートナー企業である株式会社オルターブース主催によるセミナー「マイクロサービスインテグレーションの勘所」が開催されました。本記事では株式会社オルターブース代表取締役CEO 小島 淳 氏のセッションの様子をお届けします。

株式会社オルターブース代表取締役CEO 小島 淳 氏

クラウドに移行するだけでは何も変わらない?

小島氏は、オンプレミス環境をそのままクラウドへ移行する「リフトアンドシフト」について、4つの問題点を指摘し、特に「クラウド化したら、逆に運用コストが上がった」という点と「社内組織文化が変わらないためクラウドにしても何も変わらない」という二点を強く問題視し、「クラウドへ移行しても、今までのやり方を変えずにいたらこれらの問題が起こることは必然であり、システムも業務も変えていく必要がある」という旨のコメントをしました。


課題に直接アプローチするための新しいやり方として挙げたのが、肥大化したビジネスロジックをすっきりさせるための「マイクロサービスアーキテクチャー(仮想コンテナ)」や、サービスリリースを高速化するための文化「アジャイル開発(DevOps)」などでした。このうち、今回のセミナーではマイクロサービスアーキテクチャーについてさらに掘り下げて話が進んでいきました。

肥大化したビジネスロジックを分割し、修正に柔軟に対応できるシステムに

なお、このように新しいやり方によりビジネスを変革していくにあたっても、それぞれの工程にはそれなりの時間がかかるため、まずはリフトアンドシフトからはじめ、徐々に新しいやり方に変えていくアプローチですべきであると補足されていました。

「まずはリフトアンドシフトができないことには始まらない」(小島氏)

マイクロサービスアーキテクチャーのキーテクノロジー

すべての機能が1つのアプリケーションに含まれている「モノリス構造」から、アプリケーションを独立した複数のサービスに分割する「マイクロサービス構造」に移行するためには、どのような考え方が必要なのでしょうか。

小島氏は「これまでのネットワークを中心として考えるアーキテクチャーから、アプリケーションを中心として考えるアーキテクチャーに改めていく必要がある」「これまでミドルウェア単位で”横”に分割されていたシステムを、アプリケーション単位に”縦”に分割していくこと」と解説しました。

アプリケーションを中心に考えるマイクロサービスアーキテクチャーでは、アプリケーション間の連携制御はどのようにおこなわれるのでしょうか。そのためのツールが、Kubernetesであり、Istioだということです。

  • Kubernetesはコンテナのアーキテクチャーを管理し、障害が発生してもあるべき姿に修復する
  • Istioはコンテナ間の通信をプロキシによって制御し、マイクロサービス間における通信制御を行うことでオーケストレーションを補佐する

アプリケーションごとにA・B・Cの3種類のコンテナが存在し、同一種類のコンテナが複数起動している状態を例に説明がなされました。

Kubernetesは、アプリケーションAのコンテナが5つ起動している状態を管理し、そのいずれかに障害が発生した場合は、障害が発生したコンテナには通信されないようコントロールし、その後に障害が発生したコンテナを修復して元の状態に戻す機能を提供しています。

Istioは、ネットワーク構成に依存しないコンテナ間通信の制御を実現します。CircuitBreakerという機能によって、コンテナ間の通信において障害が発生した場合、例えばアプリケーションAからアプリケーションBへ通信する際にアプリケーションBのコンテナの一部に障害が発生している場合、アプリケーションAのコンテナから、正常に動作しているアプリケーションBのコンテナへ通信するようコントロールします。

ネットワークやミドルウェアを中心に考えない、アプリケーションを中心に考えられたマイクロサービスアーキテクチャーは、これらのツールによって実現しているのだそうです。

また、アプリケーションを安全にリリースする手法として、待機系に変更を反映させ、問題ないことが確認できた後に全体に反映させる「Blue Green Deployment」と、サービスの一部(スライド上では全体の20%)に機能をリリースして、徐々に(残りの80%に対して)リリース範囲を拡大していく「Canary Release」が紹介されました。これらもKubernetesやIstioによって実現しているものです。

オルターブースでは、マイクロサービスアーキテクチャーを導入するためのコンサルティングからアプリケーション分割設計、プラットフォームの構築、実装、継続的運用のための仕組みを提供する「KOSMISCH(コーズミッシュ)」というサービスを提供しています。

マイクロサービスアーキテクチャーを導入し、ビジネスロジックの変更に強い柔軟なシステムを実現したいと考えられている方は、オルターブースに相談してみてはいかがでしょうか。