スケールキューブは、対象となるシステムに対する需要の増加に対応するためにテクノロジー プラットフォームを拡張できる 3 つの方法 (またはアプローチ) を示すテクノロジー モデルです。このモデルで定義されている 3 つのアプローチには、複製またはクローニングによるスケーリング (「X 軸」)、サービス境界または異なるコンポーネントに沿ったセグメンテーションによるスケーリング (「Y 軸」)、および類似のコンポーネントに沿ったセグメンテーションまたはパーティショニング (「Z 軸」) が含まれます。[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
このモデルは、書籍『The Art of Scalability』の初版で初めて公開されました。[ 7 ] 著者らは、2007年に自社ブログでこのモデルをオンラインで初めて公開したと主張しています。[ 6 ]このモデルのその後のバージョンは、2011年の『Scalability Rules』 の初版[ 8 ] 、 2015年の『 The Art of Scalability』の第2版[ 1 ] [ 4 ] 、および2016年の『Scalability Rules』の第2版[ 9 ]で公開されました。
モデルの X 軸は、サービスのクローン作成またはデータセットの複製によって、同じコンポーネントの複数のインスタンスを介してテクノロジー ソリューションをスケーリングすることを表します。同じ機能を実行する Web サーバーとアプリケーション サーバーは、ソリューションをスケーリングするためにロード バランサーの背後に存在する場合があります。データベースなどのデータ永続化システムは、トランザクション スループットを高めるために複製される場合があります。[ 1 ] モデルの Y 軸は、モノリシック アプリケーションをアクション ワード (動詞) を使用してサービスに分割するか、「異なる」ものを分離することによって、テクノロジー ソリューションをスケーリングすることを表します。データは名詞によって分離される場合があります。サービスは、そのサービスに対して作用するデータを分離し、そのサービスに隔離する必要があります。[ 1 ] [ 10 ] キューブの Z 軸は、コンポーネントを「類似した」境界に沿って分離することによって、テクノロジー ソリューションをスケーリングすることを表します。このような分離は、地理的基準、顧客 ID 番号などに基づいて行うことができます。[ 1 ] [ 11 ]
X軸スケーリングは最も一般的に使用されるアプローチであり、実装も最も容易です。コストがかかる場合もありますが、実装の速さと問題の軽減開始の容易さから、コストを相殺できる傾向があります。X軸は、トラフィックの急増やサーバーの停止に対応するために負荷分散されたサービスの単純なコピーであることが多いです。特に永続性層を扱う場合、コストが膨大になる可能性があります。[ 6 ]
Y軸スケーリングは、モノリシックなコードベースの塊を分割し、個別のサービス、または場合によってはマイクロサービスを作成します。[ 12 ] この分離により、責任と説明責任だけでなく、障害分離のための明確なレーンが作成されます。1つのサービスが故障した場合、そのサービスのみが停止し、他のサービスは停止しません。[ 6 ] [ 13 ]
Z軸スケーリングは通常、データの類似したユースケースを調査するものです。地理的な性質のもの、顧客がウェブサイトをどのように使用するか、あるいは顧客データセットのランダムなモジュラスなどです。Z軸は顧客を隔離されたセクションに分割し、応答時間を短縮し、特定の地域やセクションがダウンした場合の問題を排除するのに役立ちます。[ 6 ] [ 14 ]