What is a Remote Development Environment
I see a remote development environment as a workspace somewhere else. Weird explanation I know. The somewhere else, could be a container running on your machine, your home lab, a cloud, your infrastructure anywhere you see fit. A very broad specification list, I know, one I do believe is worth thinking about.
Requirements I personally have for a remote development space.
- It should not have to be managed by you BUT can be
- It should be ephemeral
- Easy to set up and destroy
- OS Independent
- It should be IDE independent. The caveat here is that in order to enable the remote piece, there needs to be a connection to the machine. My preferred way of doing this is using ssh.
- It needs to be easy to use.
- It should not cost more than a device I can purchase
I do not want to spend a long time faffing, or doing something I do not have to do. It should just work no matter your prefered IDE or OS.
Tools out there
There are two main products I tried
To be fair, I did not try every remote development tool out there.
Eclipse Che
Che looks really nice, has a few really awesome promises and it being open source is a bonus, because cost is a very big factor in my world. The nice thing about Che, is you can host it yourself, and manage cost or on your own tin. After spending a day trying to get it to install, following the documentation, I was not able to get it to install.
After much frustration I explored more and more of the toolset. From what I can see, RedHat is doing most of the development on Eclipse Che and the work being done is mostly for RedHat and OpenShift. I believe the idea is great and the vision is awesome but the execution is currently very one-sided. To be fair they have not released a non-alpha version yet.
JetBrain Spaces
Spaces is everything and more. They have issue tracking, task tracking, people management … With all these great features the downside is you are locked into the paid for Intellij stack of ide’s. And on the free version each user is limited to 2000 Compute Credits a month.
This leaves us with 40 hours of remote development environment time per month / user. The first tier up, 4000 Compute Credits / Month is not much better. I am not sure about you, but the developers I work with, do not work for 80 hours a month.
GitHub Codespaces
Is also an amazing toolset, it integrates well with GitHub, works with and only with vscode. I have not personally tried this, but I do believe they are costly. Pricing is slightly more than an AWS or Azure instance with the specs described on the website.
Cost of these tools
Convenience
CodeSpaces and JetBrain Spaces are both amazing and work well.
JetBrain is doing so much with the tool , it is really nice to see the progression and competition they will be creating with it. Although I do not think they have focused enough on the Remote Development side of things.
The convenience lost with both of these is the lock in. The IDE you and your developers need to use are specified up front with no wiggle room.
I currently do not have the biggest team, but we all like different IDE’s for different reasons. As such it is really important the remote development environment works for the IDE’s we use.
Time Cost
Che was the only one of the three environments where I actually wasted my time. It was not easy to get things running and in the end did not succeed. There were many problems and issues encountered during the install process and in the end, it did not work well for us. It feels like they want you to use IBM cloud.
Finance Cost
For most of these environments, it is cheaper to purchase a decent laptop with amazing specifications, and have the team manage their own development environments then it is to purchase a SaaS product which enables remote development.
The total costing per month was at least R500 per month ( codespaces 2 cores and 4GB RAM for 8 hours per day and 21 days a month with an exchange of 17:1 0.18*8*21*17
). This is the same as purchasing a laptop for R18k with a write off period of 3 years.
The financial benefit of this is limited. There is some overhear with having a laptop, but the fact that you are dealing with developers. They should know what they are doing and should have the knowledge to sort out this anyway. The other thing is, you have to get them a work laptop anyway. So the remote development space is overhead.
Outcome
From all this I think its beneficial for businesses to wait a while before looking at remote development workspace. Although the benefits are there, and for a corporate the risk mitigation of having your code living within the management of your IT team, and code / data never leaving the “building” has potential.
I think there is a little more way for us to go here before we are truly enabled with this sort of work environment.
A friend and I, have started working on a small project which enables you to manage your development environment from anywhere, work from a laptop anywhere while the code stays securely within the companies borders. One of the initial versions are here - https://github.com/team142/dev-machine