コロナ禍におけるエンジニアのためのCloud IDE
2020 年 3 月頃からコロナが流行りだし、もう 12 月になります。働き方が大きく変わり、リモートワークが当たり前の時代となりました。 エンジニアの働き方も同様に変わりました。そこで、今回は Cloud IDE というものを紹介しようと思います。
リモートワークと DaaS
リモートワークが増えると、DaaS のようなサービスを利用する企業が増えたのではないでしょうか。 DaaS の簡単な説明を引用しますと、次のとおりです。
DaaS とは、“Desktop as a Service”の頭文字を取った略語で「ダース」と読みます。 普通ならば個人の PC にデスクトップは存在し、データは個人の PC 内に保存されていますが、DaaS においては個人のデスクトップがクラウド上に構築され、ネットワークを通じてそのデスクトップを呼び出して利用することになります。 ここでは、DaaS とはどういう仕組みなのかを説明し、その必要性、メリットについて詳しく述べていきます。
DaaS はクラウドサービスの一種で、特定のソフトウェアを端末にインストールすることなく、ネットワークを通じて利用できるという特徴があります。 クラウド上にあるデスクトップ環境を呼び出して利用できるため、個人の PC はディスプレイとキーボードなど必要最低限の機能があれば良いので、テレワークをするために高いスペックの PC を用意する必要はありません。
※ https://www.ascentech.co.jp/solution/column/daas.html
例えば、クラウド上で開発環境(お気に入りのエディタ, プログラミング言語, 使い慣れたツール, etc)を構築して、そこにアクセスして仕事をするようになります。アクセス元は、私物の PC や会社から支給されている PC などが多いと思います。
Cloud IDE
Cloud IDE は、クラウドにある統合開発環境(IDE)のことで、主にブラウザから操作できるようなものが多いです。 ざっと有名なものをリストアップしてみました。
提供元 | IDE 名 |
---|---|
Microsoft Azure | Visual Studio Codespaces |
Github | Codespaces |
Amazon Web Services | Cloud9 |
Google Cloud Platform | Cloud Shell Editor |
Coder | Coder |
OSS | Gitpod |
ブラウザで見ると、どんな UI でしょうか。いくつか例を載せておきます。
Cloud Shell Editor や Gitpod は、OSS の Theia というものを使っています。 また、全体的に UI がとても似ていますよね。これは、次の記事でわかりやすく説明されていますので、ご興味があればお読みください。
https://qiita.com/monamour555/items/f93287c273a388261968
これらの Cloud IDE は、ここ最近 Publickey でよく目にします。記事と投稿日時をまとめてみました。
- https://www.publickey1.jp/blog/20/visual_studio_codeeclipse_theia_10vs_codeweb.html
- 2020 年 4 月 3 日 投稿
- https://www.publickey1.jp/blog/20/githubwebidecodespacesgithub.html
- 2020 年 5 月 7 日 投稿
- https://www.publickey1.jp/blog/20/webidevisual_studio_codespaecsgithub_codespaces.html
- 2020 年 9 月 7 日 投稿
- https://www.publickey1.jp/blog/20/githubgitlabwebidegitpodgithub_codespaces.html
- 2020 年 9 月 11 日 投稿
- https://www.publickey1.jp/blog/20/googlevscodeeclipse_theiagoogle_cloud_shell.html
- 2020 年 11 月 10 日 投稿
稚拙な推測ですが、リモートワークが普及し、働く環境も変化したためかなと思っています。 物理的な PC で開発するのではなく、クラウド上にある PC で開発する、それが当たり前になるのかなと。
Theia
Theia とは何か、Github の about より引用します。
Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript
※ https://github.com/eclipse-theia/theia
この OSS の興味深いところの 1 つに、設計書が公開されているところです。
https://docs.google.com/document/d/1aodR1LJEF_zu7xBis2MjpHRyv7JKJzW7EWI9XRYCt48
Theia は、ローカルで動かすことができます。Web アプリだけじゃなく、ネイティブアプリ(Electron)もあります。
https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#quick-start
また、Docker コンテナも公開されています。
https://github.com/theia-ide/theia-apps
ベンダーニュートラルなので、VM インスタンスに Theia を入れて独自に運用するなど、ベンダーに依存しません。
個人的な話
個人的に、Gitpod を使いたいのですが無料だと月 50 時間までしか使えません。
https://www.gitpod.io/pricing/
"Professional Open Source" というものを応募したところ、Gitpod の組織 へ招待頂き、公開リポジトリの無制限利用ができるようになりました。
Gitpod を使い続けて思うこと
Gitpod は、.gitpod.yml というファイルで環境構築されます。
https://www.gitpod.io/docs/configuration/
ベースとなる Docker イメージを指定して、必要なライブラリを事前にインストールできたりします。 公式ブログに、Gitpod の完全ガイドがあります。
https://www.gitpod.io/blog/gitpodify/
また、様々な OSS を Gitpod で簡単に動作確認できます。
実際に Gitpod を使ってみると、確かに便利です。 アクセス元の PC は、非力なノート PC でも良く、Github の Repository 毎に Gitpod のコンテナがあるため、相互に影響しません。 ただ、ネットワーク遅延でちょっと待ったり、Gitpod のショートカットキーより、ブラウザのショートカットキーが上書きされて困ることが多少あります。
終わりに
ブラウザ上で開発するのって、昔からあったように思いますが、あんまり注目されていなかったのでしょうか(私が無知なだけかもしれません)。 AWS や GCP、Github など各社が積極的に手を出しているところを見ると、これからますます期待できる分野なのだと思います。
Tags
2019-09-06
エンジニアの皆さん、IoT使っていますか?スマートホームに欠かせないIoT商品を使うことで、生活体験はより良くなります。この記事では、ご自宅をスマートホーム化するためのIoT商品をリストアップします。『そんなのあるの?』という気づきがあれば、幸いです。...