はじめに
性能プロフェッショナルサービス「まかせいのう」では、性能ソリューションサービスの展開を通じて、システムに求められる性能の確保に取り組んできました。その取り組みの中で以前と比べて性能の確保がより難しくなっているように感じています。昨今はクラウドをはじめとしたデジタル技術の普及に伴い、デジタル時代ならではの性能確保の難しさが顕著になってきています。本稿では、その概要として、以下の点をお伝えいたします。
- クラウドの普及や流動的なビジネス要件などの環境の変化により、システムへのアクセス量が変動しやすく、その前提で性能を確保することが求められる
- デジタル化の加速により、サービスとして隠蔽・抽象化されたアーキテクチャ、大量のデータ・トラフィックなどのシステム特徴が現れており、どのように性能確保するかが課題となっている
- 性能確保のためには、サービス・プロダクトの特性やアーキテクチャの特徴を踏まえた設計が重要である
クラウドの普及とビジネス要件の変化
近年、クラウドの普及や流動的なビジネス要件などの環境変化により、以前よりも性能確保が難しくなっています。予測困難なシステム利用の需要に対応するため、拡張性の恩恵を受けやすいパブリッククラウドを採用するプロジェクトが増えていますが、アクセス量を想定しづらいイベント(例:モバイル端末へのキャンペーンプッシュ配信)による突発的なアクセスでレスポンス遅延が発生するなど、想定以上のアクセスに耐えられずに性能問題が発生するケースが見受けられます。
このような環境下では、流動的なビジネス要件を前提として、要件以上のアクセスを想定し、限界性能の把握と流量制御の対策を講じる必要があります。
図1:環境変化による性能への影響
デジタル化に見るシステム性能の課題
ビジネス要件が流動的な環境は今後も続くと予想され、また、新しくローンチされるサービスやプロダクトをいち早く活用することで、ビジネスの競争優位性を追求するデジタル化の潮流は今後更に活発化していくと考えられます。
最近は、COVID-19の影響も相まって、非対面での業務・サービスへの需要が高まり、ネット通販・キャッシュレス・データ活用・非対面業務などのシステム開発が進むと予想されます。(例:非対面での購買活動、ユーザーレコメンデーションのための購買履歴データの活用、在宅勤務等)
図2:各業態の性能に対するニーズの変化(当組織調べ)
こうした非対面での業務・サービスを提供するシステムでは、まさに目の前にある利用者のニーズに応えられるというビジネスメリットがある一方で、アクセス量の変動(ピーク時のアクセス量が予測困難)、サービスとして隠蔽・抽象化されたアーキテクチャ、大量のデータ・トラフィックなど、性能確保への障壁があり、いかに性能を確保するかが課題となっています。
図3:性能確保を困難にする要素
性能設計の重要性
デジタル化による技術的な要件が高度化する中で求められる性能を担保するためには、設計工程での性能の作り込み(性能設計)がさらに重要となってくると考えています。
開発においてサービス・プロダクトの利用を前提とする傾向や、ビジネス要件への柔軟な対応を可能とするため、アーキテクチャが複雑化する傾向が強まると予想されます。そのため、サービス・プロダクトの特性やアーキテクチャの特徴を踏まえて、設計工程で性能を作り込んでいく必要があります。
その必要性を示す例として、クラウド利用時の設計が挙げられます。クラウドの普及によって性能への考え方が変化してきており、システムリソースを多く確保すれば性能を担保できる、という半ば偏った認識を後押ししている状況とも捉えられます。システムリソースに関しては、クラウドによる拡張性の恩恵を受けやすいですが、ミドルウェアやアプリケーションを含めた設計次第で性能は全く違ったものになります。
クラウドのシステムリソースは、サービスとして抽象化されており、性能上の特徴(設計ポイント)があるため、性能を引き出すにはその特徴を考慮して設計する必要があります。つまり、クラウドを利用しても、性能が保証される訳ではなく、利用者側で保証する必要があるため、クラウドを「どう使うか」がポイントになります。
図4:クラウド利用時の性能アンチパターンの例
前述の通り、今後はサービス・プロダクトの利用を前提とする開発が増えると予想されるため、上で例に示したクラウド利用時の設計のように、利用するサービス・プロダクトの性能特性を踏まえて、性能を引き出す設計に落とし込んでいくことが重要です。
デジタル時代においては、ビジネス要件は流動的で、性能要件も状況に応じて変化しうるため、そのことを念頭に置き、柔軟性をもって性能確保の取り組みを進めていくことが大切である、と考えています。