87

多くの人が両方の用語を同じ意味で使用していると聞きました。ただし、私の意見では、それらには違いがあります。

スケーラビリティ-ソフトウェア システムが、アプリケーション サービスを中断することなく、現在のハードウェア リソース (スケールアップ) または現在および追加のハードウェア リソース (スケールアウト)で大量のワークロードを処理する能力。

弾力性- 下位のハードウェア レイヤー(通常はクラウド インフラストラクチャ) が、そのハードウェア レイヤーによって上位のソフトウェア レイヤーに提供される物理リソースの量を増減する能力。増減は、事前に定義されたビジネス ルールによってトリガーされます (通常は、アプリケーションの要求に関連します)。増減は、物理的なサービスを中断することなくオンザフライで行われます。

繰り返しになりますが、スケーラビリティは、より多くのワークロードを処理することに関連するソフトウェア アーキテクチャの特性であり、弾力性は、完全にハードウェア バジェットの最適化に関連する下の物理層の特性です。

これら 2 つの非機能的なアーキテクチャの特徴の違いは理解できましたか? 誰かが具体的な例を挙げていただけますか?

4

11 に答える 11

84

スケーラビリティとは、リソースを追加するだけで、ハードウェアを強化する (スケールアップ) か、ノードを追加する (スケールアウト) ことで、より大きな負荷に対応できるシステムの能力です。

弾力性とは、通常はスケールアウトに関連して動的に負荷に対処するために必要なリソースを適合させる能力です。そのため、負荷が増加した場合はリソースを追加してスケーリングし、需要が減少した場合は縮小して不要なリソースを削除します。弾力性は、従量課金制で、一方では現在必要のないリソースに料金を支払いたくない一方で、他方では必要に応じて高まる需要に対応したいクラウド環境で最も重要です。

于 2012-03-07T22:33:48.707 に答える
59

_

スケーラビリティ:「増加する」ワークロードに対応するための容量を「増加」します。

弾力性:「増加または減少」するワークロードを満たす能力を「増加または減少」させます。


スケーラビリティ:スケーリング環境では、利用可能なリソースが「将来の需要」を満たすために超過する場合があります。

弾力性: 弾力性のある環境では、利用可能なリソースが「現在の需要」に可能な限り一致します。


スケーラビリティ:スケーラビリティは、リソースを「増分」方式で「プロビジョニング」することにより、「ワークロードの増加」にのみ適応します。

弾力性: 弾力性は、「自律的」な方法でリソースを「プロビジョニングおよびプロビジョニング解除」することにより、「ワークロードの増加」と「ワークロードの減少」の両方に適応します。


スケーラビリティ: 増大するワークロードは、単一のコンピューター リソースの能力を高めるか、コンピューター リソースのグループの能力を高めることで対処されます。

弾力性:変化するワークロードは、コンピューター リソースの使用が動的に変化することで処理されます。


スケーラビリティ:スケーラビリティにより、企業は「長期的で戦略的なニーズ」を伴うサービスに対する期待される需要を満たすことができます。

弾力性:弾力性により、企業は「短期的で戦術的なニーズ」を持つサービスに対する需要の予想外の変化に対応できます。


スケーラビリティ:ワークロードが増加している環境に対応する能力を「増加」させます。

このスケーラビリティは、「スケールアップ」または「スケールアウト」です。

(例:

スケールアップ - 個々のサーバーの能力を高める

スケールアウト - 個々のサーバーに複数のサーバーを追加することで能力を高めます。)

弾力性:サービスを提供する能力を自由に「スケールアップまたはスケールダウン」できる能力です。


スケーラビリティ:比喩的に言えば、「スケールアップ」とは、増加する要求に対応するために個人の力を高めることであり、「スケールアウト」とは、増加する要求に対応するためにチームを構築することです。

弾力性:映画業界のさまざまなニーズを満たすために、体重を増減する映画俳優の直喩を使用します。

_

于 2014-04-07T11:49:44.093 に答える
25

通常、誰かがプラットフォームまたはアーキテクチャスケールと言う場合、ハードウェア コストは需要に応じて直線的に増加することを意味します。たとえば、1 台のサーバーで 50 人のユーザーを処理できる場合、2 台のサーバーで 100 人のユーザーを処理でき、10 台のサーバーで 500 人のユーザーを処理できます。1,000 ユーザーごとに 2 倍のサーバーが必要な場合、ユーザー数が増えるとすぐに資金が不足するため、設計はスケーリングしないと言えます。

弾力性は、アーキテクチャがワークロードにリアルタイムでどれだけ適応できるかを表すために使用されます。たとえば、サイトに 1 時間ごとに 1 人のユーザーがログオンしている場合、これを処理するために必要なサーバーは 1 つだけです。しかし、突然 50,000 人のユーザーが一度にログオンした場合、この負荷を処理するために新しい Web サーバーをその場ですばやく (場合によっては自動的に) アーキテクチャでプロビジョニングできるでしょうか? もしそうなら、あなたのデザインは伸縮性があると言えます。

于 2012-03-06T22:04:51.953 に答える
1

弾力性は、サービスまたはアプリケーションの短期的な要件とその変動に関連していますが、スケーラビリティは長期的なニーズをサポートします。

于 2015-09-05T18:36:08.870 に答える
0

これらの概念の私の限られた理解から、例:

5 つのワーク ユニットを実行する 5 台のコンピューターのシステムがあるとします。さらに 1 つのワーク ユニットを実行する必要がある場合は、もう 1 台のコンピューターを使用する必要があります。これはスケーラブルなシステムですが、伸縮自在ではありません。誰かがその別のコンピューターを取りに行かなければなりません。また、新しいコンピューターを購入し、余分な作業単位が不要になった場合、システムは冗長なリソースでスタックします。

ここで、同じシステムが、独自のコンピューターの代わりに、そのニーズに適したクラウド サービスを使用しているとしましょう。理想的には、ワークロードが 1 つのワーク ユニットである場合、クラウドはシステムに別の「コンピューティング ユニット」を提供し、ワークロードがダウンすると、クラウドはそのコンピューティング ユニットの提供を適切に停止します。これは、システムがスケーラブルで弾力性のある状況です。

于 2016-03-23T09:01:43.180 に答える