分散システム

分散システムは、ネットワーク上で接続された自立型のコンピューティング要素の集合であり、ユーザーから見ると1つの統一されたシステムとして見えます。 一般的にはノードと言われるこれらの要素は、ハードウェアデバイス(例: コンピューターや携帯電話)やソフトウェアのプロセスです。 ノードは共通の目標を達成するためにプログラムされており、連携するためにネットワーク上でメッセージを交換します。

解決すべき問題はなんですか

現代の多くのアプリケーションは、運用するのにスーパーコンピューターが必要になるほど大規模です。 GmailやNetflixを考えてみて下さい。 単一のコンピューターでは、アプリケーション全体を提供するのに十分な性能がありません。 複数のコンピューターを接続することで、計算能力はほとんど無制限になります。 分散コンピューティングなしでは、今日、我々が頼りにしている多くのアプリケーションは実現できないでしょう。

従来、システムは垂直にスケールするものでした。 これは、個々のマシンにCPUやメモリを追加するときのことを指します。 垂直スケーリングには時間がかかり、ダウンタイムを必要とし、また、すぐに限界に達します。

どのように役に立つのでしょうか

分散システムは水平スケーリング(例えば、必要に応じてシステムにノードを追加すること)を可能にします。 これは自動化できるため、システムは急激なワークロードやリソース消費の増加に対応できるようになります。

分散システムでないシステムは、1台のマシンが故障するとシステム全体が故障するというリスクにさらされます。 分散システムは、いくつかのマシンがダウンしたとしても、システム全体としては同じ結果を返し続けるように設計することができます。