Device Emancipation - Develop in The Cloud

Oh shit, I just spilled coffee all over my laptop. There goes my afternoon.

It doesn't happen every day, but it happens, or a hard-drive dies, or your significant other takes a hammer to your computer because "you won't unplug for five damn minutes".

Whatever the reason, your laptop is shot. So is your afternoon. No code coming in or going out. But the rest of your work keeps going; you're checking email on your phone, staying up with Twitter, communicating, checking builds, ordering pizza.

You should be able to put a quiver of arrows through your precious portable computering device and not miss a beat.

I Shot the Laptop

Hell, I did, and loved every second of it.

But more than your ability to go out in the garage and give your neighbors reason to call the authorities out of concern for your mental health, developing in the cloud is about consistency, up-time, and so much more.

You develop FOR this environment, why the hell aren't you developing IN it?

The Biggest Part - Your Environment

You've got everything configured the way you want it. Your CLI is pimped-perfect with ZSH or whatever, you have paths config'd, aliases, git, runtimes, etc. I know a lot of people have dot-files, scripts or other means for 'spinning up' their environments, but c'mon, we can do better.

Do you update your environment config scripts every time you make a change? Do you? really?

What if you moved your environment to the cloud? I personally like DigitalOcean and their $5 Droplets. Add $1/mo and it's backed up as well. I simply provision, config, and am off and running.

You don't have to ditch your IDE (though I'll discuss this later). There are a number of utilities for various OS's that let you mount SFTP as a directory on your machine.

Get your environment setup in one place, backed up and safe, mount it, and you've reduced 90% of what holds you back from instant up-time should you get pissed and throw your laptop at a wall.

You can use your IDE like you're used to, SSH into the box for running scripts, builds, etc. and you're no longer tied to your hard drive.

Go Big or Go Home - The Web IDE

I use Cloud9 Codio and can't say enough good things about it. With their SSH/SFTP option I can connect directly to my server, access all my files, and have full terminal access to run my commands directly within the IDE.

There are others though - ShiftEdit, CodeAnywhere, Codiad and countless others.

The best advice I can give is connect find a web IDE that lets you connect via SSH/SFTP. Work DIRECTLY on your remote enviornment and avoid multiple VM's/Environments.

When your IDE is in the cloud/browser as well you become truly emancipated. Your laptop becomes a portal instead of a workstation. You can walk into an electronics store, walk up to any computer, code, build and deploy.

This is the whole point. Because that computer you just worked on from the store can be purchased, taken home, and in the same amount of time as you spun up your environment in the store, you're back in it; coding for world peace or whatever your current focus.

I Can Do It, So Can You!

I've been an advocate of cloud-based development environments for a few years now, pressuring co-workers, friends and random strangers as though I was pushing drugs.

My general advice is to give it a try. I've found countless benefits, I imagine you will too, but the important thing is to give it a shot, find your groove and role with it. Just as everyone has their own style of coding, working, thinking; cloud-based development is the same.

Find something that fits your style and process and reap the benefits of no longer being tied to a single computer.


comments powered by Disqus