There are many offerings for cloud services, but developing and moving applications to a cloud environment is not always a straightforward process. The Cloud9 IDE fills this gap with a hosted solution for development and moving code to a cloud service.
Your IDE available everywhere
The Cloud9 IDE is a cross-platform, browser-based development environment that allows you to build applications in your browser (it makes me think of jsFiddle). It utilizes the Ace code editor, and it supports Python, CSS, XML, HTML, and CoffeeScript.
Cloud9 has an excellent plug-in architecture, so support for other languages is possible and highly likely. In addition to the extensible architecture, the IDE fully integrates with code repositories GitHub, Bitbucket, Mercurial, and Git, and you can use FTP. The reason I am using the IDE is its integration with cloud environments Joyent, Heroku, and Windows Azure. Hopefully, more environments will be added in the future.
Cloud9 provides two ways to use its environment - basically, you pay or you don't. The free model allows you to get up and running quickly while your code is publicly available. With the premium model ($15/month), you can retreat to your own corner, where nobody can view your code/projects unless you desire. It is hard to beat either option.
Why bother with another Web development tool?
Like many other products, Cloud9 is open source and has a huge following and support (including from Microsoft). In addition, it runs in the browser so the IDE and code is available wherever you have a computer (it can be installed standalone as well). The pricing for the free edition couldn't be better, and it works well. Cloud9 also promotes collaboration - you can control who you want to see and work with the project, and you can collaborate online. One drawback is the limited scope of the coding it supports, so you won't be building any .NET or Java applications with it anytime soon.
A Node.js project open in the Cloud9 IDE. (Click the image to enlarge.)
Build and deploy a Node.js application
While it supports other languages, Node.js is the reason I use Cloud9. The IDE provides numerous Node.js specific features, including NPM support, syntax highlighting, code completion, and debugging. Specifically, I needed to deploy a solution to an Azure environment. If you have worked with Azure, you know that moving code/applications to its environment can test your patience. With Microsoft fully embracing Node.js in Azure (go figure) and with both being supported in Cloud9, I was ready to go.
The first step in a building the application is entering the code with a sample shown in Figure A. Once the code runs as expected, you can deploy it to production. My deployment target was Azure, so a simple click of the Deploy button (on the far left) starts the deployment process.The window in Figure B appears when you click Deploy, allowing you to deploy code to Cloud Foundry, Heroku.com, or Windows Azure. You must have an account set up with each offering to use them as the deployment target. In my case, I utilized Windows Azure with Figure C appearing when everything is properly configured. Once the deployment target is set up, a simple right-click on it and choose to deploy the code to it as shown in Figure D. Figure B
Choosing a project's deployment target (Click the image to enlarge.)Figure C
Creating a deployment target for Windows Azure (Click the image to enlarge.)Figure D
Deploying solution to Windows Azure (Click the image to enlarge.)
Develop and deploy anywhere
A great aspect of cloud computing is not having to support servers and worry about infrastructure. This same thinking applies to the Cloud9 IDE — you can use a browser almost anywhere as long as you have a computer and an Internet connection. The number of features available with Cloud9 and its tight integration with services like Windows Azure make it a winning combination for my current needs.
Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.
Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a production environment on a daily basis.