クラウド開発環境(CDE:Cloud Development Environments)は、DevOps において重要な役割を果たしており、開発からデプロイまでのプロセスを効率化します。

本記事では、CDE がいかにして DevOps の中核となる原則 ― フロー、フィードバック、継続的な学習 ― を強化するのかに注目します。

特に「セキュアな CDE」と「オンラインコーディング」の利点に焦点を当て、DevOps の原則をより開発者に近づけ、アプリケーション開発をどのように改善できるかをご紹介します。

クラウド開発プラットフォームが DevOps をどのように“進化”させるのか

まずは、クラウド開発環境(CDE:Cloud Development Environment)とは何かを簡単に説明します。
CDE は一般的に Linux OS 上で動作し、アプリケーションを含むあらかじめ構成された環境を提供します。この環境では、ローカルと同様にコーディング、コンパイル、その他の操作が可能です。技術的には、Docker や Podman などの仮想化技術を使ってリモートで実行されるプロセスに近いものです。CDEの概要については、こちらの記事をご覧ください。

現在、CDE はクラウドネイティブ開発業界全体がオンライン環境へとシフトする中で、DevOps を加速させる最も急速なトレンドの一つになっています。これらの環境は、2023年8月に Gartner によって新しい技術カテゴリとして認定されました。Gartner は、2026年までに60%以上のクラウドワークロードが CDE を活用して構築・展開されると予測しています。

現在、企業はこうした環境を自己ホスト型のプラットフォームで運用するか、クラウドプロバイダーが提供するマネージドサービスを利用するかを選ぶことができます。とはいえ、こうしたプラットフォームはまだ発展途上にあり、提供される機能もベンダーによって大きく異なります。つまり、CDE の技術導入や、どのようなビジネスユースケースをカバーするかについては、大きな柔軟性があるということです。

私の意見では、CDE プラットフォームを選ぶ際に企業が重視すべきなのは、「生産性」と「データセキュリティ」の両立を実現できるものを選ぶことです。セキュアな CDE を活用すれば、さまざまなセキュリティ対策を導入することが可能です。たとえば、データの持ち出し・持ち込みの防止、DevSecOps のベストプラクティスの自動化、セキュリティレビューの生成などが挙げられます。こうしたセキュリティ対策は、従来であれば仮想デスクトップ環境(VDI)や、最近ではエンタープライズブラウザで実現しようとしてきたものです。

その背景には、多くの企業、特にテクノロジー企業が、ソースコードや顧客データ、その他の知的財産に対する攻撃を受けてきたという現実があります。たとえば、2022年12月には Slack の GitHub リポジトリや CircleCI、Okta などでソースコードの漏洩が報告されました。
とくに重要なのは、セキュリティを“生産性の阻害要因”ではなく、“生産性を高めるもの”として位置付けることです。セキュリティを適切に設計することで、開発者体験は向上します。

既存の CDE プラットフォームに共通する目的のひとつは、コーディングの効率化です。たとえセキュリティを重視しないとしても、CDE を導入することで DevOps ワークフローにおける生産性は大きく向上する可能性があります。
そのため本記事では、DevOps の核心原則を改めて見直し、CDE がそれらにどのように新しい視点をもたらすのかを探っていきます。この DevOps の原則は「The Three Ways(3つの道)」と呼ばれ、『The DevOps Handbook』(著:Kim、Debois、Willis)で解説されています。

なお、データセキュアな CDE を管理するプラットフォームと、その他の CDE プラットフォームとの違いについて詳しく知りたい方は、こちらの記事をご覧ください。

オンライン環境が DevOps の「フロー」の原則を加速させる

プロセスの観点から見ると、DevOps は「フロー」「フィードバック」「継続的な学習」という3つの原則(Three Ways)を実践することにあります。
この文脈でクラウド開発環境(CDE)の利点を説明することで、その重要な効果のいくつかをより深く理解することができます。

a picture of devops' three ways
DevOps’s three ways (flow, feedback and continuous learning) as pictured in The DevOps Handbook by Kim, Debois, and Willis

まずは「フロー」の原則から始めましょう。この最初の原則は、開発からテスト、デプロイ、運用、監視に至るまでの作業がスムーズかつ効率的に流れることを重視します。
その目的は、ボトルネックを最小限に抑え、プロセスを最適化し、継続的かつシームレスなデリバリーパイプラインを実現することです。
この「フロー」は、無限大(∞)の形で表現される各ステージの連続としてよく描かれます。

