シアトルで開催されたDockerCon 2016では、コンテナオーケストレーションを提供するDocker Swarmとの統合を含む、Docker Engineの最新の1.12ベータバージョンが発表された。さらなる発表として、Docker for Mac、Docker for Windowsがパブリックベータになり、Docker for AWS、Docker for Azureのプライベートベータが開始され、複数コンテナのアプリをリリース、デプロイするために必要となる全ての成果物をビルドするためのJSONベースのオープンなファイルフォーマットである実験的な"Distributed Application Bundle (DAB)"がリリースされ、新しいDocker StoreのプライベートベータとDocker DatacenterのAWS Quick Start/Azure Marketplaceテンプレートが公開された。
7月にリリースされる計画となっているDockerの最新リリースであるバージョン1.12は、Dockerの「組み込み」のエクスペリエンスの一環としてコンテナのオーケストレーションを可能にする、Docker SwarmのDocker Engineへの統合を売りにする予定だ。Docker社の創業者兼CTOのSolomon Hykes氏は、Dockerチームは、このさらなる機能を追加することで、Docker Engineがオーケストレーションの構成要素になり、「その上で複数コンテナの分散アプリケーションが動作する、自己組織化し自己復旧するマシンのプール」を形成するエンジン向けのモデルを作り出すと信じている、と述べた。
オーケストレーションは、現在、Docker以前のコンテナ化と同じ段階にいます。オーケストレーションを構築するために大勢の専門家を必要とするか、または、自分をモノリシックなプラットフォームに閉じ込め、サプライヤの選択肢を大幅に減らすことになります。3年前、我々は、ロックインなしで非専門家がコンテナ化を使えるようにすることで、コンテナ化を主流にしました。我々は、オーケストレーションに対して同じことをする時が来た、と考えています。
Docker 1.12の設計は、4つの原則を基にしている。
- 単純ながら強力 - オーケストレーションはモダンな分散アプリケーションの中心部である。「オーケストレーションは非常に中心的なので、我々は中核のDocker Engineにオーケストレーションをシームレスに組み込んだ。」
- 回復性 - マシンには絶えず障害が発生する。モダンなシステムは、こういった障害が定期的に発生することを予期し、アプリケーションのダウンタイムなしに適応すべきである。
- セキュア - セキュリティはデフォルトであるべきである。証明書生成やPKIの理解しなければならないことといった、強力なセキュリティを妨げる障害を取り除くべきである。しかし、高度なユーザは、引き続き証明書の署名や発行のあらゆる側面を制御、監査できるべきである。
- オプション機能と後方互換性 - 全ての新機能はオプションであり、使わなければ (メモリ、CPUの) オーバーヘッドはない。
この機能をサポートするために、Docker EngineのRemote APIに、ServiceやNodeといった新しいAPIオブジェクトが追加されており、KubernetesやCloud Foundryといった既存のオーケストレーションシステムと似た用語を使っている。Docker社のCEOであるBen Golub氏は、バージョン1.12でこの新機能が全てのDocker Engineに統合されるが、APIの後方互換性を維持するために、"Swarmモード"機能はデフォルトでは無効化される予定だ、と述べた。
Docker Engineにおけるオーケストレーションは、ユーザがDocker Engine上に構築されている任意のサードパーティーのオーケストレータを使い続けられるようにする、我々のプラットフォームの同梱されているが交換可能なアプローチに合致しています。
Hykes氏は、Docker for Mac、Docker for Windowsのベータがパブリックベータになり、現在入手可能なダウンロードにDocker 1.12のベータバージョンが含まれていることを発表した。Docker for Mac、Docker for Windowsは、「Mac、Windows上のシームレスなDocker開発環境」を提供することを目標としている。主な機能は、(1) VirtualBoxの代わりに各プラットフォームに組み込まれているハイパーバイザを使うことによる、より高速でより信頼性の高いネイティブ開発環境、(2) ファイル変更時にDocker Engineに自動的に通知しコンテナ内でそのファイルを更新するためのボリュームサポートを改善することによる、コンテナ内のデバッグと開発、(3) Docker for Mac、Docker for WindowsがVPNと効率的に連携できるようにする、ネイティブのネットワーキングである。
また、AWS、Azure上でDockerをインストール、構成、保守するための効率的な方法を提供する「クラウドでのアプリケーションの構築、アセンブル、リリースのための、デプロイが簡単な統合環境」である、Docker for AWS、Docker for Azureのベータも発表された。Docker for AWS、Docker for Azureの目標は、(1) 非互換性やロックインの危険性なしにチームが開発者のノートPCからDockerのステージング環境、本番環境にシームレスにアプリを移動できるようにする、標準的なDockerプラットフォームをデプロイする、(2) Dockerがホスト環境のネイティブ機能を活用し馴染みのあるインタフェースを管理者に公開するようにするための、基礎となるインフラと深く統合する、(3) パブリッククラウドにデプロイされている関連するハードウェア、OS、インフラで最新バージョンのDockerを利用可能にし、あるバージョンのDockerから次のバージョンへの「確かなアップグレードパス」を提供するようにすることである。
また、Golub氏は、既存の発表に加えて、複数コンテナのアプリをリリース、デプロイするために必要となる全ての成果物をビルド、パッケージングするためのJSONベースのオープンなファイルフォーマットである、実験的な"Distributed Application Bundle (DAB)"のリリースを紹介した。DABには、アプリケーションを実行するために必要となる全てのサービスの記述が含まれており、使うDockerイメージ、公開するポート、サービスをリンクするために使われるネットワークが含まれている。
DABは、デプロイを安定して繰り返し可能なものにすることに加えて、複雑なアプリを構成する多数の個別のサービスを作成する退屈さを取り除きます。これによって、DABは、Docker 1.12で導入されたサービスの概念上の便利な抽象化になります。
信頼できる検証済みの「Docker化された」ソフトウェアのためのマーケットプレイスを提供することを目標としている、新しいDocker Storeのプライベートベータが開始された。Docker Storeは、無料、オープンソース、商用のソフトウェアを扱う予定である。Docker Storeの目標は、(1) 信頼できる「エンタープライズ対応の」コンテンツを発行、配布するための、ISV向けのスケーラブルなセルフサービスのシステムを提供する、(2) セキュリティスキャン、コンポーネントのインベントリ (一覧)、オープンソースライセンスの使用、イメージ構築におけるベストプラクティスの利用といった、ソフトウェア品質を検証する発行プロセスを提供する、(3) 信頼できる検証済みの発行者からの、Dockerイメージとしてパッケージングされた商用サポートされる準拠したソフトウェアを、エンタープライズ ユーザに提供する、(4) 分類などの検索、閲覧機能を提供することである。
Docker Storeでの我々の目標は、Dockerユーザとエコシステムのパートナーを引き合わせるために設計されています。
行われた最後の発表は、「わずか数クリックでの本番環境向けの可用性の高いDocker Datacenterのクラウドへのデプロイ」を提供することを目標としている、Docker DatacenterのAWS Quick Start/Azure Marketplaceテンプレートだった。「パブリッククラウドインフラでのエンタープライズContainer-as-a-Service (CaaS、サービスとしてのコンテナ) Docker環境のデプロイをかつてないほどに簡単にする」ために、Docker DatacenterのAWS Quick StartはCloudFormationテンプレートを利用し、Azure Marketplaceは事前構築済みのテンプレートを利用している。Docker Datacenterには、Docker Universal Control Plane、Docker Trusted Registry (DTR)、CS Docker Engineが含まれており、組織のアプリケーションSLAに合った商用サポートとサブスクリプションを備えている。
DockerCon 2016では、Dockerの運用面への集中は明らかであった。メディアランチで、Golub氏は、カンファレンス参加者の約25%は運用/システム管理機能に関連する役職名を持っていた、と述べた。Golub氏は、組織へのコンテナの導入によって「運用作業が変わる可能性がある」が、デプロイ単位のコンテナとしての標準化によって、多様なアプリケーションパッケージングフォーマットを扱う複雑さが取り除かれるはずであり、その結果、大規模にデプロイされるアプリケーションの理解、セキュリティ保護、管理がより簡単になる、と述べた。
Golub氏は、「過去15年に書かれたあらゆるアプリケーションはコンテナ化可能である」と提案したが、そうすることが常に賢明なわけではない、と強調した。Golub氏は、モノリシックなアプリケーション全体をコンテナ化し、それからそれを個別のコンテナ内で動作するマイクロサービス型のアプリケーションに体系的に分解することで、Dockerを使った旅を始めている何社かのエンタープライズの話を共有した。Golub氏は、Dockerは「漸進的な革命」を起こすことを目標としており、組織は新旧のアプリケーションのデプロイ時に「中間で一致させる」ことを目標にすべきである、と述べた。
DockerCon 2016のさらなる情報は、カンファレンスのWebサイトと、Docker Blogの"dockercon"トピックにある。
Rate this Article
- Editor Review
- Chief Editor Action