P2Pで配信の遅延と闘う

どんな巨大なタスクでも、より多くの手助けがあればより速く進めることができます。これは大規模なアプリケーションを何百ものノードに展開するために、大規模な組織が求めるソリューションです。他の人の手を借りれば、作業が軽快に進みます。 

JFrogは、巨大なK8sクラスターランタイム環境にコンテンツを効率的かつ大規模に配信するために、ピアツーピア(P2P)配信を導入しました。Enterprise+ユーザー向けに提供されているこの配信方法は、1台の配信サーバーを使い切ることで発生するダウンロード待ち時間の課題を克服するのに役立ちます。

 

DockerイメージをKubernetesへ大規模にデプロイする

多くの大企業は、コンテナ化されたマイクロサービスやKubernetesを活用してソフトウェアの配信速度を向上させるために、DevOpsに注力しています。生成されたDockerイメージは非常に大きくなる可能性があり、一般的には数百のノードからなるクラスタに提供されます。アプリケーションに不可欠なコンテナによって使用される、これらのベースイメージまたはレイヤーはボリュームが大きくなりがちなため、ダウンロードをいかに効率よく行うかを考える必要があります。では新しいイメージやパッケージを同時にダウンロードして更新する必要がある何百ものノードに、ノードのリソースを使い果たしたり遅延を発生させたりすることなく、どのようにして更新プログラムを配信するのでしょうか?

JFrog P2P Distributionは大規模なDockerイメージやパッケージを何百、何千ものローカルエンドポイントに短時間で配布し、高度に安全な環境で同時に実行するのに最適です。P2Pソリューションはダウンロードバーストのスケーラビリティを劇的に向上させ、レイテンシを減らした高速配布を可能にすることで、クライアントへのディストリビューション速度を向上させます。

ピアはクライアントマシン上で実行されるローカルプロセスとして、Artifactory EdgeノードとDockerクライアントの間に設置されます。ピアはDockerイメージとレイヤーの断片を転送するために連携して動作します。これによりバーストがフラット化され、Edgeノードの需要が減り、イメージの転送が速くなることでネットワークがより効率的に利用されるようになります。

安定した応答時間を実現するためにレイテンシを削減

P2Pアーキテクチャーを使用すると、リポジトリマネージャサーバーの負荷を軽減しながら同時ダウンロード数を増やすことができます。下のダウンロード時間とピアの数の曲線を見ると、P2Pを使用した場合はグラフ全体で曲線が平坦になり、ピアの数が増えてもダウンロード時間は一定になります。

 

P2Pアーキテクチャー

P2Pアーキテクチャーは、ArtifactoryとDockerまたはHTTPクライアントの間に配置された相互接続されたピアのネットワークに基づいています。P2Pトポロジーはクライアントがプルまたはプッシュ要求を送信するたびにArtifactoryに直接ダウンロード要求を実行する必要がある、従来のクライアント/サーバーファイルダウンロードプロセスに代わるものとして機能します。P2P アーキテクチャーは以下の主要コンポーネントで構成されています。

  • トラッカー (Tracker): ピアにある利用可能なアーティファクトの広告と追跡を担当するArtifactoryサービスで、最初のアーティファクト・シーダーとしての役割を果たす
  • ピア (Peer): すべてのホスト上に配置され、他のピアと相互接続されている専用のJFrogスタンドアロン・アプリケーション。ピアはアーティファクトをダウンロードしたり、ダウンロードしたアーティファクトが利用可能かどうかをトラッカーに通知したりするために、トラッカーと通信する
  • P2P Swarm: クラスタ内でアーティファクトを共有するための分散型ネットワークを形成するピアの集合体
  • クライアント (Client): 相手とのやりとりに使用するソフトウェアクライアント。例えば、DockerやHTTPクライアント

P2Pアーティファクトのダウンロード・ワークフロー

P2Pでは、ユーザーはJFrogピアネットワークに接続されたピアを介して、アーティファクトとパッケージをダウンロードすることができます。ピアはパッケージの供給者と消費者の両方の役割を果たし、ネットワーク内のメンバーピアから直接パッケージをダウンロードすることで、Artifactoryノードの負荷を軽減します。P2Pアーティファクトダウンロードプロセスには、以下のワークフローが含まれます。

 

 

  1. クライアントはローカルピアにDockerイメージのダウンロードを要求します。
  2. ピアはArtifactory Edgeに接続し、初期シーダーとして機能するトラッカー内に登録されます。ダウンロード通信はすべて、Artifactoryが作成した証明書チェーンを使用してSSLで暗号化されています。トラッカーはローカルピアがDockerイメージをダウンロードできるピアのリストとDockerイメージのメタデータ(チェックサム)を送信します。次にローカルピアは他のピアにDockerイメージの一部を要求します。 
  3. ローカルピアがクライアントに代わってファイルをダウンロードし、ファイルを組み立て、チェックサムを検証します。次にピアは定期的に保存されているファイルの断片に関する情報をArtifactoryを提供するトラッカーに知らせます。トラッカーはこの情報を保存します。
  4. あるピアにキャッシュされたファイルは、Artifactory のユーザー権限に従って、他のピアが同時にダウンロードすることができます。複数のピアがファイルのダウンロード・プロセスを提供し、Artifactoryからネットワーク負荷を分散させ、高速かつ効率的な転送が行われます。

デプロイメントの手助けをする

Continuous deliveryはデプロイメントの障害が取り除かれたときに成功します。JFrogのピアツーピア配信は、ワークロードを分散してバースト遅延を排除することで、大規模なインフラストラクチャーへの配信の課題を克服するのに役立ちます。

P2P配信はグローバル企業であっても、急成長中の新興企業であっても、事業を無限に拡大することができるJFrogプラットフォームの最新テクノロジーです。Enterprise+の無料トライアルでJFrogプラットフォームをご自身でお試しください。