【参考訳】Mobyプロジェクトのご紹介(dockercon17での発表)

## 概要

4/18、dockercon17 の1日目の general session で、Docker から既存プロジェクトを移行する、新しい Moby プロジェクトの発表がありました。以下ブログ訳ですが、内容把握のための参考程度にお読みいただければと思います。図は省略していますので、原文をご覧ください。

- Introducing Moby Project: a new open-source project to advance the software containerization movement - Docker Blog
 - https://blog.docker.com/2017/04/introducing-the-moby-project/


## Moby プロジェクトのご紹介：ソフトウェアのコンテナ化・ムーブメントを推進するための新しいオープンソース・プロジェクト

4年前に、Docker がソフトウェア・コンテナを一般化（democratized；民主化）して以来、コンテナ化（containerization）に関連するエコシステム全体が成長しました。そして、明白な２つの成長段階に至るまでの時間を圧縮したのです。２つの段階とは、コンテナ・システムの発展を推進するためのモデルです。ユーザ・コミュニティに相応しい規模と必要性、そして、プロジェクトとエコシステムの貢献者（contributor）の成長に対しても同様です

Moby プロジェクトは新しいオープンソース・プロジェクトです。ソフトウエアのコンテナ化・ムーブメント（software containerization movement）を推進し、エコシステムがコンテナをメインストリーム（主流）にする支援をします。提供するのはコンテナを基盤としたシステムへ組み込む（assembling）ためのコンポーネントのライブラリとフレームワークであり、かつ、コンテナに熱心な方達（enthusiasts）全てに対して実験とアイディアを交換する場所なのです。

それでは、今日に至るまでの流れを振り返りましょう。2013 年から 2014 年にかけて、先駆者（開拓者）がコンテナを使い始めました。それと、モノリシック（一枚岩）なオープンソースのコード集合体（codebase）に共同で取り組みます。それが Docker や他のプロジェクトであり、ツールの成熟を支援しました。

（図：提供方式：オープンソース！）

そして 2015 年から 2016 年にかけ、コンテナはクラウド・ネイティブなアプリケーションで大規模に採用されました。この段階で、ユーザ・コミュニティは 1 万デプロイをサポートするまでになります。そして、それを支える数百ものエコシステム・プロジェクトと、数千人もの貢献者の皆さんです。この段階では、オープンなコンポーネントを基盤とする手法で、Docker 自身の提供方式（production model）を発展させていました。そのため、革新（innovation；イノベーション）と共同作業（collaboration；コラボレーション）という、両方の表面積を増やすことになりました。

