数値によるレート制限

Docker の 持続可能性への移行の重要な部分として、Docker Hub の最も重いユーザーに徐々に制限 docker pulls を展開しています。 レート制限の実装が終わりに近づいているので、私たちの努力の背後にある事実と数字のいくつかを共有しようと思いました。 私たちの目標は、Dockerが長期的に持続可能になるようにすると同時に、アプリケーションを構築、共有、実行するための100%無料のツールを開発者に提供し続けることです。

この計画は8月に 発表 され、発効日は11月1日です。 また、「Hubでのダウンロードの約30%は、匿名ユーザーのわずか1%からのものです」と、次のグラフに示されています。

数値によるレート制限

これは、ごくわずかな割合の匿名の無料ユーザーがDocker Hub全体に与える劇的な影響を示しています。 ユーザーのわずか1%〜2%によるこの過剰な使用は、Dockerの持続不可能なモデルになるだけでなく、毎月Docker Hubを使用している1,130万人の開発者、CIサービス、およびその他のプラットフォームの他の98%〜99%のパフォーマンスを低下させます。 これらの開発者は、独自のコンテナー イメージの保存と共有、Docker 検証済み発行元および信頼できる Docker 公式イメージのライブラリからイメージをプルするために、毎月 136 億を超えるプルを Microsoft に依存しています。

大多数の開発者が生産性を維持できるようにするという目標に基づいて、匿名ユーザーと認証された無料ユーザーに対して、6時間のウィンドウでそれぞれ100または200プルの制限を設計しました。 開発者の毎日のワークフローのコンテキストでは、6 時間で 100 回のプルは、6 時間連続で平均 3.6 分ごとに発生します docker pull 。 これは個々の開発者にとっては十分すぎると考えましたが、CI/CD パイプラインや本番環境のコンテナー プラットフォームなど、高いプル レートを含む他のユース ケースでは、使用量を減らしたり、 有料プランに加入したりする可能性があります。

1か月の間に、1人の匿名開発者が(自動化の助けを借りて)最大12,000 docker pullsを作成できます。 認証することにより、その数は無料で24,000 docker pulls に増加します。 Docker コンテナー イメージのサイズは数MB から 1 GB をはるかに超えるものまでさまざまであるため、サイズではなくプルに重点を置くことで、開発者は予測可能性を得ることができます。 アプリケーションの構築中に、サイズではなく価値を気にすることなくイメージをプルできます。

これらの制限に基づいて、Docker Hub から毎日取得される 200 万を超える IP のうち、合計で約 40,000 個の IP を含むのは、1 日の一意の IP アドレスの 1.5% のみであると予想していました。 Docker Hubを使用している残りの98.5%のIPは、影響を受けずに継続できます—または、最も重いユーザーが減少するにつれてパフォーマンスが向上する可能性があります。

11 月 1 日が近づくにつれ、追加の事前通知を提供し、メールやブログ投稿では連絡が取れなかった開発者にも影響を軽減するロールアウト計画を作成しました。 影響を受けるすべての人の移行を容易にするために、いくつかの点を導入しました。

  • 11 月 1 日以降、すべての使用に完全に適用される前に猶予期間を設け、ロールアウトの早い段階で最もヘビーなユーザーのごく一部のみが制限されるようにしました。
  • 影響を受ける人口全体に施行を段階的に展開し、通信がDocker開発者に到達するための追加の機会を提供し、不注意による影響を最小限に抑える。そして
  • Docker Hubへの未知の依存の認識を高め、他の方法ではできなかったDocker IDのない開発者に到達するための、完全な適用の一時的な時間枠。

11 月 18 日水曜日に、匿名ユーザーと認証された無料ユーザーに対して、それぞれ 6 時間のウィンドウあたり 100 プルと 200 プルという新しい制限への段階的なロールアウトを完了する予定です。 その時点で、まだ制限に達していない人は誰でも、現在の使用量 docker pulls は影響を受けていないDocker Hubユーザーの98.5%にあると合理的に結論付けることができます。

持続可能な Docker の作成に向けてこの道を歩んできた中で、開発者から、一時的な完全適用ウィンドウが貴重であるという声を何度も聞いてきました。 それらは、Docker Hubへの未知の依存や、有料のお客様がまだ使用を認証していない領域を明らかにしました。 また、お客様と協力して、3秒に1回ダウンロードする暴走プロセスなど、無意識のうちに大量のダウンロードの一部を引き起こしていた問題を特定しました。 これに加えて、IP 許可リストや名前空間許可リストなどのニーズを持つ大企業、ISV、サービスプロバイダーをサポートするために、追加の有料オファリングを作成しました。

ソフトウェア コミュニティ全体から Docker に寄せられた信頼に深く感謝し、将来の優れたアプリケーションを構築し続けるお手伝いをすることを楽しみにしています。