GitHub Codespacesのプレビュー版にはまだ明らかな欠陥がいくつかあるが、CEOは準備ができたらすぐに公開すると主張

Table of Contents

GitHub Codespacesのプレビュー版にはまだ明らかな欠陥がいくつかあるが、CEOは準備ができたらすぐに公開すると主張

GitHubのCEO、ナット・フリードマン氏は、バーチャルイベント「Universe」でCodespacesを披露しましたが、まだ限定プレビュー段階であり、主要機能が不足しています。一方、ライバルのGitPodは、Visual Studio Codeのサポートと、同様のワークスペースサービスであるGitPodでルート権限によるコマンド実行機能を追加しました。

Codespacesは、開発者がウェブブラウザまたはVisual Studioコードエディタからコンテナ化された開発環境を実行できることを意味します。GitHubユーザーは、自分のマシンに依存関係を設定する必要がなく、どこからでもコードを実行・デバッグできます。また、ローカル開発ツールをサポートしていないiPadなどのデバイスからも実行できます。この機能はプレビュー版では無料ですが、正式リリース時には1時間あたり0.085ドルから課金されます。

Microsoft傘下のGitHubは5月にCodespacesを発表しましたが、その要素は全く新しいものではありませんでした。コンテナはAzureクラウド上で実行され、Microsoftは既にVisual Studio Onlineという類似の機能を提供していましたが、GitHubの発表直前にVisual Studio Codespacesに名称が変更されました。これが混乱を招きました。Visual Studio CodespacesとGitHub Codespacesの違いは、もしあればどのようなものだったのでしょうか?

9月、Microsoftプログラムマネージャーのアリソン・ブッフホルツ=アウ氏は、誰もが既に考えていた通りのことを発言しました。Visual Studio Codespacesは廃止され、GitHub Codespacesが今後のサービスとなるということです。Visual Studio Codespacesは2021年2月に廃止されます。

いくつか問題があります。1つ目は、移行機能がないため、開発者はCodespacesを再作成する必要があることです。一時的な環境として想定されているため、これはそれほど問題ではないかもしれません。2つ目は、機能セットが全く同じではないことです。公式発表では「移行の妥当性を検討中」とされていました。注目すべき機能の1つはWindows Codespacesのサポートが欠けていることです。GitHub CodespacesはLinuxのみで動作しますが、Visual Studio Codespacesは少なくともプレビュー版ではWindowsもサポートしていました。

7月にVisual Studio Codespacesに追加されたもう一つの重要な機能は、シークレットのサポートです。例えば、開発中のアプリケーションがデータベースに接続する必要があるとします。データベースには資格情報が必要です。コードリポジトリに資格情報をハードコードするのは賢明ではありません。プライベートリポジトリでは問題ないように見えるかもしれませんが、これは悪い習慣であり、資格情報漏洩の一般的な原因となります。

GitHub Codespacesには現在この機能がありませんが、GitHub Actionsと同じシークレット管理メカニズムを使用する予定です。このメカニズムはリポジトリ単位または組織単位で利用できます。ユーザーレベルのシークレット管理も可能であり、歓迎されます。Universeの集まりでこの質問が出され、シークレット管理は近日中に提供される予定です(それが何を意味するかは分かりませんが)。

デバッグ: GitHub Codespace で実行されているアプリケーションのブラウザホスト型 Visual Studio Code でブレークポイントに到達する

GitHub Codespace で実行されているアプリケーションのブラウザホスト型 Visual Studio Code でブレークポイントに到達する

ベータ版のCodespaceを試してみましたが、起動に数分かかるものの、魔法のような体験でした。最も人気のあるコードエディタであるVisual Studio Codeに慣れている開発者なら、きっと使い慣れていて簡単に使えるでしょう。エディタは自動的にリポジトリに接続され、ブラウザ上で全く同じようにコードの編集、コミット、実行、デバッグを行うことができます。Codespaceで実行されるWebアプリケーションは、開発者のWebブラウザに自動的にポート転送されます。しかし、私たちのコードはデータベースにアクセスしようとした際に例外が発生し、動作を停止してしまいました。

Codespacesがプレビュー版のままである理由の一つは、シークレット管理機能かもしれません。しかし、Universeで一般公開の発表があるのではないかと半ば予想していました。「準備が整いましたら、全力で取り組んでいます!」とFriedman氏はTwitterで述べています。開発者の要望リストの上位に留まっている機能は他にもあります。このサービスは小規模なリポジトリには最適ですが、複数のリポジトリにまたがるプロジェクトではどうでしょうか?大規模プロジェクトの実行とデバッグには、Codespacesがまだ十分に対応していない新たな問題が伴います。

一方、GitPodもUniverseのリリースに合わせて独自のニュースを発表しました。新機能には、GitPodワークスペース内でsudoを使ってコマンドを実行できる機能(apt-getによるパッケージのインストール、ワークスペース内でのコンテナの起動(プレビュー)、エディタとしてEclipse Theiaの代わりにVisual Studio Codeのサポートなど)が含まれます。また、GitPodは、セルフホスト型のGitLabアプリケーションとクラウドホスト型のGitPodを接続する機能も導入しました。以前はクラウド間、またはセルフホスト型同士の接続でした。

GitPodの共同創設者兼CEOであるスヴェン・エフティンゲ氏は、Gitpodワークスペースにはオープンソースプラットフォームであること、より高機能なワークスペースを提供すること、起動が速いことなど、他にも利点があると主張しました。ちなみに、GitPodはユーザー固有の環境変数によるシークレット管理もサポートしています。

GitPodにはこうした利点があるものの、GitHub Codespacesのネイティブ製品は、プレビュー版がリリースされれば、プラットフォームとの統合により歓迎されるでしょう。自動化され、コード定義に基づいた開発環境をオンデマンドで利用できるという概念は魅力的であり、これらの実装が成熟するにつれて、さらに魅力的になるでしょう。®

Discover More