数週間前に ストックホルムで開催されたコンテナトゥデイ には素晴らしい出席がありました。 それを行うことができなかった人のために、開発者の旅の将来に関する私のセッションで私がイベントで話したことの簡単な概要を以下に示します。
旅を変えると思うことについて話す前に、なぜそれが変わる のか を考える必要があります。 開発者の働き方を変更する基本的な目標は、開発者が行わなければならない退屈で日常的で反復的なタスクの数を減らすこと、または開発者が新しい顧客にリーチしたり、新しい問題を解決したりできるようにすることです。 開発者は企業に驚くべき価値を創造し、顧客の現実世界の問題に対するソリューションを提供します。 しかし、彼らが物事を顧客の手に渡す方法を考え出すために彼らの時間の半分を費やさなければならないならば、あなたは半分の価値を得ています。
開発者の進化
開発者の役割は、過去~40年の間に大きく変化しました。 開発者はもはやメインフレームや社内のハードウェアにデプロイしておらず、ウォーターフォールデプロイも行わず、マシンコードで記述する開発者も多くありません。 開発者は、Web言語とMLについて考え、エクストリームアジャイルDevOpsチームで作業し(少し作りました)、クラウドまたはエッジデバイスにデプロイする必要があります。 この変化は、業界全体が開発者が価値を提供し、その価値をより迅速に提供し、開発者の日常的なタスクの数を減らすための新しい方法を見つけようとしているときに起こり続けています。
今日、顧客に価値を提供するためのプロセスは、開発の「外側のループ」として説明されることが多く、開発の創造的なプロセス、つまり新しい機能の作成は「内側のループ」として説明されます。
理想的な世界では、その外側のループは自動化され、最新のCI / CDテクノロジーを使用してフィードバックのサイクルを作成し、開発者が新しい機能を作成し、バグをこれまで以上に迅速に修正できるようにします。 これは次のようになります。
これは理想的な世界ですが、多くの開発者には当てはまりません。 「The State of Developer Ecosystem 2019」レポートでは、CI/CDが通常のツールセットの一部であると答えた開発者はわずか45%でした。 これは、開発者の55%がまだそれを採用していないことも意味します。 これは、近い将来加速し始めると私たちが考える変化の1つです。 CI/CD が Github Actions のような新しいツールで民主化されるにつれて、小規模なチームでも手動デプロイではなく CI/CD を採用し始めるでしょう。
外側のループのもう一つの大きな変化は、人々がこの外側のループを通過しているものをどのように見るかです。 開発者は顧客に価値を提供しようとしていますが、価値の概念は変化しています。 モノリスから離れるにつれて、操作とデプロイが簡単な個々のサービスの作成を開始しました。 これらのサービスをHelmやCNABツールなどのシステムとバンドルするという考えは、企業が単独では単一のコンテナが顧客に価値を提供しないと考えるにつれて、より顕著になっています。 しかし、これらのサービスのコレクションは、顧客価値を提供するための最低限のセットです。
外側のループでは、大きな変化のいくつかは、物事のデプロイ方法の変更です。 開発者の57%はまだオーケストレーションを使用していません(Slashdata開発者レポート第16版)。 オーケストレーション、特にK8sの成長は、これまで以上に本番環境でより多くのマイクロサービスに移行するにつれて、開発者と運用の間の引き継ぎについての考え方を変えるでしょう。 本番環境は複数のクラウドまたはオンプレミスで行われる可能性が高く、企業の50%以上がハイブリッド戦略とマルチクラウド戦略を採用しているため、この変更の複雑さはさらに悪化します。
開発者にとっては、2023年までに次の5億個のアプリを開発することを目指しているため、これらすべてが大きな規模で影響を与えるでしょう(IDC Analyze the Future)。 エッジ/IoTが2017年から2025年の間に10倍に成長したため(Allied Market Research)、開発者がこれらのテクノロジーを使用して内部ループを身近なマシンの外に拡張するための新しい方法も考える必要があります。
要約すると、CI/CDを介してクラウドとオンプレミスのオーケストレーターにデプロイされるバンドルされたアプリが増え、それらの間を移動することになります。 これらのアプリはこれまで以上に構築され、エッジとどのようにインターフェイスし、クラウド上でこのための内部ループの一部として機能するかを考慮して、どこでも実行する必要があります。 そして最後に、コンテナの使用が推進要因であり、これを可能にする基盤となるテクノロジーになると強く信じています。
開発者向けの今後の展望
Dockerでは、開発者がこれらのツールのいくつかを採用するのに役立つテクノロジーを構築する方法を見据え始めました。
ローカル開発者向けには、アプリケーション テンプレートを使用して次の 5 億の新しいアプリケーションの作成を加速し、開発者が既存の例から新しいコンテナー化されたアプリケーションを数秒で作成できるようにする方法を検討しました。 私たちは、IDE統合を改善して、開発者が現在作業している場所でより良い生活を送る方法を考えてきました。 Docker デスクトップに GUI 抽象化のレイヤーを追加して、これらすべてのコンポーネントを簡単に理解できるようにしました。
また、ローカル開発環境と新しいオブジェクトの内部ループを拡張する方法についても考えています。 開発者が内部ループ内のリモートインスタンスで作業できるようにするためのDockerコンテキストがあり、ARMはDockerデスクトップでエッジを操作するためにビルドします。
また、将来的に価値をデプロイするために、複数のコンテナサービスの価値をバンドルして本番環境で実行するためのDockerアプリがあります。
また、CI、プラットフォーム間の移動、そして一般的に、次の1,000万人の開発者がDockerを使い始めるのを容易にする方法についても考えています。 これらのテクノロジーの多くは、早期導入者によって採用されていることを私たちは知っています。 しかし、これらの新しいテクノロジーと変更のすべてが初期の大多数に達し始めると、上記のすべてのテクノロジーをどのように拡張し、日常的なタスクを開発者から遠ざけるかを考える必要があります。
コンテナ 今日は素晴らしいイベントで、大勢の人が集まりました。 うまくいけば、この投稿がイベントでの私の話と私たちが見る傾向にいくらかの洞察を与えるでしょう。 開発者の旅の未来について他に考えがある場合は、私たちに連絡してください!