Do you want to host your Theia-based application in the cloud and allow your users to use your custom IDE or tool from anywhere, just using a browser? In this article, we introduce Theia Cloud, a light-weight and Kubernetes-centric framework for deploying and running Theia-based IDEs and tools to and in the cloud.
Eclipse Theia, the next generation of the Eclipse Platform, allows you to build custom web-based tools and IDEs. Every Theia-based application consists of a frontend and a backend part. The frontend runs in a browser, the backend can either be deployed locally (for a Theia-based desktop application) or remotely for a cloud application. However, deploying a Theia backend is a bit different compared to regular business applications. IDEs and tools usually need to access an underlying file system and spawn new processes such as compilation. Therefore, the backend of cloud-based tools is deployed so that every user is running in a dedicated container. To deploy these containers for users on demand and to manage their access to it, you need some sort of orchestration solution. This is exactly where Theia Cloud comes into play. It provides a framework to run your Theia-based applications in a Kuberenetes cluster.
The following diagram illustrates the Theia Cloud workflow in a simplified way. Users of your cloud-based IDE or tool first access a “custom landing page”, which allows them to request a new session and optionally to log in. This “landing page” is usually a custom website that allows the users to interact with sessions, e.g. to start new sessions or to browse existing sessions. Theia Cloud provides an API to create and connect your custom landing pages based on your specific requirements. Based on the user request, Theia cloud will instantiate a new “Session”, which is essentially a container running a Theia backend. Finally, Theia Cloud will provide a new URL of the session to the custom landing page. The user gets forwarded to this URL allowing accessing the custom IDE or tool via the browser. This custom IDE or tool is technically a Theia frontend connected to the backend started before.
For a real set-up, there are a few more details to consider, such as authentication and how to configure which Theia-based application is actually started in the background. We recently held a talk at EclipseCon 2022, which provides more details (see below). Also checkout the Theia Cloud website for more information.
If you are interested in building or hosting a web-based or migrating an existing one to the web/cloud, EclipseSource has a strong focus on web-based tools and IDEs, baked on VS Code or Eclipse Theia. We also provide explicit support around Theia Cloud. We can assist you in the conception phase, and also the design and the development of your toolchain. Please have a look at our service offering for tools and web-based tools.