After building out the OCI Arcade on Oracle Always Free Tier (check out a recent blog here), I was on a roll. What was next? The inspiration came after a virtual session with some other mentors that I was working with. The need to share code, have an environment that was easy to use as well as provide a method of multiples users developing in the same workspace.
I remembered back in 2016, that I used Cloud9 which was a development environment that I could plug into with a full Java environment. We used to for our Developer Experience workshop for some client-side dev (with the client-side installation issues). Cloud9 which since got bought by AWS. And then a few years ago, Eclipse Che and Codenvy surfaced as a potential alternative. It’s still around and going strong from what I see. And I dug a little deeper into Che and found that Che’s browser-based development environment is based upon a project called Theia – a Cloud and Desktop IDE. … So bingo … here it is Theia-IDE deployed into Oracle Always Free Tier for cloud-based / browser development environment. Check out more about what we did.
Theia-IDE (here) is relatively simple …
- A development environment for lots of different programming language
- It’s highly extensible and plugs in VS Code extensions as well
- It’s all web-based in a browser
- There’s a compute instance under it to compile / run the code
- You can deploy Theia anyway (and in this case on Oracle Cloud Infrastructure)
There’s a couple of things that I’ve done here …
- Deployed this all with docker (similar to the OCI Arcade above)
- Added SSL (though it is self-signed)
- Added authentication (using nginx at the front)
- Sized it up with OCI Always Free Tier
This is what the architecture looks like.
To get this all going, we did something similar to the OCI Arcade to.
Theia-IDE project (including nginx)
You can check out the repository (here). In this repository we focused on standing up the Theia-IDE. A few different things happen here.
- Creating a password using htpasswd that is integrated with nginx
- Install nginx in a docker instance
- Install theia-ide using a docker image from docker hub and you can check them you (here)
Using Oracle Resource Manager (ORM)
You can check out the repository (here). In this repository, we focused on using Oracle Resource Manager (ORM) to provision the Theia-IDE project. In this repository, you resources for:
- Provisioning the VCN and related network resources
- Provisioning the compute shape
- Executing remote scripts (on the compute)
In this ORM stack we also considered the different theia-ide docker images so we added them into the variables.
And here is the result, Theia-IDE up and running within minutes of automation with ORM on an Always Free Tier.
The README has the details there too and it’s been purposefully built in such as way that it can be run on an Always Free Tier Oracle Cloud tenancy. If you need an environment to try this out and start developing – head to the following link and sign-up. https://www.oracle.com/au/cloud/free/. Note – the compute in the Always Free Tier is currently VM.Standard.E2.1.Micro: E2-based standard compute. Processor: AMD EPYC 7551. Base frequency 2.0 GHz, max boost frequency 3.0 GHz. So, depending on what you need, this may not be sufficient.
To find more information about Oracle Resource Manager, have a look at the documentation – https://docs.oracle.com/en-us/iaas/Content/ResourceManager/Concepts/landing.htm