1. 序章

需要に応じてコンピューティングリソースの可用性を適応させることは、コンピューティングシナリオにおける歴史的な需要です。

最近では、コンピュータシステムにリソースを追加したり、コンピュータシステムからリソースを削除したりすることは大きな課題でした。 これらのプロセスには通常、サービスを停止してソフトウェア構成を変更し、ローカルサーバーのハードウェアを交換することが含まれていました。

インターネット、クラウドコンピューティング、および仮想化の出現により、利用可能なリソースを需要に適応させるプロセスは単純になり、さらには自動化されました。 具体的には、 X-as-a-Serviceパラダイムは、これらのプロセスに取り組むための複数の新機能をもたらします。

このようにして、スケーラビリティと弾力性の概念が現れ、時間の経過とともに変化しました。 単純なローカルソフトウェアとハードウェアの調整から、リソースの増減は、さまざまな戦略とプロトコルでそれ自体が研究分野になりました。

このチュートリアルでは、スケーラビリティと弾力性の概念を学習します。 最初に、スケーラビリティについて特に学びます。 次に、弾力性が正確に何を意味するのかを理解します。 最後に、体系的な要約で両方のプロセスを比較します。

2. スケーラビリティ

つまり、スケーラビリティは、時間の経過とともに需要(負荷)が増加したときに応答するシステムの機能で構成されます。 さらに、スケーラブルなシステムは、提供されるサービスを中断することなく、増大するワークロードに対処する必要があります。

したがって、最初に、スケーラビリティをコンピューティングシステムの特性として理解し、特定のシステムの増加するワークロードパターンに基づいて将来の需要を満たすことができます。

スケーラビリティは定義上増加する需要を処理しますが、システムのワークロードは近い将来減少する可能性があります。 このように、スケーリングでは、システムで使用可能なリソースを削減するためのプロセスも考慮されます。

ただし、スケーラビリティは常に将来を見据えていることを強調することは重要です。 これは、需要予測に基づいたリソース不足に悩まされるシステムを回避することを目的としています。

このように、次のサブセクションでは、システムのスケーラビリティに関連する特性とプロセスについて説明します。

2.1. 垂直および水平スケーリング

コンピューティングシステムにリソースを追加(または削除)する方法は2つあります。コンピューティングノードのリソースの合計量を変更する方法と、コンピューターノードの数を変更する方法です。

特定のコンピューティングノードの利用可能なリソースの変更に取り組むときは、垂直スケーリングを実行します。 垂直スケーリングには、2つの特定のプロセスが含まれます。

  • 拡大する:コンピューティングシステムの特定のノードに、メモリ、ストレージ、ネットワークカード、プロセッシングコアなどのコンピューティングリソースを追加します
  • スケールダウン:コンピューティングシステムの特定のノードからコンピューティングリソースを削除します

次の画像は、単一のコンピューティングノードを考慮したプロセスのスケールアップとスケールダウンの例を示しています。

一方、使用可能なコンピューティングノードの数の変更は、水平スケーリングで構成されます。 また、次の2つのプロセスが含まれます。

  • 規格外:増加する需要に対処するために、コンピュータシステムに新しいコンピューティングノードを追加します
  • スケールイン:コンピュータシステムからコンピューティングノードを削除して、リソースを保存またはリダイレクトします

次の画像は、マルチノードコンピューティングシステムでの単純なスケールアウトとプロセスの様子を示しています。

2.2. スケーラビリティドメイン

負荷スケーラビリティと呼ばれるコンピューティングリソースのスケーラビリティに主に焦点を当てていますが、スケーラビリティプロセスが適切に適合する他のコンテキストがあります。 例を以下に示します。

  • 不均一なスケーラビリティ:複数の異なるベンダーのノードとコンポーネントを採用するコンピューティングシステムの能力を表します
  • 世代のスケーラビリティ:コンピューティングシステムで古いコンポーネントを前世代の他のコンポーネントに置き換える可能性を表します
  • 管理スケーラビリティ:特定のコンピューティングシステムを使用する顧客の増加に対応
  • 機能のスケーラビリティ:要求に対処するコンピューティングシステムの機能と、ますます多くの新機能の実装で構成されています

3. 弾性

一言で言えば、弾力性は、コンピューティングシステムのワークロードの変化に取り組む能力で構成されています。 

