SaaSとマイクロサービスアーキテクチャの相性
こんにちは.cosmobloomの小野です.
前回はSaaSのビジネスについてお話をしました.本日はSaaSで採用されるマイクロサービスアーキテクチャについてお話ししたいと思います.
マイクロサービスアーキテクチャはソフトウェアの作り方の1つで,提供する機能を小さな独立したアプリケーション(マイクロサービス)に分割し,それぞれを組み合わせて大きなアプリケーションを構成します.このマイクロサービスアーキテクチャはクラウドサービスとの相性が非常によく,SaaSを提供する企業の多くがこのマイクロサービスアーキテクチャを採用しています.
マイクロサービスと呼ばれる各サービスは特定の機能についてのみ責任を負うように作られます.業務の責任が分割されることで,各サービスを独立して開発することが可能になります.サービスごとに開発チームを分け,適切な技術要素を用いて開発することが可能になります.
また,サービスごとに小さなアプリケーションが作られるので,特定のサービスに対して負荷が高くなった際にスケールアウトすることが容易になります.特に,クラウドサービスではスケールアウトに関するサービスが充実しているのでマイクロサービスとの相性が良いです.さらに,マイクロサービスは小さい機能で独立しているため短期間で開発サイクルを回すことができます.SaaSは顧客中心のビジネスであるため,要望を短い期間でサービスに組み込めることは大きな強みになります.
サービス可用性の観点からみてもマイクロサービスにはメリットがあります.各サービスが独立しているため,あるサービスに障害が発生しても,SaaSのアプリケーション全体が停止することはありません.また,障害が別のサービスに波及しにくいため原因の特定や修正が容易になります.
マイクロサービスアーキテクチャは,サービスを組合せて構成することによって多くのメリットを得られます.しかし,メリットもある反面デメリットも存在します.特に,サービスの組合せによって大きなアプリケーションを構成するため,システムの構成は複雑になります.さらに,ネットワークの遅延やデータの整合性に関する問題などが存在します.データの整合性は利用データの管理に影響するので,サービスの分割や連携方法などは慎重に検討する必要があります.
マイクロサービスアーキテクチャはSaaSのような顧客中心のビジネスに大きなメリットをもたらす半面,システムの複雑さやデータ整合性の担保といった開発における要件が高いです.とはいえ,SaaSビジネスは顧客中心のビジネスです.技術的な要件は高いですが得られるメリットのほうが価値が高い事は明らかです.このような背景から,様々な企業でマイクロサービスアーキテクチャが採用されています.
次回は,マイクロサービスの技術要素であるコンテナ技術やオーケストレーション技術の概要についてお話ししようかと思います.また来週お会いしましょう.
小野弘幸