Docker社は新たな段階へ: モダンなアプリのための開発者ワークフローを先に進めるために #docker #mirantis #kubernetes #k8s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本日、Docker社の物語における次の章を始めます。それは、開発者へ焦点を当てるということです。次の章を書く機会を得られたのは、あなたやコミュニティのおかげです。あなた達なしでは私達はここまで来られなかったでしょう。開発者へ焦点を当てることは最近の歴史に基いていますが、それはDockerの始まりにもあるのです。
ことの起こり
Docker社の創業者であるSolomon Hykesが2013年にDockerプロジェクトを発表したとき、Dockerが目指している解決すべき問題は「開発者にとって、サーバへコードを出荷することが難しいこと」と簡潔に述べました。これを解決するために、DockerはOSカーネルの複雑なコンテナ機能を抽象化し、開発者に適したCLIベースのワークフローを提供し、不変で移植性の高いイメージフォーマットを定義しました。この結果、開発者がどう作業するかが転換し、アプリをあらゆるサーバでとても簡単に構築・出荷・実行することができるようになりました。コンテナ機能は何十年も存在していましたが、Dockerはそれらを民主化し、次のコマンドのように簡単に使えるようにしたのです:
docker run hello-world
それからは歴史が示す通りです。6年以上経ち、Dockerによるコンテナ化はマイクロサービスベースのアプリケーションの成長を促進し、開発チームがアプリを多くの回数をより早く出荷できるようにし、データセンターからクラウドへとアプリの移行を加速してきました。これはDocker社の力だけではありません。採用するに足るオープンソースや商用技術の活気あるコミュニティエコシステムが生まれてきました。Google社から始まったオーケストレーション技術であるKubernetesは、信頼性の高い大規模なコンテナデプロイを可能としました。またこの間、Linux x86から始まったDockerコンテナは、Microsoft WindowsやARMを含む他のOSやアーキテクチャへも拡張されました。コミュニティの力を導くために、CNCF、OCI、CNABといった新しい統治組織が登場しました。市場の成長に伴い、開発者コミュニティはDocker DesktopとDocker Hubをすぐに受け入れ、何百万人ものアクティブユーザが何百万ものコンテナ化アプリを共有し、数十億回もアプリイメージをプルするまでに成長しました。
これらすべて、いやそれ以上のことがたった6年で起きたのです。でも、最高のときはこれからやってくるのです。
進むべき道
今後、Docker社の焦点は、これらの基盤に基づいて、モダンなアプリの開発者ワークフローを進化させることです。実際の利点に加えて、過去6年間は、増していく複雑性、選択肢の増大、潜在的なロックインの脅威をももたらしています。これらの課題を鑑みて、Dockerとコミュニティエコシステムは、モダンなアプリを構築・共有・実行する開発者をより手助けするために、Docker DesktopとDocker Hubのオープンな標準仕様・機能・自動化機能・クラウドサービスを拡張していく機会を得ました。
構築 : 6年前は、ほとんどのアプリが1つか2つのコンテナを使ってカプセル化できました。今日では、クラウドネイティブなマイクロサービスベースのアプリはコンテナが非常に多くなっただけでなく、サーバレス機能やホステッドクラウドサービスも組み合わせるようになっています。この複雑性を解決するため、開発者がアプリを簡単に定義・共有・パッケージングできるようにDocker社は、Docker Compose、Docker App、Dockerアプリテンプレートなどのオープンソースフレームワークと開発者生産性向上ツールの拡張を続けていきます。
共有 : 2013年当時、摩擦なく言語に依存しない共有可能なアプリケーションコンテンツはとても限定的でした。今では、Dockerが機能性のモジュール化を為し、Dockerコンテナは業界のデファクトスタンダードの雄となり、Docker Hubはコミュニティ配布の輝ける星となったおかげで、開発者は共有されたオープンソースや商用コンテナに自らのコードを追加することができるようになりました。さらに、より多くの開発者が毎日より多くのアプリを共有しています。Docker Hubたった1つに500万以上です。新しいパッケージングフォーマットの登場は、開発者を圧倒し、手間取らせる危険があります。Docker DesktopとDocker Hubは、アプリケーションに適した新しい技術を素早く見つけることに役立ちます。
実行 : 初期の段階では、コンテナインフラは開発者にとって広く利用できるものではありませんでした。開発者はサーバの運用チームに、Dockerコンテナ化アプリを実行するためにはDocker Engineを、スケーリングのためにはKubernetesやDocker Swarmのようなオーケストレータをインストールするようお願いしなければいけませんでした。さらにこのコンテナインフラはモニタリング・パッチアップデート・管理しなければいけませんでした。
現在に視点を戻すと、AWSやAzureのようなクラウドサービスプロバイダパートナーはDocker互換のオンデマンドコンテナインフラサービスを、単一コンテナ用にもマルチコンテナアプリ用にも提供しています。これらは開発者に早さと俊敏さを与えましたが、潜在的なロックインのリスクもあります。よって、開発者がアプリの移植性とインフラの選択性を諦めることなく、これらのサービスの早さの利益をより得やすくできるように、Docker Hubによって、開発者の「開発」と「共有」のワークフローと、開発者がサービスを「実行」するために選択したクラウドをシームレスに統合できるようにします。
ご期待ください!
初期のDockerは、開発者の作業をより簡単にするというビジョンを共有しました。この6年間のDockerとKubernetesにおけるオープンソースと商用コミュニティの成長は、私達が何かに向かっていることを示唆しています 😉 しかし、私達はまだ始まったばかりで、やるべきことはたくさんあります。私達の目の前に広がっているこの未来に向かって、Dockerという物語の次の章のためにDockerチームを率いていくことは大変名誉なことです。この物語を、開発者コミュニティの一員であるあなたと一緒に書いていけることを楽しみにしています。
原文: Docker’s Next Chapter: Advancing Developer Workflows for Modern Apps