Articles

What is a Distributed System?

Posted on

Definition

分散システムは、分散コンピューティングとしても知られており、異なるマシン上に配置された複数のコンポーネントが、エンドユーザーには1つのまとまったシステムとして見えるように、通信や動作の調整を行うシステムです。

概要

分散システムを構成するマシンは、コンピュータ、物理サーバー、仮想マシン、コンテナなど、ネットワークに接続でき、ローカルメモリを持ち、メッセージを渡すことで通信できるあらゆるノードです。

  • 各マシンは独自のエンドユーザーを持ち、分散システムはリソースや通信サービスの共有を容易にします。
  • 分散システムは時に不明瞭な点もありますが、通常は次の3つの主要な特徴を持っています:すべてのコンポーネントが同時に実行される、グローバルクロックがない、すべてのコンポーネントが互いに独立して故障する。

    分散システムの利点と課題

    一般的にチームが分散システムの導入を決定する理由は次の3つです。

    • 水平方向のスケーラビリティ-コンピューティングは各ノードで独立して行われるため、必要に応じてノードや機能を追加することが容易で、一般的に安価です。
    • パフォーマンス-分散システムは、作業負荷を分割して複数のマシンに送ることができるため、非常に効率的です。

    しかし、分散システムに課題がないわけではありません。

    さらに、以下のような3つの課題があります。

    • スケジューリング-分散システムでは、どのジョブがいつ、どこで実行されるべきかを決定しなければなりません。
    • レイテンシー- システムが広範囲に分散しているほど、通信で発生するレイテンシーは大きくなります。

    How a Distributed System Works

    ハードウェアとソフトウェアのアーキテクチャは、分散システムを維持するために使用されます。

    Types of Distributed Systems

    分散システムは、一般的に次の4つの異なる基本アーキテクチャ モデルのいずれかに分類されます。

  • 3層-クライアントに関する情報は、アプリケーションの展開を容易にするために、クライアント上ではなく中間層に保存されます。
  • n-tier-アプリケーションやサーバーがネットワーク上の追加のエンタープライズ サービスにリクエストを転送する必要がある場合に一般的に使用されます。
  • Peer-to-peer-サービスの提供やリソースの管理に使用される追加のマシンはありません。
  • 分散システムの例

    分散システムには、電子銀行システム、多人数参加型オンラインゲーム、センサーネットワークなど、数え切れないほどの使用例があります。

    StackPathでは、コンテンツ配信ネットワークサービスを提供するために、特に大規模な分散システムを利用しています。 各PoP(Point of Presence)には、世界規模の分散システムを構成するノードが存在します。

    Distributed Systems at the edge

    StackPathのエッジコンピュートサービス、仮想マシン、コンテナを使えば、ユーザーは自分で分散システムを作ることができます。

    Key Takeaways

    • 分散システムは、ネットワークに接続でき、ローカルメモリを持ち、メッセージを渡して通信することができるあらゆるマシンで構成されます。
    • リクエストやワークロードを分散させることで、通常の単一システムよりもはるかに多くのリクエストやコンピュートジョブをサポートすることができます。
    • StackPathのエッジコンピューティングコンテナや仮想マシンを相互に接続することで、独自の超高速分散システムを構築することができます。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です