はじめに
この記事はGoogle Cloud Next 2025で公開されたセッション「Remote development in 2025: Your new default」についてのセッションメモです。速報の記事になりますので、誤りなどがありましたら随時、修正していく予定です。
本セッションを理解するために必要な知識をおさらい
このセッションでは以下のサービスおよびツールについて説明がありました。
Google Cloudのサービス名
- Cloud Workstations:Google Cloudをベースにブラウザベースで開発ができるクラウド開発環境、本セッションの主役となるサービス
- Cloud Shell:Google Cloud Console 上で利用できるWebベースのターミナル
- Gemini Code Assist :Cloud Shell Editor内でデフォルトで有効になっている機能として言及)
- Cloud SQL:Cloud Workstationsによるプライベート接続で利用、デモにおいてPostgreSQLデータベースの接続をローカルホストに行った
ツール
* Visual Studio Code
また、間接的に言及された技術や概念として以下のようなものがありました。本セッションを理解するための前提知識として理解しておく必要があります。
- Dockerコンテナ (Cloud Workstationsの構成要素として)
- npm (フロントエンド開発のビルドツールとして)
- TCPトンネル (ローカルホストへの接続について)
- SSH (ワークステーションへの接続方法の一つとして)
- VPC (Virtual Private Cloud) (Cloud Workstationsのネットワーク環境について)
- Code – OSS (Cloud Shell EditorおよびCloud WorkstationsのベースとなるOSS)
この記事の要約
ラップトップ盗難の経験からリモート開発のセキュリティと利便性を強調
個人的な体験を基にリモート開発の重要性を説いていました。
Google CloudのCloud ShellとCloud Workstationsが進化
コードOSSベースのエディタやGemini Code Assistの統合、セキュアな管理環境の提供など、具体的なサービス改善が紹介されました。
リモート開発は、多様な開発ニーズ(アーキテクチャ対応、ガバナンス、セキュリティ)に対応可能
現代の開発における課題解決策としての可能性が示唆されました。
開発者の生産性向上と効率的なワークフロー実現に貢献
フィードバックサイクルの短縮や知識共有の促進といったメリットを提示されました。
ローカルIDEとの連携やWebプレビュー機能など、開発体験を損なわない利便性を提供
既存の開発フローを大きく変えることなく、リモート開発を導入できることが示唆されました。
セッションの内容(本編)
セッションのアジェンダとしては以下のとおりです。
本セッションのSpeakerは最初に自身のラップトップ盗難の経験を例にリモート開発のセキュリティと利便性を強調しました。
その後、「開発者の生産性を高める要因はなんですか」という問いかけともに以下の3つの項目が重要であることを説明しました。
- Flow State
- Feedback Loops
- Cognitive Load
また、多様なアーキテクチャへの対応やガバナンスとセキュリティの向上、そしてAIアシスタント利用時のデータ管理といった課題に対してリモート開発が有効な解決策となることを説明していました。
リモート開発を説明する過程でVisual Studio Codeがリモートコンテナという概念を導入した話(2018年あるいは2019年くらいの出来事)について説明がありました。リモートコンテナによる開発はとてもクールであるのと同時に「なぜコンテナを実行しているんだ?」という疑問があったとのことでした。
※当時の背景としてクラウドコンピューティングにかかる費用 > ラップトップにかかる費用という関係
※この機能は感想でも説明していますが、VSCodeのリモートアクセス機能あるいはコンテナと説明していたため、Devcontainerのことだと察しました。
参考:Developing inside a Container
リモート開発の定義としてはリモート環境での開発・操作を挙げ、ローカルデバイスはシンクライアントになると解説していました。(開発者の生産性向上、フィードバックサイクルの短縮、知識共有の促進といったメリットを紹介)
※シンクライアント:クライアント端末にデータやアプリケーションを保存せず、サーバー側で管理するシステム
開発の内側(コーディング、ビルド、テスト)と外側(統合、リリース、デプロイ)のループにおけるリモート開発の役割が図とともに説明されました。
開発の役割を説明する過程で具体的なサービスとして以下のサービスが紹介されていました。
- Cloud Shell
- Cloud Workstations
- Gemini Code Assist
Cloud Shell の最新の改善点としてターミナルだけでなくCode OSSが利用可能であり、Gemini Code Assistがデフォルトで統合されていることが説明されました。
さらに一時的なコンピューティング環境でありながら、永続的なストレージも利用可能である点を強調し、簡単なプロトタイピングやWebフロントエンド開発にも活用できることを説明しました。
Cloud Workstations は、より安全に管理された開発環境として紹介されました。
独自のVPCやサブネット内にデプロイ可能であり、マシンタイプや利用可能な拡張機能などを定義した構成(Configuration)に基づいて、開発者ごとにワークステーションを作成できると説明がありました。
他にはGPUアタッチや機密VMなどのオプションも紹介され、ローカルのVisual Studio CodeからリモートのCloud Workstationsに接続するデモを行い、ローカルIDEの操作感とリモートの実行環境を両立できることが説明されていました。
また、ポートフォワーディング機能を使ってリモートで実行中のWebアプリケーションをローカルブラウザで確認できる点やCloud SQLにログインする例にプライベートIPのみを使用することでセキュリティを高められる点を説明しました。
※Gemini Code AssistもCloud Workstationsで利用できます。
質疑応答時間
メインとなるセッション終了後は、主に質疑応答が行われました。主な内容としては以下のとおりです。
- リモート開発環境のセキュリティ:ラップトップを紛失した場合のアクセス無効化の方法や、Cloudリソースへのアクセス制御について
- 開発体験:ローカルIDEとリモート開発環境間のレイテンシーに関する質問があり、回答としてはプラグインの使用が推奨
- 開発環境のカスタマイズ:開発者ごとの環境構築の柔軟性、およびプラットフォーム管理者と開発者間の連携について議論
- 認証とアクセス制御:ワークステーションへのアクセス権と、開発作業における認証の仕組みについて質問がありました
感想
本セッションの良いところですが、自身の経験からスタートしているところかなと思いました。
私はモノをあまり無くさないタイプの人なのでなくしたらどうするという考えはSpeakerさんよりも薄いのですが、セッションにもあったとおり異なるアーキテクチャで開発することの難しさはとても同意できるところがありました。(個人的にはx86アーキテクチャのWindowsやApple Chip版Macを所有しているため、ビルドしたコンテナイメージや実行可能形式が動かないなどの経験アリ)
所属セクションではDev Containerを使った開発をしていたためにリモートコンテナに対して懐疑的であることには驚きました。Cloud Workstationsはまだ利用したことがないですが、似たようなクラウド開発環境をよく使っているため、積極的に検証していきたいと思いました。
検証の際はcloud-workstations-custom-image-examplesというexampleもあるようなので使っていきたいです。