スケーラビリティの背後にある中心的な考え方は、瞬間的な需要に対処するために十分なリソースをコンピューティングシステムに提供することです。 ワークロードが増加すると、より多くのリソースがシステムに解放されます。 逆に、ワークロードが減少すると、リソースはシステムからすぐに削除されます。

技術的には、エラスティックシステムは、スケーラビリティのコンテキストで示されているのと同じプロセスを実行します。垂直スケーリング(スケールアップおよびスケールダウン)および水平スケーリング(スケールアウトおよびスケールイン)

ただし、同じプロセスを実行することは、同じ目的を持つことを意味するものではありません。 スケーラビリティは、システムの一般的な動作と平均的なワークロードに焦点を当て、中期的な将来の需要を予測しようとします。

次に、弾力性はシステムの現在のワークロードで機能し、いくつかのスケーリングプロセスを実行して、たとえば、時間通りのイベントや予期しないイベントを処理します。 これらのイベントは、システムの平均ワークロードを考慮すると外れ値であり、通常は短期間で発生します。

たとえば、Xの平均アクセス数を持つオンラインショップを考えてみましょう。 このお店は商品を大売り出ししています。 販売を開始する前に、マネージャーは平均の2倍のトラフィックを予測し、システムをスケーリングします。

しかし、大セールは大成功を収め、ショップにアクセスする人々は平均の4倍のトラフィックを生み出しました。 ショップシステムは弾力性があるため、この予期しないトラフィックを実現するためにいくつかのスケーリングプロセスがトリガーされ、トラフィックの変動に応じてリソースが自動的に増減します。

次の図は、前に示した例を示しています。

3.1. オーバープロビジョニングとアンダープロビジョニング

弾力性は、システムのニーズをリアルタイムまたは非常に短期的に一致させることにより、リソースの不足と浪費の両方を回避することを目的としています。

ただし、予期しない要求に対処することは大きな課題です。 弾性システムでは、2つの関連する問題が発生する可能性があります。 オーバープロビジョニングとアンダープロビジョニング.

システムが現在のワークロードを処理するために必要以上のリソースを取得する場合、システムはオーバープロビジョニングシナリオに関与します。したがって、これらのリソースが従量制モデルで取得される場合、無駄になります。それらは実質的な経済的損失をもたらす可能性があります。

逆に、システムが必要以上に少ないリソースを取得すると、プロビジョニング不足のシナリオが発生します。 したがって、システムが過負荷になり、サービスの品質が低下し、新しい顧客への対応を拒否することさえあります。 それは最終的にも経済的損失をもたらす可能性があります。

したがって、エラスティックシステムを調整して、プロビジョニングの超過やプロビジョニング不足の状況を回避するために、可能な限り最善の決定を下すことが重要です。

4. 体系的な要約

クラウドコンピューティングと仮想化テクノロジーの出現により、顧客に高品質のサービスとエクスペリエンスを提供するコンピューティングシステムを維持する方法に新たな地平が開かれました。

これらのパラダイムとテクノロジーの柔軟性により、マネージャーと開発者は、現在および将来のシステムのワークロード要求を満たすための戦略を作成できました。

これらの戦略は、本質的にシステムのスケーラビリティと弾力性に関連しています。

要約すると、スケーラビリティは、継続的に増加するワークロードを考慮して、サービスの期待される動作と品質を満たすための戦略を表します。 したがって、スケーラビリティは通常、システムの中長期的な保守戦略に関連しています。

弾力性はまた、サービス品質を長期にわたって維持することを目的としています。 ただし、ワークロードが予期せず増加または減少する勢いのあるシナリオに対処するため、これらの一時的な要件を満たすようにシステムのリソースを即座に調整します。

次の表は、スケーラビリティと弾力性のいくつかの関連する側面を示し、比較しています。

5. 結論

このチュートリアルでは、コンピューティングシステムのスケーラビリティと弾力性について学習しました。 最初に、スケーラビリティ、その特性、および最も関連性の高いプロセスについて検討しました。 そこで、弾力性の概念を調べました。 最後に、スケーラビリティと弾力性を要約して確認および比較しました。

スケーラビリティと弾力性の両方が、コンピューティングシステムにとって間違いなく改善されていると結論付けることができます。 スケーラブルで弾力性のあるシステムは、さまざまなシナリオで正常に動作し、エンドユーザーに高品質のサービスと優れたエクスペリエンスを提供します。