モノリシックからマイクロサービスへ
デジタルトランスフォーメーションが活発化し実世界の営みがデジタルの世界に移行しはじめていますが、その変化に追従すべくビジネススピードの加速が求められています。 ビジネス環境の変化に素早く対応すべく、ウォーターフォール/モノリシックからアジャイル/マイクロサービスへと開発手法/アーキテクチャの主流が変化してきています。
モノリシックアーキテクチャとマイクロサービスアーキテクチャの違い
マイクロサービスアーキテクチャは、システムを独立性の高い小さなサービスに分割して開発・構築することで、新たなサービスの追加によるビジネスの拡大をスピーディに行えることが最大のメリットとなります。 インフラやソフトウェアの進化によってその下地が整ったこともあり、市場変化の早いBtoCビジネスを展開する企業から積極的に採用され始めています。
マイクロサービスアーキテクチャにおける性能品質担保の難しさ
マイクロサービスによる開発では、新たなサービスが次々に追加されその規模が拡大していくと、サーバやアプリケーションなどの構成要素の数が膨大になり、複数の開発言語やOS環境、多チーム開発による責任の所在といった要素により、複雑さを増していきます。 そのような状況の中で、従来行っていたシステム全体での性能評価→リリースというプロセスでは時間がかかり、マイクロサービスアーキテクチャのメリットであるスピードを損なうことになってしまいます。
小さな視点と大きな視点
以下の2つの視点で素早く全容を把握することが、マイクロサービスアーキテクチャにおいて性能品質をコントロールする重要なポイントになります。
小さな視点
ひとつ目の視点は、サービス内部のパフォーマンス特性を把握するための視点です。 マイクロサービスアーキテクチャによって構成されるシステムでは、AgileやDevOpsといった高速かつ柔軟性のもつ開発スタイルが採用され、継続的にシステムが更新されていくことになります。この変化の中で常に最新の全体構成を把握し、設計・テストに反映するサイクルを回し続けるためには、APM(Application Performance Management)ツールの利用が有効です。 APMツールを用いることにより、個別サービス毎のパフォーマンス状況、依存するサービス間のパフォーマンス特性をリアルタイムで把握することができるため、サービス毎のキャパシティ管理や新規サービス追加によるアーキテクチャの見直し、性能テストをすべき範囲の見極めといったマイクロマネジメントが可能になります。
また、サービス稼働中に特定サービスで遅延が発生した場合も、遅延が発生しているサービスとサービス内の遅延箇所の検知・原因特定が可能になるため、サービス全体への影響を局所化することが可能になります。
APMツールによる遅延箇所の検知・原因特定のイメージ
大きな視点
もうひとつの視点は、ユーザー視点でサービス全体の健全性を把握する視点です。 遅延・不通によるユーザー体験への影響は、ビジネス損失に直結することになるため、ユーザーの影響度合いを迅速に把握する必要があります。 これには、エンドユーザーの視点でアプリケーションパフォーマンスを計測できるDEM(Digital Experience Monitoring)と呼ばれる手法が有効です。 ユーザー側のアプリケーション(WebやモバイルAP)内部とそのトランザクションのパフォーマンスを監視することで、ユーザー影響を把握し、ビジネス損失を極小化するアクションを判断することが可能になります。
ユーザーはサービスの遅さに敏感であり、特にWebサービスやECサイトにとっては遅さや使いにくさが離脱のみにとどまらず、競合サービスへの流出に直結してしまいます。これらの問題は従来主流であったサーバーオリエンテッドな監視の視点のみでは捉えられません。
高頻度な機能拡充が可能というマイクロサービスアーキテクチャのメリットを損なわないために、ユーザー体感起因のビジネス影響(アクセス数・コンバージョン・売上等との相関性)を敏感に捉え、サービス改善・ビジネス戦略の意思決定に素早く反映していくことがDEMの本質であり、ビジネスとシステム開発の一体化が求められるデジタル化の流れの中においてもさらに重要性を増してきています。
近年のAPMツールは、DEMを実現する機能に重点を置き始めており、ユーザーのサイト内の挙動(離脱や滞在時間)やクライアントサイドのレスポンス情報をモニタリングし、収集した情報によるリアルタイムでのマーケティング分析機能など、開発・運用・ビジネスに直結した性能品質管理の土壌が整いつつあります。
システムライフサイクルにおけるAPMのカバー範囲
まとめ
「小さな視点と大きな視点」これら2つの視点で、サービス全体を俯瞰しながらパフォーマンス特性をリアルタイムに把握し、ビジネス戦略・開発・テスト・運用のシステムライフサイクルに継続してフィードバックしていくことが、ビジネススピードを損なわずに性能品質をコントロールするための有効なアプローチになります。
小さな視点に加えて大きな視点で、変化や問題を素早く、かつ広く認識し、対応していくこと。 変化の速いこのデジタル時代では、今以上に重要なアプローチになっていくのではないでしょうか。