kernelテクノロジーを、コンテナ化により誰でも簡単にアクセス可能にしました。本日、コンテナオーケストレーションをリリースします。コンテナオーケストレーションは、コンテナをホスト一つに個別に展開することから、複雑なマルチコンテナアプリを複数のマシン上で展開するために必要となるものです。コンテナオーケストレーションにはインフラから独立している分散プラットフォームが必要です。アプリケーションが終了するまでオンラインの状態を保つことができ、ハードウェアの欠陥やソフトウェアのアップデートにも耐えられるものである必要があります。本日リリースするオーケストレーションは、3年前のコンテナ化と同じ段階にあります。選択肢は次の2つです。複雑なアドホックシステムをまとめるため、テクノロジーエキスパート部隊に頼るか、あるいは、多くのエキスパートがいる会社に頼って、ハードウェアやサービス、サポート、ソフトウェアなどすべてをその会社から買う限り、すべての面倒を見てもらうか、です。このような選択をしなければならない状態を、ロックインと呼びます。Dockerユーザは、どちらの選択肢も受け入れられないと言っています。ロックインされてしまうのではなく、誰もが使えるようなオーケストレーションのプラットフォームが必要なのでしょう。コンテナオーケストレーションはプラットフォームに構築されると、より簡単に実行できるようになる他、よりポータブルになり、セキュリティのよりしっかりした、回復力の高い、動作の速いものになります。1.12の使用を開始するにあたって、Dockerエンジンの核にマルチホストとマルチコンテナのオーケストレーションをより簡単にするための機能をいくつか追加しました。APIを使うことにより、swarmというDockerエンジンのグループ上でアプリを展開し、管理することができるようになります。1.12を使用してみれば、DockerのオーケストレーションにはDockerを使用するのが最も良いことが分かります。Dockerエンジンの核にシームレスに構築してしまうほど重要です。オーケストレーションへのアプローチの仕方は、次の、コンテナに関する方針に従っています:セットアップ不要、少しのシンプルなコンセプトだけを知れば良い、「ただ単に動く」というユーザ体験、です。・回復力が高い:マシンは欠陥を起こすものです。モダンシステムはこのような欠陥が定期的に起こることを想定し、ダウンタイムを引き起こすどのアプリケーションとも適合させないことが重要です。これが、欠陥ゼロデザインが必須な理由です。・セキュリティ:セキュリティはデフォルトである必要があります。強力なセキュリティに対する障害となるもの―PKIの理解が必要な証明書など-は取り除くべきです。アドバンスユーザにおいては、証明書のサインと発行のすべてのコントロール・監査を可能にしておく事が重要です。・オプション機能と下位互換性:ユーザが何百万といるので、バックワードでの互換性はDockerエンジンにとって必須です。すべての新機能はオプションですので、使用しないのであれば、メモリやcpuなどの負荷は必要はありません。Dockerエンジンのオーケストレーションは、私たちのプラットフォームの交換可能なバッテリーという手法と協調しているため、、ユーザはDockerエンジンに構築した第三者のオーケストレーターを使用し続けることができます。1.12でどのように機能するか見てみましょう。作成するところから始まります。initぐらいシンプルです。これは裏で、一つのノードにRaftコンセンサスグループを作成します。この第一ノードにはマネージャの役割があり、コマンドとスケジュールタスクを受け入れます。Swarmにノードを追加していくにつれ、それらのノードはデフォルトで、マネージャに割り当てられたコンテナを実行するように動作します。オプションでマネージャノードをさらに追加することもできます。それらはRaftコンセンサスグループの一部となります。最適なRaftストアを使用し、そこからメモリを直接読み取ります。このメモリがスケジュール管理のパフォーマンスを速くします。ロードバランスされたプロセスを、エンジンのswarmで始めることができます。nginx:latestこのコマンドのおかげで5つのnginxコンテナのswarmが一つのものとして到達可能となり、swarmのすべてのノードのポート80で、内部でロードバランスされたサービスとなり、理想的な状態が確実となります。4マルチプロトコルロードバランサーを使って機能させます。Kernelの内部でIPVSルーティングパケットを使うことにより、swarmのルーティングmeshのコンテナを意識したロードバランス機能の素晴らしいパフォーマンスを実現します。サービスを作成する際、オプションで複製かグローバルサービスかを選べます。複製サービスとは、設定した数のコンテナが、利用可能なホストに分散されるということです。グローバルサービスはそれとは対照的に、swarmのどのホストでもコンテナが同じ数になるように一つのインスタンスを設定します。Dockerがどのように高い回復力を提供しているかに話を移しましょう。Swarmモード認証エンジンには自己回復能力があります。あなたが設定したアプリケーションを認識し、チェックを続け、何か環境に間違いが起こると、環境の再調整を行います。nginxインスタンスを実行しているマシンのプラグを抜いたら、別のノードに新しいコンテナが出現します。Swarmのマシンのうち半分の、ネットワークスイッチのプラグを抜いてみてください。半分がそれら自身の間でコンテナを再分散し、引き継ぎを行います。アップデートに関しては一度変更を行えば、サービスの再展開には柔軟に対応できるでしょう。Swarmのコンテナのアップデートは、rollingかparallelか設定できます。frontend=100とするだけでできます。redis:latest次の画像が、このアプリケーションの基本構造を示しています。1.12の核となる原理は、Dockerプラットフォームに、環境設定ゼロ、デフォルトのセキュリティ、既成の体験を提供することです。管理者がアプリケーションを商用環境で展開する際しばしば、それらを安全に実行することが一つのハードルとなります。1.12により管理者は、安全な商用クラスターの設定を行う際、demoクラスターの設定の時とまったく同じステップを実行するだけです。セキュリティは、後から付け加えられるものではありません。1.12には相互認証TLSが必要なのです。Managerを開始する場合、Dockerエンジンは新しい認証局(CA)と初期認証セットを作成します。この初めのステップが終わると、swarmに入っているすべてのノードに、ランダムなIDとその時点でのswarmにおける役割(マネージャかWorker)の付いた認証が自動的に発行されます。これらの認証はswarmに参加している限りずっと、暗号でセキュリティのかかっているノードアイデンティティとして使用され、また、マネージャはこれらを、タスクやそのほかのアップデートの安全な普及を確実にするために使用します。1.12を使用すると、すべての設定や安全なデフォルトでの環境設定が済んでしまうだけでなく、TLS認証における最も苦痛な作業の一つである認証ローテーションも自動で実行されます。Swarmに参加しているすべてのノードは、裏で常に認証を更新しています。リークの恐れがあったり、抵抗力の無くなった可能性のある証明書はもはや無効となります。更新の頻度は、ユーザが最低30分毎から設定できます。自分だけの認証局を使用したい場合、外部CAモードもサポートしています。使い方は、swarmのマネージャが、クラスターに参加させたいノードの認証サインリクエストをリモートURLに対して実行するだけです。1.12は、分散アプリケーションバンドルという新しいファイルフォーマットを導入します(実験構築のみサポート)。バンドルとは、フルスタックアプリケーションに焦点を当てた、トップサービスの新しい抽象概念です。Dockerバンドルファイルは、次のものを規定する宣言型の仕様です:・実行する特定のイメージのリビジョン・作成するネットワーク・それらのサービスのコンテナを実行するためのネットワーク接続法バンドルファイルは完全にポータブルで、ソフトウェア運用パイプラインで完璧に展開できます。スペックを完璧に備えた、完全版のマルチコンテナDockerアプリケーションをリリースするためです。バンドルファイルスペックはシンプルでオープンです。好きなようにバンドルを作成できます。Composeはバンドルファイル作成を実験的にサポートしています。1.12や有効なswarmモードを使ってバンドルファイルを展開できます。バンドルはCIを通して開発者のノートpcから商用環境へマルチサービスアプリを移動させるのに有効なメカニズムです。実験段階ですので、コミュニティーからのフィードバックをお待ちしています。1.12の裏側で裏側を見てみると、Dockerは他にも数多く興味深い技術を使用しています。HTTP/2の利点を利用できます。私たちのデータ構造はprotobufs(プロトコルバッファー)のおかげで効率よく伝えられます。Hubアカウントでシェアしてみましょう。1.12リリースノートを読んでみましょう。Weeklyを購読してみましょう。・次に予定されているDockerオンラインMeetupに登録してみましょう。Meetupに参加してみましょう。2016に登録してみましょう。2015のビデオを見てみましょう。・Dockerコミュニティへの貢献を始めましょう。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。