BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース CodespacesがEmacsとVimをサポートしてGitHubの新しい開発プラットフォームになった

CodespacesがEmacsとVimをサポートしてGitHubの新しい開発プラットフォームになった

ブックマーク

原文(投稿日:2021/08/16)へのリンク

GitHubはローカル開発環境から離れ、日々の開発フローにCodespacesを採用した。注意深い構成の後、GitHubは新しい環境で10秒のブートストラップ時間を達成した。さらに、CodespacesはVisual Studio Codeに加えてEmacsとVimをサポートするようになった。

Codespacesは、全体的な開発者エクスペリエンスで一般的な欠点に対処することを目的としたフル機能のクラウドホストの開発環境を提供する。

Codespacesの背後にあるビジョンは、組織の他のインフラストラクチャで起こっていることと同じように、開発環境をコモディティ化することだ。コモディティ化は、ユニークでかけがえのないものはなく何かが正しく機能しなくなった場合に簡単かつ速やかに交換できるという点で優れている。これはローカル開発環境の現実とはまったく異なるとGitHubは言っている。ローカル開発環境は機能を維持するために絶え間ない努力が必要だ。

ローカル開発環境は脆弱です。そして、完全に機能している場合でも、単一コンテキストのオーダーメイドのローカル開発環境は、現在私たちが運用しているどこからでも瞬時にアクセスできる世界との歩調がますます合わなくなっているように感じました。

もともとGitHubの買収前にMicrosoftでVisual Studio Onlineとして作成されたCodespacesは、Visual Studio Codeを活用し、ブラウザ内で実行して、コード補完、拡張機能、コードナビゲーション、その他使い慣れたVisual Studio Code機能を含むリモート開発環境エクスペリエンスを強化する。

CodespacesはGitHub内で数秒で直接実行でき、開発者はほぼ瞬時にプロジェクトへの貢献を開始できる。

Codespacesの目標は開発環境に目前のタスクに対してオンデマンドでプロビジョニングされるモデルを採用することです (ブランチとCodespacesの間のほぼ 1:1 のマッピング)。

Codespacesを採用し、14年間の開発で100万を超えるコミットが行われるGitHubの大規模な13GBコードベースを処理するように適応させることで、GitHubは多くの課題を克服し、機能と速度をさらに向上させる機会を得ることができた。過去の決定を注意深く修正し、macOS中心の多くの仮定を修正するプロセスを通じて、GitHubチームは、リポジトリのCodespacesのブートストラップ時間を45分から10秒に短縮することができた。

たとえば、GitHubのような大きなリポジトリをリモートで操作する場合、ブートストラップで浅いクローン (shallow clone) を作成してから、バックグラウンドでリポジトリの履歴を深く (unshallowing) することは劇的な効果を得ることができる。もう1つの重要な決定は、GitHub Actionsを使用して、すべての依存関係を含むリポジトリのDockerイメージを毎晩更新し、必要に応じてそれを使用して開発環境をブートストラップすることだ。10秒の目標を達成するための最終的なパフォーマンスの向上は、開発者が仕事に取り掛かる接続を待機している、完全に構成されたCodespacesのプールである prebuilds によって提供された。

GitHubによると、Codespacesに移行するという決定は、ローカル環境の壊れやすさの問題を修正しただけでなく、開発エクスペリエンスを改善するための追加の機会も可能にした。例えば、単一の開発者ローカル環境で実行するには単純に複雑すぎるか、多大な労力を必要とする開発環境でセットアップと最適化を実行する。同様に、開発者のマシンを非常に容易に高いスペックにアップグレードできる。

前述のように、EmacsとVimがブラウザではなくコマンドラインで作業することを好む開発者向けにもサポートされるようになった。これを可能にするため、GitHubチームは単純にビルド前 (pre-build) のイメージを更新して sshd と公開鍵を含めCodespacesへの外部アクセス用にポート22を開いた。

ここで説明してきたことよりもGitHubのCodespacesへの移行、それに伴うもの、およびそれがもたらすメリットについて学ぶことは多くある。したがって、詳細に興味があれば、公式の記事を見逃さないで下さい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。