各お客様に専用データベースと専用プールを用意する理由
一般的なSaaSプラットフォームにデータの保存方法を尋ねると、たいてい「論理的な分離」という答えが返ってきます。つまり、あなたの行は他社の行と同じテーブルに置かれ、テナントIDと、あとは多くの「祈り」によって隔てられている、ということです。Clonextは別の道を選びました。すべてのお客様に、専用データベースと専用アプリケーションプールを用意します。その理由と、私たちが払っているコストをご説明します。
共有スキーマはベンダーのための最適化
単一の共有スキーマは、プラットフォームを運営する側にとっては実に便利です。1回のマイグレーションで全員が更新され、1つのコネクションプールが全員を処理し、1つのバックアップが全員をカバーします。経済性は抜群です。うまくいかなくなる、その瞬間までは。あるテナントの暴走クエリが全テナントのレイテンシを悪化させ、マイグレーションのバグが境界を越えてデータを露出させ、「私のデータを削除して」という依頼は、ひとつのクリーンな操作ではなくフォレンジック調査になってしまいます。
マルチテナンシーは、コストをベンダーのバランスシートから顧客のリスク台帳へと静かに移し替えます。
ここで言う「分離」の意味
私たちが「分離されている」と言うとき、それは設定のレベルではなく、インフラのレベルの話です。
- 専用データベース。あなたのテーブル、あなたのインデックス、あなたのストレージ。セキュリティの役割をテナント列に負わせることはありません。
- 専用アプリケーションプール。あなたのプロセス、あなたのメモリ、あなたのCPU。隣人の負荷急増は、あなたの問題ではありません。
- 専用バックアップ。毎晩暗号化され、あなたのインスタンスに対してのみ復元されます。
- あなた自身のドメイン。DNS、TLS、メールを、端から端まで設定します。
私たちが受け入れるトレードオフ
分離は無料ではありません。どのマルチテナントプラットフォームよりも多くのデータベース、プール、バックアップジョブを運用し、自動化は「1社だけのフリート」をデフォルトのケースとして扱わなければなりません。そのコストを受け入れるのは、後から取り繕うことのできないものが手に入るからです。影響範囲が、あなたの境界で止まるということです。
重要なのは、分離が「取り残されること」を意味しない点です。すべてのインスタンスは同じ実証済みのコアの上に構築されているため、上流の改善はプラットフォームのスケジュールどおりにあなたのもとへ届きます。共有された障害領域なしに、共有システムの速度を手に入れるのです。