検索
連載

富士フイルムソフトウエアが明かす、マイクロサービス構築と運用の難しさを解消する3つの技術スタック特集:百花繚乱。令和のクラウド移行(18)(2/2 ページ)

多数の事例取材から企業ごとのクラウド移行プロジェクトの特色、移行の普遍的なポイントを抽出する本特集「百花繚乱。令和のクラウド移行」。富士フイルムソフトウエアの事例では、マイクロサービス構築と運用のポイントを中心にお届けする。

Share
Tweet
LINE
Hatena
前のページへ |       

機能搭載コストは2分の1に、改善スピードは2倍に

 コンテナ技術は、デファクトスタンダードだったDockerとKubernetesに決め、オンプレでの学習、構築、運用コストを低減する目的で、クラウドのマネージドサービスを採用することを決めた。マネージドサービスは、2018年1月時点で、日本で唯一正式リリース(GA)されていたものとして、GCP(Google Cloud Platform)のGKE(Google Kubernetes Engine)を採用した。


富士フイルムソフトウエア ソフトウエア技術本部 ITソリューショングループ ネットサービスソリューションチーム 渕田行彦氏

 「GKEは3年以上マネージドサービスとしての安定動作運用を行っていたという実績もあり、信頼性が高いと判断しました」(渕田氏)

 渕田氏はマイクロサービス化およびクラウド移行の効果として、レガシーシステムで課題になっていた「スケーラビリティの確保」「保守、運用コストの改善」「機能改善スピードの向上」という3つについて、それぞれ効果があったと説明した。

 スケーラビリティについては、システム単位を小さくすることで、負荷の高い機能を分離しやすい構造になった。注文受注量が瞬間的、恒常的に数倍に増加しても処理速度の劣化はなく、多国展開など横展開しやすい構造になった。

 保守、運用コストについては、モノリシックな構造が改善され、影響範囲が小さくなったことで、保守コストは大きく削減された。例えば、機能搭載費用は約2分の1になった。また、サーバリソースを有効活用することでランニングコストは約5分の3にまで削減できた。

 「負荷増大時にもピンポイントなスケールで不必要なサーバ構築を行わずに済む構造になり、ログ調査やアラート連携も改善されました。これにより分析基盤としての役割を果たせるようになりました。導入から12カ月でサービスダウンタイムもなく、安定して稼働しています」(渕田氏)

 機能改善スピードについても、影響範囲が見極めやすくなり、対応速度が約2倍に向上、イベント開催にも柔軟に対応可能な構造になった。

運用して12カ月、マイクロサービスが生んだ新たな課題

 もっとも、新たな課題も出てきていたという。ムサヴィ氏によると、それは「セキュリティの確保」「可観測性の改善」「管理性の向上」だ。


マイクロサービス化後の課題

 「1つの大きなアプリケーションを小さなサービスに分割したわけですが、やってみると、どんどん小さなサービスが増えることで複雑化していきました。例えば、セキュリティの面では、一つ一つのサービスについてセキュリティを保証しなければならず、サービス同士のコミュニテケーションについてもセキュリティを保証しなければなりません。同じようにサービスのレスポンスタイムが遅いときなどに問題を発見するためには可観測性を高めなければならず、サービスごとの管理も必要になってきました」(ムサヴィ氏)

 現在は3つの課題についてそれぞれ対策を検討しているところだ。

 セキュリティについては、通信(User-to-Service、Service-to-Service、鍵管理)、サービス(API、認証/認可/監査、ID管理)、プラットフォーム(クラスタ、名前空間、サービス、Podレベル)、データ(暗号化)のレイヤーごとに対策を検討。目指す姿としては、アプリやインフラでのコード変更が不要な「Security of Default」、複数レイヤーで防御する「Defense in Depth」、信頼できないネットワークでの構築を前提にする「Zero-Trust Network」だ。

 可観測性の改善に向けては、可視化のためのモニタリングやログ、メトリクスの収集機能を開発するとともに、サービス間関係やデータフロー、パフォーマンスなどをトレーシングする仕組みを導入しようとしている。

 「分散アプリでは不具合分析や性能ボトルネックの追跡(分散トレース)が難しい。各サービスの観測は独立で行えますが、サービス間の関係性も含めたシステム全体の観測は非常に困難です」(ムサヴィ氏)

 管理性については、サービス間ルーティングやポリシー制御などの「トラフィック制御」、リトライやサーキットブレイカーなどを使った「回復性の確保」、マルチクラスタやマルチリージョン、マルチクラウドでのサービス分割といった「マルチテナント管理」が課題になってきているとした。

マイクロサービスを実現する3つの技術スタックを把握しておく

 そのような中、同社が取り組んでいるのがサービスメッシュだ。


富士フイルムソフトウエア ソフトウエア技術本部 基盤技術グループ 主任研究員 ムサヴィ・ジャハン・アバディ・セイド・モハマド氏

 「Kubernetesは、『Infrastructure as Configuration』というコンフィグベースのインフラ管理であり、コンフィグを定義して実装をKubernetesに任せることができます。コンピューティングやストレージは管理できるのですが、ネットワーク管理の仕組みは不足しています。サービスメッシュは、サービス間通信を管理することで、マイクロサービスによって生まれる複雑性を解消できると思っています」(ムサヴィ氏)

 具体的には、サービスメッシュ機能をSidecar Proxy(Envoy)で実現するフレームワークである「Istio」を用いて、対応しようとしている。

 「IstioをKubernetesにインストールすると、Kubernetesでは不足しているネットワーク管理の機能を拡張できます。具体的には、Gateway、VirtualService、DestinationRule、ServiceRole、Policy、Instance、Ruleなどのネットワーク機能を管理できるようになります」(ムサヴィ氏)

 最後にムサヴィ氏は、これまでのプロジェクトを整理しながら、マイクロサービスの難しさを解消するには、3つの技術スタックがあると説明。「モジュラー化とコスト削減のためのコンテナ技術(Docker)、ポータビリティ性やスケーリング、自己回復のためのコンテナオーケストレーション(Kubernetes)、セキュリティや可観測性、管理性を確保するためのサービスメッシュ(Istio)を踏まえて取り組みを進めることがポイントです」と話した。


マイクロサービスの難しさを解消する技術スタック

この移行事例のポイント

  • ユーザーの消費傾向つまりビジネスの観点からレガシーシステムの課題を分析し、「スケーラビリティの確保」「保守、運用コストの改善」「機能改善スピードの向上」のために、パブリッククラウド、コンテナ、マイクロサービスアーキテクチャの採用を決めた。ユーザーの反応に対して迅速に機能を改善することがビジネス上不可欠となるB2C向けのサービスでは、機能ごとにサービスを分割、リリースすることが可能になるマイクロサービス化が有効といえるだろう。
  • クラウドプラットフォームの選定では、Kubernetesマネージドサービスの実績からGoogle Cloud Platformを選択。
  • マイクロサービス化が生んだ新たな課題については、現在有力なサービスメッシュの活用に取り組むことで解消を図っている。

特集:百花繚乱。令和のクラウド移行〜事例で分かる移行の神髄〜

時は令和。クラウド移行は企業の“花”。雲の上で咲き乱れる花は何色か?どんな実を結ぶのか? 徒花としないためにすべきことは? 多数の事例取材から企業ごとの移行プロジェクトの特色、移行の普遍的なポイントを抽出します。



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
[an error occurred while processing this directive]
ページトップに戻る