K Cartlidge

C#/DotNet. Go. Node. Python/Flask. Elixir.

Using Cloud9 for pure cloud development

This content is now deprecated since Amazon bought Cloud 9.

About Cloud9

The Cloud9 site (I'm not an affiliate or investor in any way) provides a complete development system for working exclusively in the cloud. Even if you work locally, it's worth considering as it makes onboarding new members really simple.

Why you would use it for development

The main motivation for me is possibly the deal-breaker for many others. Although I have a Macbook Air and a Lenovo Thinkpad T420, I want any development I do to be moved off local machines so the machines become replaceable and interchangeable, even with Linux boxes or Chromebooks. I won't go into why, but that's the goal.

Cloud9 provides virtual machines you can spin up on demand, clone, share, serve sites from for dev purposes, install frameworks on and even just run ad-hoc terminal commands. In other words, it meets my goal of totally separating the code from the machine. Yes, I could use Docker/Ansible/whatever to abstract away the hardware but what I'm after is not abstraction but dispensibility.

No special setup needed

You need a source control provider (usually Github or BitBucket [my preference]). You need a web browser. That's pretty much it.

The Linux terminal works (in sudo mode), the firewall already has a couple of ports open for you, and there are pre-configured base machines if you want them.

How it has worked out

I've got multiple projects I work on. Whilst I can quickly kill a workspace and create another (hence only needing one free private workspace option) I prefer to keep multiple ones open and if we don't support tools like this we lose them eventually. I therefore pay $19/month for unlimited private workspaces plus beefier VMs.

The IDE is nice. It provides most of what you'd expect from a good editor or a minimal IDE, is fast and efficient plus it renders text well. There's a plethora of options and themes, and a built-in debugger.

The VMs feel fractionally slower than the Macbook Air but not enough to be a hindrance, and they have a reasonable amount of memory and storage given that they are developer VMs not production ones.

You really need to be always-connected, but provided that's the case everything just works. Even then, if you know you are about to lose connectivity you can fetch from your Git and work locally as normal.

My only issue is that even though you can apt-get (or equivalent) Docker tools are not supported as Cloud9 itself is using Docker and won't allow Docker-within-Docker for permissions reasons.

Nothing's perfect, though, and it's a reasonable compromise.