ホーム自己紹介ブログ
NO.58
DATE2020. 12. 12

コロナ禍におけるエンジニアのための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 AzureVisual Studio Codespaces
GithubCodespaces
Amazon Web ServicesCloud9
Google Cloud PlatformCloud Shell Editor
CoderCoder
OSSGitpod

ブラウザで見ると、どんな UI でしょうか。いくつか例を載せておきます。

visual studio codespaces
visual studio codespaces
cloud shell editor
cloud shell editor
gitpod
gitpod

Cloud Shell Editor や Gitpod は、OSS の Theia というものを使っています。 また、全体的に UI がとても似ていますよね。これは、次の記事でわかりやすく説明されていますので、ご興味があればお読みください。

Monaco エディタ系クラウドIDEを整理する - Qiita
数年前から存在していたものの、クラウド IDE が実用になる環境として注目され始めたのは至近 1 〜 2 年くらいかと思います。 その起爆剤の一つとして、エディタ・エンジン Monaco の存在があります。 web で使えるエディタ・エンジンは、Monaco 登場以前から、...
qiita.com

これらの Cloud IDE は、ここ最近 Publickey でよく目にします。記事と投稿日時をまとめてみました。

  • publickey1.jp
    • 2020 年 4 月 3 日 投稿
  • publickey1.jp
    • 2020 年 5 月 7 日 投稿
  • publickey1.jp
    • 2020 年 9 月 7 日 投稿
  • publickey1.jp
    • 2020 年 9 月 11 日 投稿
  • publickey1.jp
    • 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 つに、設計書が公開されているところです。

Multi-Language IDE implemented in JS Scope and Architecture
Multi-Language IDE Implemented in JS Scope and Architecture Overview This document details the scope of the IDE framework implemented in JavaScript, HTML and CSS. It also details the architecture choices that will guide the development of the software. Scope The Javascript IDE project has the ...
docs.google.com

Theia は、ローカルで動かすことができます。Web アプリだけじゃなく、ネイティブアプリ(Electron)もあります。

theia/doc/Developing.md at master · eclipse-theia/theia
Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript. - eclipse-theia/theia
github.com

また、Docker コンテナも公開されています。

GitHub - theia-ide/theia-apps: Theia applications examples - docker images, desktop apps, packagings
Theia applications examples - docker images, desktop apps, packagings - theia-ide/theia-apps
github.com

ベンダーニュートラルなので、VM インスタンスに Theia を入れて独自に運用するなど、ベンダーに依存しません。

個人的な話

個人的に、Gitpod を使いたいのですが無料だと月 50 時間までしか使えません。

gitpod.io

"Professional Open Source" というものを応募したところ、Gitpod の組織 へ招待頂き、公開リポジトリの無制限利用ができるようになりました。

Gitpod を使い続けて思うこと

Gitpod は、.gitpod.yml というファイルで環境構築されます。

gitpod.io

ベースとなる Docker イメージを指定して、必要なライブラリを事前にインストールできたりします。 公式ブログに、Gitpod の完全ガイドがあります。

gitpod.io

また、様々な OSS を Gitpod で簡単に動作確認できます。

Ona for Open Source | Free Credits for Maintainers
Get up to $200/month in Ona credits for maintaining open source projects. Apply now and accelerate your open source contributions with AI-powered development.
contribute.dev

実際に Gitpod を使ってみると、確かに便利です。 アクセス元の PC は、非力なノート PC でも良く、Github の Repository 毎に Gitpod のコンテナがあるため、相互に影響しません。 ただ、ネットワーク遅延でちょっと待ったり、Gitpod のショートカットキーより、ブラウザのショートカットキーが上書きされて困ることが多少あります。

終わりに

ブラウザ上で開発するのって、昔からあったように思いますが、あんまり注目されていなかったのでしょうか(私が無知なだけかもしれません)。 AWS や GCP、Github など各社が積極的に手を出しているところを見ると、これからますます期待できる分野なのだと思います。

クラウドインフラ

-

シェアする

フォローする

次のページ

2020年の振り返り。結婚と継続力

前のページ

TypescriptでArchUnitしてみた

関連する記事

タグ「クラウドインフラ」の記事

Docker Image に 構造化テスト container-structure-test を試してみた

Dockerイメージ内の構造や設定が期待通りかどうかを検証する `container-structure-test` を知りました。container-structure-test GitHub リポジトリ。せっかくなので、試してみました。

2024-03-29

テスト
クラウドインフラ
BigQueryだけで完結するモック可能なユニットテスト手法

BigQuery、皆さん使っていますか? 私は、業務でBigQueryを使ったデータ構築をしています。品質担保のため、BigQueryのSQLに対してテストをしたいと考えています。本記事では、BigQueryだけで完結し、かつ、Mockデータを差し替え可能なユニットテスト手法について、紹介します。

2021-11-26

フロントエンド
クラウドインフラ
テスト
TikTokスクレイプ基盤をGCP上で構築してハマったこと

TikTokへスクレイプするバッチをGCP上で構築しました。GCP構築のシステム設計話と、その構築時に、ハマったことを共有します。

2021-08-28

サービス
クラウドインフラ
成果物
クローリング
← ブログ一覧へ