Dockerが「Moby Project」を発表。すべてをコンテナで組み立てる世界を目指す。DockerCon 2017
テキサス州オースチンで開催されたDockerCon 2017。2日目の基調講演でDocker創業者のSolomon Hykes氏は「創業以来、もっとも重要なプロジェクト」と前置きし、「Moby Project」を発表しました。
Moby Projectとは、ある目的のためのコンテナシステムを、車輪の再発明をせずに組み立てることができるフレームワークだとHykes氏。
同氏はこのMoby Projectのもっとも重要な属性として、すべてがコンテナで組み立てられる世界であると説明しました。
Moby Projectではコンポーネントの組み合わせでシステム構築が可能
基調講演ではMoby Projectによって何が実現できるのか例がいくつか紹介されましたが、分りやすいと思われるのが、Redis専用サーバをMoby Projectをベースに組み立てることを想定した例です。
この例では、Linuxの機能を提供するLinuxKit、コンテナランタイムであるContainerd、そしてコンテナにパッケージされたRedisを組み合わせることで、ブートするとすぐにRedisが起動するシステムが構築されています。
そしてMoby Projectで構築されるシステムはポータブルであるため、そのままさまざまな環境で稼働させることが可能です。
もう少し複雑なシステムとして、継続的インテグレーション/継続的デリバリ(CI/CD)のシステムをMoby Projectで構築した例も紹介されています。
ここでは一番下のレイヤにインフラを抽象化し自動化する機能を備えたInfraKitがあり、その上にLinuxKit、その上にコンテナランタイムのContainerdが載り、CI/CDを実現するためのJavaやJenkinsなどのコンテナ化されたアプリケーションが実行される、という構造になっています。
そしてMoby Projectでは、コンポーネントを自由に入れ替えられることも特長だと説明されています。次の例では、LinuxKitをDebianに、InfraKitがTeraformに入れ替えられています。
今後はDockerもMoby Projectの産物になる
例で見てきたように、Moby Projectとはシステムをコンテナをベースとしたコンポーネントで構築できることを目指すオープンソースプロジェクトであり、ユーザーは自由にコンポーネントを選んで組み合わせることができる、という特長を備えていることが分ります。
そして今後、ソフトウェアプロダクトとしてのDockerも、このMoby Projectベースのさまざまなコンポーネント、例えばContainerdやLinuxKitなどを組み合わせて作られたシステムになっていくのだとHykes氏は説明しています。
DockerのGitHubのリポジトリ名がMobyに変更されたのは、これを受けてのことなのです。
ただしDockerユーザーからは、内部がMoby Projectによってコンポーネント化されたとしても、いままでと変わることはありません。一方、システム構築をするエンジニアにとっては、Dockerに縛られずにさまざまなコンポーネントを組み合わせることができるようになるとされています。
なぜDockerはMoby Projectを立ち上げ、この方向へ進もうとしているのでしょうか。
それは、これからはさまざまな特定用途にコンテナが使われていくときに、苦労せずとも特定用途向けのコンテナシステムを簡単に構築できることが、コンテナがメインストリームとして広く使われていくために必要だからだとHykes氏は説明しています。
参考
- 【参考訳】Mobyプロジェクトのご紹介(dockercon17での発表) - Qiita
- GitHubの docker/docker は moby/moby になりました。 | Developers.IO
≪前の記事
[速報]「Amazon Redshift Spectrum」発表。Amazon S3にデータを保存したまま複雑なクエリを高速で実行可能に。AWS Summit 2017 San Francisco