Skip to content
gmawdo edited this page Dec 16, 2021 · 7 revisions

Welcome to the theia-cloud wiki!

What's the Theia Cloud?

It's about fast workspaces for IDEs based on Theia. Theia is fast per se, fast here means fast workspace launch times with massive scalability.

Take a single instance Theia environment that works on an individual's server. How can that be served to a mass market with super quick start up?

Eclipse Che solves a superset of the problem but suffers from start up that is too slow. Gitpod is a closed source service that serves workspaces and it does this in a performant way. Both Che and Gitpod leverage Kubernetes for scale.

Theia Cloud is a light weight workspace management capability the marries: Theia, an OAUTH2 based authentication & authorisation capability, and Kubernetes.

The result is highly scalable Theia based IDEs, each IDE type underpinned by a Kubernetes service with readied pods.

Quick-win strawman

The initial strawman is proposed to provide the facility for a dev to login to a provisioned C++ dev env within 5 seconds.

Specific technology for strawman

  • Theia IDE supporting Clangd-9 on Debian 10 as a Docker image (the App)
  • IDE embodied as a Kubernetes Service (via a Deployment)
  • Keycloak as OAUTH2 provider
  • Keycloak-Proxy (new name for GateKeeper) - this sits between the service and the app (Theia IDE)
  • Kubernetes labels as the means to 'reserve and provision' an active pod for user session (to be proven)
  • Kubernetes secrets as the means to furnish a provisioned pod with the user 'profile' which may contain key files (e.g. git keys)

The follow image shows the Kubernetes based architecture at the high level.

A Kubernetes based scheme for workspaces