SaaS企業の秘密:なぜマルチテナンシーが重要なのか
(shomik.substack.com)"MultitenancyはSaaSの拡張性を優れたものにする隠れた基盤"
- SaaSモデルの高いマージンと無限に見える拡張性は、株式市場/投資家/起業家たちがこの分野に飛び込む理由
- それを可能にしているのが、まさにインフラ、とりわけ「マルチテナンシー」という概念
- 今日ではほぼすべての企業がクラウドとSaaSを利用しており、クラウドソリューション実装の核心がまさにマルチテナンシー
- Salesforce創業者のMarc Benioffは「マルチテナンシーはSaaSベンダーが成功するための必須事項」と述べた
- 正確に言うとマルチテナンシーとは何で、なぜ重要なのか?
マルチテナンシー:地下鉄システムを構築する
- まずはシングルテナンシーを理解しよう
- 各顧客は1つの固有のアプリケーションとデータベースを使う
- つまり顧客が100人いれば、100台のサーバーと100個のアプリケーションと100個のDBがあるということ
- シングルテナンシーは大規模に維持管理するのに多くの時間・費用・労力がかかる
- 交通の観点で考えると、通勤のために車を運転することも、地下鉄に乗ることもできる
- 車を運転すれば便利だが、自動車の費用、燃料代、駐車料金、さらに渋滞や公害のコストも支払う必要がある
- 地下鉄に乗れば比較的安価で、道路をきれいに保ち、オゾン層の破壊も少ない
- 世界貿易センター(WTC)にいる5万人の全労働者が車で通勤するとしたら、非常に複雑なシステムになる
- だからこそ、地下鉄のようなマルチテナンシーが生まれ、コストと間接費を下げ、環境の「混乱」を大きく減らした
なぜ今なのか?
- 地下鉄に乗り換える理由は何か? それが本当に優れているなら、なぜ今まで選ばれてこなかったのだろうか?
- その答えは「クラウド」にある。クラウドコンピューティングとSaaSビジネスの人気が爆発的に増加中
- パブリック市場を見ると、以前はセルフホスティング製品を提供していた企業が急速にクラウドへと舵を切っている
- Atlassian、Autodesk、Elastic、Microsoftのような企業がクラウドホスティングソリューションを提供し、爆発的な売上成長を記録中
- Atlassianは前四半期だけで1万人以上の顧客を追加した。1万人の顧客をシングルテナンシーで維持すると、個別のエンジニアリング作業、リソース管理、複雑性、そして中核ビジネス課題を解決する人材の枯渇によって企業は苦しくなるだろう
- したがって初期のスタートアップは、'Quick-and-Dirty(素早く簡単に作った)' シングルテナンシー環境で始めることを選べるかもしれないが、規模が大きくなり成長し始めると、最終的にはマルチテナント環境でしか解決できない技術的負債に直面することになる
- クラウドコンピューティングとSaaSビジネスが成長するにつれ、シングルテナントソリューションのオーバーヘッドも増大し、マルチテナンシーへの要求も高まる
マルチテナンシーの利点
- マルチテナンシーはSaaSベンダーに多くの魔法をもたらす
- 顧客基盤全体でインフラを共有できる能力はゲームチェンジャーだ
- マルチテナンシーがもたらす利点には、スケール以外にもいくつかの秘密がある
販売収益(Margins)
- 共有インフラを活用することは、インフラの利用度が高まるほどベンダーの収益に直接影響する
- マルチテナントは、人材とソフトウェア/ハードウェア費用の面で、直接的(売上原価の観点)にも間接的(主要人材が他にエネルギーを集中できるという観点)にも、より少ないリソースで済む
- その結果、粗利率が上がり、最終的には市場でより高いバリュエーションを得られる余剰キャッシュフロー(Free Cash Flow)が生まれる
可視性(Visibility)
- マルチテナンシーの利用は、インフラの性能を理解したり、特定の顧客グループにコストがどう反映されているかを知る上で非常に有利
- データは集約しても顧客別でもクエリできる必要がある
- シングルテナントインフラでは顧客データが分散しているため、Cross-Customer指標を分析するのは非常に難しい
- しかしマルチテナントインフラでは、顧客基盤全体を見渡しながらマクロトレンドを確認できる
- これはロギング、DB単位、あるいはアプリケーションパフォーマンス監視レベルで確認でき、Cross-Functional Teamに大きな利点をもたらす
マルチテナンシーの複雑性
- あらゆる「魔法」には問題があり、マルチテナンシーも例外ではない
問題1: 可用性とノイジーネイバー
- あるeコマースがすべての顧客データを1つのDBに保存しているとして、ほとんどのユーザーは月に1〜2個しか買わない一方で、あるユーザーは毎日5,000個ずつ買うと仮定してみると
- DBがこうした顧客の急増する負荷を処理できるほど十分に強力でなければ、DB全体がダウンし、他の顧客が購入できなくなる可能性がある
- これは大きな課題であり、データパーティショニングの判断につながる
- Siloパーティショニング(テナントごとにDBを分離) vs. Pooledパーティショニング(テナント間でDBを共有)
- Siloパーティショニングはいくつかの顧客の問題は解決できるが、そうすると元の問題に戻り、膨大な数のインスタンスを管理しなければならない
- Pooledパーティショニングはうまく機能するが、1人の顧客が負荷を発生させて問題が起きると、遅延やシステムダウンにつながる
問題2: 共有資源とデータセキュリティ
- すべての顧客が同じリソースを利用し、またマルチテナントの標準的な実装というものがないため、異なるテナント間でデータが交差する技術的バグが起こりうる。
- 互いに競合する顧客を同時にサービスしているなら、非常に危険になりうる問題
- 技術チームはデータ主権法(Data Sovereignty Laws)やテナント分離に影響する規制などを評価する必要がある
複雑性の解決
- マルチテナントはSaaSアプリケーションの主要な柱(Pilar)の1つになったが、実装段階ではなお考慮すべき複雑性が多い。
- CloudinaryのCEOは「マルチテナンシーはオペレーショナル・エクセレンス(Operational Excellence)を達成する鍵だが、正しく実現するには多くの知識と投資が必要だ」と強調した。
- (この記事を書いた)BoldstartとF2は、こうしたマルチテナンシーの問題を解決するスタートアップ(現在ステルスモード)に投資した
- マルチテナントシステムには複雑な点が多いが、シングルテナントシステムをスケールさせる際に生じる技術的負債を考えれば、もはや迷う必要はない
- その技術的負債を解消するために最高のエンジニアチームを投入し、中核ビジネスではない部分にリソースを消費することになるため
- 賢いスタートアップは、最初からマルチテナント環境を計画し、構築して維持することを選ぶ
まだコメントはありません。