Docker RegistryをP2Pでスケーラブルに再構築した「Kraken」、Uberがオープンソースで公開

2019年3月7日

Dockerイメージを保存し、公開し、再利用を可能にするのがDocker Registryの働きです。ソフトウェアを軽量にパッケージングし、簡単に再利用できるDockerの便利さを支えています。

しかしこの単純な中央データベース方式を基盤としたレジストリは、多数のデベロッパーがDockerを用いて開発を行う環境では、たとえキャッシュやシャーディングを駆使したとしてもスケーラビリティの問題が発生し、ボトルネックになってしまうとUberは指摘しています。実際に同社はそれに悩まされていたそうです。

そこで同社はDocker Registryをスケーラブルにするため、Peer-to-Peerアーキテクチャで再構築した「Kraken」を開発、オープンソースで公開しました。

fig

同社のブログに投稿された記事「Introducing Kraken, an Open Source Peer-to-Peer Docker Registry」では、Krakenの特徴を次のように紹介しています。

When developing Kraken, we explored multiple design choices along the way to end up with a P2P architecture. Kraken uses a P2P protocol tailored to a data center network environment and improves microservice lifecycle management at the enterprise level.

Krakenの開発に当たっては、最終的にP2Pアーキテクチャへ至るまでに設計においていくつかの選択肢がありました。結局、Krakenはデータセンターのネットワーク環境に合わせたP2Pプロトコルを用いることとし、エンタープライズレベルでマイクロサービスのライフサイクル管理を改善しています。

Kraken supports pluggable storage options, and instead of managing data blobs, Kraken plugs into reliable blob storage options like S3, HDFS, or another registry. The storage interface is simple, and new options are easy to add.

Krakenはプラグイン可能なストレージオプションをサポートしており、自身でデータ用Blobを管理する代わりに、Amazon S3やHDFS、そのほかのレジストリといった高信頼のストレージオプションを用います。

Krakenはクラスタ間でルールベースの非同期レプリケーションを行い、自己修復能力を備えた、メンテナンスの容易なシステム。クラスタあたり少なくとも8000ホストをサポート。

Uber社内ではすでにKrakenが稼働しており、1日あたり100万Blob(Binary Large Object)がやり取りされ、ピーク時には100MBから1GBまでの2万個のBlobを30秒以内に配信しているとのこと。

Krakenを導入した2018年以来、Uber社内におけるDocker Registryのボトルネック問題は解消されたそうです。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本