Docker コンポーネントのプロジェクトが、それぞれ独立して次々と立ち上がりました。これはパートナー・エコシステムとユーザ・コミュニティを続々と成長する手助けとなりました。この時点で、Docker のコード集合体からコンポーネントを取り出すことで、抽出と迅速な革新を行いました。これにより、システム構築者は各コンテナシステムを自身で再利用できるようになったのです。それが [runc](https://github.com/opencontainers/runc)、[HyperKit](https://github.com/docker/hyperkit)、[VPNKit](https://github.com/docker/vpnkit)、[SwarmKit](https://github.com/docker/swarmkit)、[InfraKit](https://github.com/docker/infrakit)、[containerd](https://github.com/containerd/containerd) などです。

（図：提供方式：オープン・コンポーネント）

コンテナの潮流が最先端になるにつれ、2017 年に私たちが直面している１つの流れとは、コンテナがメインストリーム（主流）に向かっており、コンピューティング、サーバ、データセンタ、クラウド、デスクトップ、IoT（Internet of Things）やモバイルといった、あらゆる領域に展開しています。全ての産業（industry）とは、垂直的な市場、金融、ヘルスケア、政府、旅行、製造において。そして、あらゆるユースケース（利用例）とは、最近のウェブ・アプリケーション、伝統的なサーバ・アプリケーション、機械学習、産業用制御システム、ロボット工学。コンテナ・エコシステムに対する、多くの新しい参加者に共通しているのは、皆さん自身が専門的なシステムを構築し、特定のインフラや業界、あるいはユースケースを目標としています。

企業としての Docker は、私たちの革新実験（innovation lab）としてオープンソースを用い、エコシステム全体と協力しています。Docker の成功とは、コンテナ・エコシステム全体の成功に挑むことです。すなわち、エコシステムの成功こそが私たちの成功です。それゆえ、コンテナ・エコシステムの次の段階の成長を考え続けてきました。それは、コンテナを主流にするという約束を満たすべく、コンテナ・エコシステムの拡大を支援するのは、どのような提供モデル（プロダクション・モデル）なのかです。

昨年、私たちのお客さまから、Docker で Linux と様々なプラットフォームを 挟む質問が寄せられ始めました。それは mac や Windows デスクトップ、Window Server、クラウド・プラットフォームとして Amazon Web Services（AWS）、Microsoft Azure や Google Cloud Platform です。そして、私たちは各プラットフォーム向けに [多くの Docker エディション](https://blog.docker.com/2017/03/docker-enterprise-edition/) を提供しました。それぞれに特化したエディションの構築・提供は、比較的短時間・短期間。車輪の再発明をせず、スケーラブルな手法を使いました。つまり、私たちが新しい手法（アプローチ）が必要だったのは明白でした。私たちが必要だったのは、私たちのチームが協力するのは、コンポーネント上においてだけではなく、コンポーネントの組み立て（assemble；アセンブル）においてもです。この[アイディアは自動車産業](https://en.wikipedia.org/wiki/List_of_Volkswagen_Group_platforms) から取り入れたものです。部品（コンポーネント）の組み立て場は、全く違う車を作る場合も再利用されます。

（図：Docker 提供方式の拡大：コンポーネントを共有し **組み立てる**）

私たちはコンテナのエコシステムを次の段階、つまりコンテナをメインストリームにする最も良い方法として考えるのは、エコシステム・レベルにおける組み立て（assemble）を協力して取り組むことです。

（図：エコシステムを次の段階に進める時です…そのためにはコンポーネントと協力し、**一緒に組み立てる** こと）

この新しい段階の共同作業を行うため、今日、私たちは Moby （モビー）プロジェクトを発表します。これはソフトウエア・コンテナ化のムーブメントを推進するための、新しいオープンソース・プロジェクトです。たくさんのコンポーネント「レゴ・セット」（レゴのパーツ集）を提供し、様々なコンテナを基盤としたシステム上で組み立てられるフレームワークも提供します。そして、コンテナに熱心な方すべてに対する実験とアイディア交換の場所を提供します。Moby のことはコンテナ・システムにおける「レゴ・クラブ」（訳者注：レゴの会員グループ）とお考えください。

Moby を構成するのは、以下の通りです：

1. コンテナ化バックエンド・コンポーネントの **ライブラリ** （例：ローレベルのビルダ、ログ記録ファシリティ、ボリューム管理、ネットワーク機能、イメージ管理、containerd、SwarmKit 等々）
2. コンポーネントを標準的なコンテナ・プラットフォームで組み立てるための **フレームワーク** と、これらを組み立てるために、構築、テスト、アーティファクト（成果物）をデプロイするツール群
3. **Moby Origin** と呼ぶ、関連する組み立て部品（assembly；アセンブリ）。Docker コンテナ・プラットフォーム向けのオープンな基盤だけでなく、Moby ライブラリからの様々なコンポーネントを使うコンテナシステムや、あるいは他のプロジェクトからによるもの

Moby は自身でコンテナを基盤としたシステムを構築したいシステム構築者向け（system builders）に設計されています。Docker や他のコンテナ・プラットフォームを使うような、アプリケーション開発者向けではありません。Moby プロジェクトの参加者は、Docker が提供するコンポーネントのライブラリを選べます。あるいは、カスタマイズしたコンテナ・システムを作るために、コンポーネント全体と一致するあるいは組みあわせて "自身のコンポーネントを使用"(BYOC; bring your own components)し、コンテナとしてパッケージ化する方法も選べます。

Docker は Moby プロジェクトをオープンな R&D（研究開発）ラボとして使います。実験のためであり、新しいコンポーネントの開発のためであり、未来のコンテナ技術のエコシステムのために協力するためです。私たちの全てのオープンソース・コラボレーション（共同作業）は Moby プロジェクトに移行しました。

ソフトウエア・コンテナを主流にする支援のため、私たちのエコシステムの成長のため、私たちのユーザ・コミュニティがコンポーネント上で協力し、組み立てて、次のレベルに至る手助けとなるべく、どうかプロジェクトにご参加ください。

Moby [https://mobyproject.org/](https://mobyproject.org/) でコンテナを主流にしましょう。

## 原文

- Introducing Moby Project: a new open-source project to advance the software containerization movement - Docker Blog
 - https://blog.docker.com/2017/04/introducing-the-moby-project/