CDE(クラウド開発環境)は、この「フロー」の原則を実践するための効率的な手段です。CDE を利用することで、ユーザーは複数のプロジェクトに対応する際に、完全に分離されたワークスペースを保持でき、影響を与えることなく簡単にコンテキストスイッチ(作業の切り替え)が可能になります。

優れた CDE プラットフォームは、開発者が企業ポリシーに基づいて CDE を管理・設定できるよう、さまざまなツールを提供します。特に、開発者自身がセルフサービスで CDE にアクセスできる点は、大きなメリットのひとつです。

また、CDE はテスト用に簡単に複製でき、必要に応じて他のユーザーに再割り当てすることも可能です。テンプレート化された CDE は、柔軟なリソース上で数秒以内にプロビジョニングでき、場所を問わずどの開発者でもアクセスできます。
ここで、優れた CDE プラットフォームは、プロジェクトマネージャーや IT 管理者に対して、スケーラブルな CDE 管理と可視化を可能にする包括的な運用機能を提供します。

The use of CDEs’ starts at DevOps’ code stage and enables organizations to maintain consistent environments across stages. A CDE and its access mechanisms are represented by a tile and a series of icons, respectively.

CDE をオンラインで展開することにより、中央集約型の管理、可視化、アクセスが可能となり、DevOps の「フロー」の原則を大きく強化することができます。

現在、多くの企業においてリモート開発者の受け入れは一般的な業務の一部となっています。CDE のオンライン特性は、開発者の居場所を問わず、あらかじめ構成された環境へのスムーズなオンボーディングに最適です。
また、組織のリソースへのアクセス提供もオンボーディングの重要な要素のひとつです。CDE を活用すれば、開発リソースに対するアクセスを中央で管理・制御できるようになり、特に高度な可視性とコントロールを伴う運用が実現できます。

生産性と柔軟性を両立するためには、優れた CDE プラットフォームがアクセス権限モデルを備えている必要があります。
これにより、さまざまな開発者タイプ(社内・協業パートナーなど)、多様な開発シナリオ、異なるリソース種別に対応できるようになります。
たとえば、RBAC(役割ベースアクセス制御)や ABAC(属性ベースアクセス制御)を活用し、リソースの分類メカニズムと組み合わせることで、組織はリスクコントロールを確立し、複雑な開発フローにおいても確実にガバナンスを維持できます。

このようにして、効率的かつコラボレーティブな開発フローの設計が大幅に現実的になります。

Onboarding a diverse set of developers requires a mechanism to manage access permission to resources based on role. Permissions can also be assessed dynamically based on properties such as the user location, etc.

最後に、CDE(クラウド開発環境)とWebベースのIDEを組み合わせて利用する大きなメリットのひとつは、リソース制限のある端末(いわゆるThin Device)やBYOD(私物端末の業務利用)環境でも即座に開発者のオンボーディングが可能となり、ビジネス拡大の加速要因となる点です。

DevOps の「フィードバック」の原則に即時性をもたらすには

DevOps における「フィードバック」の原則とは、開発プロセスと運用プロセスのさまざまな段階の間で、コミュニケーションと連携を促進する仕組みを構築することを意味します。
これには、エンドユーザー、モニタリングシステム、テストプロセスなど、さまざまな情報源からのフィードバックを収集することも含まれます。
この原則の重要な点は、開発者同士のより良いコラボレーションを実現できるところにあります。

この「フィードバック」の原則を最もわかりやすく体現しているのが、コードリポジトリにおけるプルリクエスト(PR:Pull Request)機能です。
PR を通じて、開発者はブランチから提出されたコードに対し、マージ前にコメントやレビューを行うことができます。

そして、CDE(クラウド開発環境)の“オンライン性”によって、このフィードバックの原則はさらに開発者に近い場所――すなわち、コードリポジトリに到達する前の、コーディング作業の中心そのもの――で実現されるようになります。
この利点は、CDE がしばしば統合するさまざまなアクセス・監視メカニズム(IDE、ターミナル、ネットワーク、オーケストレーションなど)と連携することで可能になります。

CDE は常時オンラインで稼働しているプロセスであるため、開発作業そのものをリアルタイムで観察・追跡することが容易です。
これは、ウェブサイトの訪問者のユーザー体験を可視化・解析することと似ています。

私の見解では、この領域こそが、開発の中心に「生産性」と「セキュリティ」を組み込む最大のチャンスであると考えています。

Because CDEs can be accessed remotely, it is easy to measure some of their properties such as running processes and allocated resources.

