クラウドコンピューティングや通常のスケーラブルな高可用アプリケーションで作業する場合、通常はスケールアウトとスケールアップと呼ばれる二つの用語を聞くことがあります。 私は基本をカバーし、開発者とIT専門家のためのより明確に提供することを考えました。
スケーラビリティとは何ですか?
スケーラビリティとは、増加する作業量を処理するシステム、ネットワーク、またはプロセスの能力、またはその成長に対応するために拡大される可能性 たとえば、リソース(通常はハードウェア)が追加されたときに負荷が増加したときに総出力を増やすことができる場合、システムはスケーラブルであると考
ハードウェアを追加した後、追加された容量に比例してパフォーマンスが向上するシステムは、スケーラブルなシステムと言われています。
これは、以下のようなシステムに適用されます :
- 大規模なユーザーグループを持ち、頻繁に成長している商用ウェブサイトやWebアプリケーション、
- またはいくつかの知名度の高いイベントやキャンペーンのために多数のユーザーにサービスを提供する必要がある。
- または、特定の地域またはグローバルな大規模なユーザーにストリーミングを提供するために、即時処理機能が必要なストリーミングイベント。
- または、特定のジョブに対して通常より高い計算要件を必要とする即時作業処理またはデータ処理。
スケーラビリティは、次のようなさまざまな次元で測定できます:
- 管理スケーラビリティ:単一の分散システムを簡単に共有する組織やユーザーの増加のための能力。
- 機能拡張性:最小限の労力で新しい機能を追加することによってシステムを強化する能力。
- 地理的スケーラビリティ:ローカルエリアの集中からより分散した地理的パターンへの拡張に関係なく、パフォーマンス、有用性、または使いやすさを維持
- : より重いまたはより軽い負荷または入力の数に対応するために、分散システムがリソースプールを簡単に拡張および縮小する機能。 あるいは、変化する負荷に対応するために、システムまたは構成要素を変更、追加、または削除することができる容易さ。
- 世代のスケーラビリティ:新しい世代のコンポーネントを使用してシステムをスケールアップする能力。 これにより、異種のスケーラビリティは、異なるベンダーのコンポーネントを使用する機能です。
スケールアウト/イン/水平スケーリング:
水平にスケールする(またはスケールアウト/イン)とは、分散ソフトウェアアプリケーションに新しいコンピュータを追加するなど、システムにノードを追加する(ま
長所:
- 負荷は複数のサーバーに分散されます
- 一つのサーバーがダウンしても、要求や負荷を処理するサーバーがあります。
- 使用パターンや負荷に応じて、より多くのサーバーを追加したり、削減したりすることができます。
- 可用性の高いwebアプリケーションやバッチ処理操作に最適です。
:
- サポートするには、追加のハードウェア/サーバーが必要です。 これは増加の下部組織および維持費を増加する。
- OSまたは必要なライセンスソフトウェアの追加ライセンスを購入する必要があります.
Scale-Up/Down/Vertical Scaling:
垂直にスケール(またはスケールアップ/ダウン)するには、システム内の単一ノードにリソースを追加(またはリソースを削除)することを意味します。
Pros
- CPU/RAM/ストレージを仮想的または物理的に増加させる可能性があります。
- 単一システムは行われる付加的なハードウェア改善の必要性を処理するすべてのあなたのデータ/仕事に役立つことができます。
- アップグレードのための最小限のコスト
短所
- 物理的または事実上限界に達している場合、他のオプションはありません。
- クラッシュは、ビジネス処理ジョブに停止を引き起こす可能性があります。
スケーラビリティの両方のアプローチについて詳細に説明しました。 最近では、Amazon AWS/Microsoft Azureなどのクラウドコンピューティングプラットフォームの高可用性 クラウド環境でスケールアウトまたはスケールアップするための柔軟な方法がたくさんあり、それに応じて支払うことができれば、実質的に無制限のリソー