先週開催された仮想 Dockercon イベントでは、両社が Docker と Azure クラウドの統合で協力するという合意を延長したことで、Microsoft が注目を集めました。
技術的な観点から見たこの契約の本質は、Docker Desktop、Visual Studio、Visual Studio Code、および Container Instances (ACI) と呼ばれる Azure サービス間の統合です。
Dockerconでは、わずか数コマンドでDockerコンテナを構築し、ACIにデプロイするデモを披露しました。「たった3つのコマンドラインステップで、あらゆるコンテナをAzureにプッシュできます」と、Microsoftのプリンシパルグループプログラムマネージャー、ポール・ユークネヴィッチ氏はバーチャルカンファレンスで説明しました。ACIのコンテキストでDockerコマンドを実行することも可能になります。
これらの新機能は、Windows版とLinux版の両方でDocker Desktopの今後のアップデートに含まれています。 でAzureアカウントにリンクしdocker login azure
、 コマンドをdocker context aci-create
実行すると、コンテナのデプロイ先をローカルとAzure間で切り替えることができますdocker context use
。
マイクロソフトはVisual Studio CodeとそのDockerツールもアップデートしています。ただし、この統合は主に開発とテストを目的としているという点に注意が必要です。「本番環境ではCI/CDパイプラインを検討してください」とユークネヴィッチ氏は警告しています。
Azureでコンテナを実行する方法はACIだけではありません。Azure Kubernetes Service (AKS)、App Service、Service Fabric、仮想マシンも利用できます。ACIは特に簡単ですが、ドキュメントには「長時間実行される安定したワークロードの場合、専用の仮想マシンのクラスターでコンテナをオーケストレーションする方が、同じコンテナをAzure Container Instancesで実行するよりも一般的にコストが安くなります」と記載されています。
DockerconではAWSへのアプリケーションのデプロイに関するセッションも開催されましたが、基調講演ではMicrosoftのクラウドが注目を集めました。なぜAzureが選ばれたのでしょうか?DockerのCEO、スコット・ジョンストン氏は「開発者のニーズに焦点を当てている」と述べていますが、それだけではありません。2019年はDockerにとって厳しい年でした。11月には、Docker Engine EnterpriseとUniversal Control Planeクラスター管理ツールを含むDocker Enterprise Platformが、Kubernetes事業の支援を目的としてミランティスに買収されました。Dockerは「モダンアプリの開発ワークフロー」に注力していくと述べました。
Dockerconでジョンストン氏はそのことを認め、「私たちは今や小さな会社です」と述べた。Dockerは、ユビキタスなコンテナフォーマットと人気のコンテナリポジトリ(同社によれば、現在毎週15億回のプルがあるDocker Hub)を手に入れたが、これは料金を払わずに簡単に利用できるエコシステムでもある。
同社のビジネスは、無制限のプライベートリポジトリ、並列ビルドサービス、チーム管理ツールを備えた有料Docker Hubサブスクリプションへのアップセルに依存しており、無料・有料を問わず、多くの他のDevOpsおよびコラボレーションツールと競合している。「Dockerは、有料サブスクリプションという形で、このフォーマットと開発者の明確な好意を収益化するために、依然として製品市場への適合性を確立しようと努力していると言っても過言ではない」と、Redmonkのアナリスト、ジェームズ・ガバナー氏はThe Register紙に語った。
Dockerルームの雑談:コンテナ新興企業のエンタープライズ部門がミランティスに売却、CEOが退任、Swarmサポートも廃止へ
続きを読む
これは、Dockerがジョンストン氏が「エコシステムパートナー」と呼ぶものを強く必要としていることを意味します。Dockerconには5つの「プラチナスポンサー」がいました。AWS、Microsoft、Nginx、Cockroach Labs、そしてセキュリティスキャンのためにDocker DesktopとDocker Hubとの統合を最近発表したSnykです。
マイクロソフトで楽しい時間を過ごす
最大のパブリッククラウドプロバイダーである AWS は、Docker 開発者にとってのデプロイメントを容易にすることに明らかに関心を持っていますが、Microsoft が Docker と連携する理由は AWS や Google Cloud Platform には当てはまりません。
Microsoftは、クラウド開発がLinuxに支配されているという現実に直面し、WindowsとAzureの両方をLinux開発に適した環境にするためにあらゆる努力を払ってきました。DockerはWindows側の重要なパートナーであり、その技術をHyper-Vと、最近ではWSL(Windows Subsystem for Linux)の両方に適応させています。この統合は、一般提供が開始されたばかりのWSL2でも継続されており、Yuknewicz氏がDockerconで行ったデモの一つは、Visual Studio、WSL、Dockerコンテナのシームレスな統合でした。これにより、開発者はVisual Studioで開発とデバッグを行いながら、Linux上でコードを実行できるようになります。
DockerconでAzureへの愛が示されたにもかかわらず、同社はDockerやKubernetesといった標準の価値はベンダー間での移植性にあると強調した。「今日は複数のクラウドをサポートするという明確なメッセージが伝えられました」とガバナー氏はイベントについて述べた。「しばらくの間、複数のクラウドは軽視する人だけが関心を持つものでしたが、今ではクラウドの活用方法の一部として複数のクラウドを導入している組織が増えています。」
DockerとAzureの新たな連携は便利そうに見えますが、実際にはDockerコンテナをパブリッククラウドにデプロイするのは難しくなく、むしろそうあるべきです。しかし、今回の提携は他の理由からも重要であり、Dockerのパートナーニーズと、開発者をAzureへと誘導するというWindows 10、GitHub、Visual Studio Codeを活用したMicrosoftの戦略に合致しています。®