たとえば、共通のプロジェクトに取り組む開発者たちが共有している多数の CDE を対象に、アプリケーションのビルドに必要な平均コンパイル時間をリアルタイムで測定することは簡単です(上記の図を参照)。
これは、プロジェクトマネージャーにとって非常に有用な生産性の指標となります。

また、開発者のクリップボードや CDE のネットワークトラフィックを通過する情報を可視化することも容易です。
これらのチャネルを通じて、開発者やマネージャーに対してさまざまなフィードバックを提供することができます。

たとえば、インフラセキュリティの観点からは、機密データの持ち出し(データエクスフィルトレーション)の兆候を監視し、知的財産の損失を未然に防ぐことが可能です。

さらに、同じチャネルを使って、悪意あるデータの“持ち込み”(インフィルトレーション)の兆候を検知することもできます。
たとえば、開発者のクリップボードに認証情報が含まれているのを検出できたとしたら、その操作の意図を確認したくなるのではないでしょうか?

あるいは、無作為にネット上からコピーされたソースコードを自社コードベースに貼り付けようとしている場合、それを検知してセキュリティレビューの自動作成を促す、といった対応も可能です。

マルウェアがコードベースに到達する前に検知する、あるいは AI 生成コードを自動的にフラグ付けすることも、こうした仕組みを通じて実現できます。

The control on CDEs and their supporting infrastructure is an opportunity to semantically analyze input data such as credentials, licenced source code and potential malware. Similarly, it allows setting data leak prevention measures.

CDE と、そこにデータを流し込むために使われるインフラコンポーネントは、DevOps や DevSecOps における新しいベストプラクティスを導入し、「フィードバック」の原則を再定義するための媒介となります。
上記で紹介した例からも分かるように、インフラセキュリティはコードセキュリティの原則と連携することが可能です。

優れた CDE プラットフォームは、新しい、そして創造的な DevOps/DevSecOps の自動化を多彩に実現する“武器庫”のような存在となります。
さらに、DORA や SPACE といった標準的な指標を再評価し、開発者が最も多くの時間を費やす場所――つまり IDE 上でのコーディング作業――により密接に結びつける大きなチャンスでもあります。

「継続的学習」の原則にフォーカスする

最後に、DevOps における3つ目の原則「継続的学習」について考えてみましょう。
この原則は、開発チームと運用チームの間で継続的な改善と学びの文化を育むことの重要性を強調しています。
その実践には、定期的なフィードバックの収集、パフォーマンス指標の分析、そして開発・デプロイ各段階で得られた知見を反映して、効率性やイノベーションを高めていくことが含まれます。

Web プラットフォームの即時性と、実行中の業務プロセスに対する可視性の高さは、組織が自らについて学ぶための新たな機会をもたらします。
これは、継続的学習の可能性を大きく高める要素となります。

当初、DevOps における「継続的学習」は、主に顧客が利用中のアプリケーションの改善に重きを置いていました。
しかし、開発プロセス全体がクラウドアプリケーションとして実行される現在では、組織が自らのプラットフォームベースの開発プロセスについて多くの価値ある知見を得ることが可能になっています。

この観点から、CDE プラットフォームは可観測性をさらに高いレベルへと引き上げ、いくつかの重要な領域においてビジネス最適化の機会を提供します。
本稿では、組織がアプリケーションデリバリーのパフォーマンスやセキュリティ体制について学ぶ方法を紹介してきましたが、さらに:

  • クラウドや物理インフラ資産の活用状況 
  • IT機能や開発に割り当てられたリソースのコスト監視 

などについても、可視化と分析が可能です。

また、CDE プラットフォームは生産性とリスク管理の施策を中央集約的に実行し、それを地理的に分散したチーム全体に一貫して適用できる絶好の機会も提供します。

DevOps’s principle of continuous learning can also apply to the development process itself. CDEs yield a new swath of process measurements that benefit governance, accountability and risk controls.

結論、優れた CDE(クラウド開発環境)プラットフォームは、多くの指標や機能を組織にもたらし、分散的で、ハードウェアやアプリケーション間で統一性に欠け、セキュリティの観点からも見えづらいことが多かった開発プロセスの主導権を取り戻す手助けをすべきです。
そのため、CDE の導入トレンドは今後も衰えることなく進んでいくと私は考えています。

さらに今後は、CDE プロバイダーがセキュリティコントロールをより強化する一方で、開発者の生産性を損なわないことが求められるようになるでしょう。

そして最後に、CDE を DevOps の「3つの原則(Three Ways)」の強化手段として位置付ける考え方は、開発コミュニティにとって本質的で意義のあるイノベーションを推進する素晴らしいフレームワークであると言えます。