クラウド開発環境(CDE:Cloud Development Environment) とは、コード開発を支援するためにアクセス可能なコンテナまたは仮想マシン上に構築された環境のことです。

本記事では、この技術の簡単な歴史と、近年 Gartner によって正式なカテゴリとして認識された経緯、そしてオンラインでコーディングを行うことの利点についてまとめてご紹介します。

クラウドベース開発の簡単な歴史

クラウド開発環境(CDE)の目的は、ソフトウェア開発をオンラインで実行できるようにすることです。
この「オンラインでのコーディング」というアプローチには興味深い歴史があり、2010年代半ばにいくつかの革新的なスタートアップがこの新興分野に参入したことが始まりとされています。

image of a cloud development environment
Bringing development online brings new benefits, from productivity to security aspects.

時が経つにつれ、こうした初期のベンチャー企業のいくつかは、その革新的なアイデアに将来性を見出した大手テクノロジー企業によって買収されていきました。

つまり、現在「CDE(クラウド開発環境)」として語られているコンセプトは、2010年代半ばの先進的な技術の流れの中で誕生したものなのです。

クラウド開発環境という概念を理解する

時代は進み、2023年には調査会社のGartnerがこの技術を「クラウド開発環境(Cloud Development Environment:CDE)」と呼ぶことを提唱しました。
CDEとは、SSHクライアントなどを使ってリモートマシンに接続するコマンドライン操作に近いイメージです。
このリモートマシンは、物理ホストである場合もあれば、コンテナや仮想マシンのような仮想プロセスである場合もあります。

効率性を重視する場合、CDEの実行には通常、DockerPodmanといった軽量仮想化技術が用いられます。ただし、多少パフォーマンスは劣るものの、仮想マシンも依然として有効な選択肢です。

an illustration of a CDE
A CDE is a container or virtual machine dedicated to development.

CDEの一般的な仕様としては、Linux OS 上にアプリケーションや各種パッケージを組み込んだ構成で、すぐに使える完全に設定済みの開発環境を提供することを目的としています。
ここに Webアプリケーションとしての IDE(統合開発環境) を組み込めば、オンラインでコードを書き始めるためのすべての要素が揃います。

たとえば、Webベースの IDE(Microsoft Visual Studio Code を試してみてください) を使用した場合、CDE の一般的なオンボーディングは次のような流れになります:
開発者が指定されたURLにアクセスすると、IDEがブラウザ上に読み込まれ、加えてオンラインCDEへのターミナルプロンプトも表示されるというものです。

開発者と組織にとってのCDEの利点とは?

開発をオンラインで管理することには多くの利点があります。
その一つが、開発者に対してセルフサービス型のオプションを提供できるという点です。
これにより、開発者はIT部門の支援を受けることなく、あらかじめ設定された開発環境にアクセスできるようになります。
この環境には、承認済みのソフトウェアやパッケージ、計算リソースが含まれており、CDEを通じて提供されます。

この方法はあらゆる開発者に対応できますが、セルフサービスは特に社内の従業員にとって最適です。
一方で、業務委託や一時的な開発者に対しては、管理されたアクセス権付きの環境提供も可能です。

screenshot of cde platform
CDE platforms can be used as a self-serve mechanism for developers.

CDEによる開発ガバナンスとセキュリティの強化

CDE(クラウド開発環境)は、開発者のPCを直接操作することなく、オンライン上で管理・更新・改善することが可能です。
クラウド上のプロセスを監視するように、リアルタイムで生産性やセキュリティに関する指標をチェックすることもできます。

さらに、クラウドベースであることにより、開発者がどこにいてもスムーズにオンボーディングできる点も大きな魅力です。

最後に、リソースアクセス制御、ネットワーク監視、データ損失防止(DLP)といった観点から、セキュリティ対策をこれまで以上に高度に実現できる機会がCDEにはあります。

CDEがDevOpsおよびDevSecOpsワークフローを自動化する方法

開発環境をオンライン化することは、一般的に使用されているDevOpsツールやアプリケーションとの連携に大きなメリットをもたらします。
なにより重要なのは、CDEを導入しても、既存のツールを妨げることがないという点です。

CDE、DevOpsツール、DevSecOpsツールがすべてオンライン上にあることで、ツール間の連携や情報のやり取りがよりスムーズになります。

image of a self-serve CDE workspace
Properties of CDEs brings opportunities for DevOps automation

結論として、現在、CDE(クラウド開発環境)技術は、DevOps における最も急速な変革トレンドを牽引しており、クラウドネイティブ開発業界全体が開発環境のオンライン化へとシフトしています。

本記事の拡張版は、DevOps に関するコミュニティ交流の場として最適な DZone にてご覧いただけます。