<

Cloud IDE for Engineers in the COVID-19 Pandemic

Since around March 2020, COVID-19 has become prevalent, and it's already December. The way we work has changed significantly, and remote work has become the norm. The way engineers work has also changed. Therefore, I would like to introduce something called a Cloud IDE.

Remote Work and DaaS

With the increase in remote work, more companies may have started using services like DaaS. Here is a simple explanation of DaaS:

DaaS stands for "Desktop as a Service". Normally, a desktop exists on an individual's PC, and data is stored within the individual's PC. However, with DaaS, an individual's desktop is built on the cloud, and the desktop is accessed and used through the network. Here, we will explain what DaaS is, its necessity, and its benefits.

DaaS is a type of cloud service, characterized by the ability to use specific software through the network without installing it on a terminal. Because you can call and use the desktop environment on the cloud, all you need for your personal PC is the bare minimum functionality such as a display and keyboard, so there is no need to prepare a high-spec PC for telework.

https://www.ascentech.co.jp/solution/column/daas.html

For example, you build your development environment (favorite editor, programming language, familiar tools, etc.) on the cloud and access it to work. The access source is often your personal PC or a PC provided by the company.

Cloud IDE

A Cloud IDE is an Integrated Development Environment (IDE) on the cloud, and many of them can be operated mainly from a browser. I've listed some famous ones.

ProviderIDE Name
Microsoft AzureVisual Studio Codespaces
GithubCodespaces
Amazon Web ServicesCloud9
Google Cloud PlatformCloud Shell Editor
CoderCoder
OSSGitpod

What does the UI look like in a browser? I'll post a few examples.

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

Cloud Shell Editor and Gitpod use an OSS called Theia. Also, the overall UI is very similar. This is clearly explained in the following article, so please read it if you are interested.

https://qiita.com/monamour555/items/f93287c273a388261968

These Cloud IDEs have been frequently seen on Publickey recently. I have compiled the articles and their posting dates.

This is a naive guess, but I think it might be because remote work has become widespread and the working environment has changed. Instead of developing on a physical PC, we develop on a PC in the cloud. I wonder if that will become the norm.

Theia

What is Theia? I quote from Github's about.

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript

https://github.com/eclipse-theia/theia

One of the interesting aspects of this OSS is that the design document is public.

https://docs.google.com/document/d/1aodR1LJEF_zu7xBis2MjpHRyv7EWI9XRYCt48

Theia can be run locally. It's not just a web app, there's also a native app (Electron).

https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#quick-start

Also, Docker containers are available.

https://github.com/theia-ide/theia-apps

Being vendor-neutral, you can install Theia on a VM instance and operate it independently without depending on the vendor.

Personal Story

Personally, I want to use Gitpod, but it's free for only up to 50 hours a month.

https://www.gitpod.io/pricing/

I applied for something called "Professional Open Source", and was invited to the Gitpod organization, which allowed me to use public repositories without limit.

Thoughts on Continuing to Use Gitpod

Gitpod is set up with a file called .gitpod.yml.

https://www.gitpod.io/docs/configuration/

You can specify the base Docker image and pre-install the necessary libraries. There's a complete guide to Gitpod on the official blog.

https://www.gitpod.io/blog/gitpodify/

Also, you can easily test various OSS with Gitpod.

https://contribute.dev/

When you actually use Gitpod, it's definitely convenient. The PC you access from can be a low-powered notebook PC, and since there's a Gitpod container for each Github repository, they don't affect each other. However, there are some minor issues, such as having to wait a bit due to network latency, or the browser's shortcut keys overwriting Gitpod's.

In Conclusion

Developing on a browser seems to have been around for a while, but perhaps it hasn't been getting much attention (or I might just be ignorant). Seeing that companies like AWS, GCP, and Github are actively getting involved, I think it's a field that we can expect more from in the future.

If it was helpful, support me with a ☕!

Share

Related tags