GitHub Codespacesを使ってみようと思ったら、まだベータ版らしく順番待ちが必要だったので登録だけ済ませて待っていたら先日招待メールが届いたので早速触ってみました。
GitHub Codespacesとは
クラウドでホストされている開発環境です。Configuration-as-Codeにも対応しているようで、構成ファイルをリポジトリにコミットすることで、コードスペース用にプロジェクトをカスタマイズすることができ、プロジェクトメンバーに同じ環境で配布することもできそうです。 ホストできる環境は2コアマシンから32コアまで構成可能で、ブラウザかDesktop版のVS Codeから使用することができます。
画像はGitHub Codespaces overview - GitHub Docsより引用
ちょっとだけ歴史を調べてみた
あれこれ似た名前があったので、この機会でもないと調べることはないだろうと思い検索してみました。 インターネットを介してコラボレーション機能的なところは昔からやりたかったようですね。 大型買収などを経て、今後はGitHub Codespacesに落ち着きそうな感じでしょうか。
年月 | 内容 |
---|---|
2012/03 | Team Foundation Serverのクラウド版としてTeam Foundation Serviceを発表。Visual Studioと組み合わせコラボレーション機能のような仕組みを実現したとのこと |
2012/11 | Team Foundation ServiceをVisual Studio Onlineに名称変更 |
2015/11 | Visual Studio OnlineをVisual Studio Team Serviceに名称変更。Visual Studioのオンライン版と誤解を与えてしまうことが理由とのこと |
2015/11 | Visual Studio CodeのOSS化を発表。初期はJavaScriptやTypeScriptのWeb開発者をメインダーゲットに開始 |
2018/06 | MicrosoftがGitHubの買収を発表し、2018/10に買収完了を発表 |
2019/07 | Visual Studio Onlineの復活を発表。Visual StudioとVisual Studio CodeのWebベースのコンパニオン的な位置付け |
2020/04 | Visual Studio OnlineをVisual Studio Codespacesに名称変更 |
2020/05 | GitHub Codespacesを発表 |
2020/09 | Visual Studio CodespacesをGitHub Codespacesに統合を発表 |
2021/08 | GitHub Codespacesを法人向けに提供開始 |
料金について
個人向けの価格は未定のようですが法人向けの料金体系のようになるのではないかと思っています。 同じくらいの価格なのか、リーズナブルになるのか気になるとことですね。 限定ベータ期間中は無料で使用できるようなので、使ってみたい方は今のうちに申し込まれるとよさそうですね。
使ってみる
特に補足的に書くことなく、公式ドキュメントの通りに進めていくと簡単に立ち上げることができました。
構成ファイルについて
Dev Containerの仕組みを使っているらしく、devcontainer.json
ファイルを作成することになるみたいです。
なので、Desktop版のVS CodeでDev Containerを使用している人は同じ設定ファイルを使ってリモートな環境で開発することができそうですね。
所感
似ているものがいくつかあったので使い分けを個人的に改めて整理してみましたが、GitHub CodespacesかVCode Desktop + 拡張機能の組み合わせを中心開発環境としては構築していくことになりそうに思いました。
予算面などでクリアできるのであれば、GitHub Codespacesの方が圧倒的に手軽なように思います。
最後に思い出したので無理やり付け加えると、GitHub Codespacesでよさそうな機能はnode.jsやPython、javaなど主要な言語やDockerやGitなどが最初からセットアップされている点も環境セットアップの省力化に繋がりそうなのでよさそうでした。
- github.dev
- 実行環境はない
- GitHubで静的なコードレビューをする際に便利
- ブラウザが対応していれば基本的にどのデバイスでも使用できる(iPadなど)
- vscode.dev
- GitHubを中心に使用している人であれば、github.devを使用するのが無難
- github.devと同じく実行環境はない
- GitHubとのコラボレーション機能を除くとほぼ同じ
- ブラウザが対応していれば基本的にどのデバイスでも使用できる(iPadなど)
- GitHub Codespaces
- Desktop版とブラウザ版が対応している
- ブラウザが対応していれば基本的にどのデバイスでも使用できる(iPadなど)
- 実行環境が欲しいけど、インフラの管理までしたくない人向け。
- VS Code Desktop
- クラウドやオンプレなど自前で実行環境が用意できる場合、拡張機能と組み合わせて最初の3つと同様のことは実現できる
- Coder / code-server
- self-hosted型のサービス
- 実行環境があるブラウザ版を自前の環境を使って構築したいという用途がないかぎり使う機会はないかも
- 付加価値的な要素で魅力的な機能が出てくれば改めて検討してみたい