Recently, I’ve been thinking a lot about the cloud. As a .NET developer, most of my thoughts have been on whether there were any projects I had which would make sense to reside on Azure. I struggled with the temptation of putting something up for the pure sake of trying it out but couldn’t really come up with a valid business case for the current suite of applications my team develops on. The assumption is there that moving applications to the cloud have some immediate benefit, such as scalability, ease of use in future deployments, and minimizing the need for internal infrastructure maintenance. However, whether these benefits would materialize is still in question and in most cases there simply isn’t a need right now.
So, with all of the uncertainty of putting business critical systems in the cloud yet, I thought I would try as a consumer first. I broke down my current day to day needs from my machine to see what I could potentially offload to the cloud. Here is my initial list:
- Virtual Images
- Note Taking
- Instant Messaging (Communication)
- System Administration (putty, VNC, remote desktop)
- Zune/Music/Podcasts (WP7 Downloads)
This is a difficult one because this is where I draw on the horsepower of my machine throughout the day. I did work with a consultant about eight months back where he was running his development environment purely inside an Amazon EC2 instance that he would remote into whenever needed. There are some pretty nice advantages to this, such as, being able to access your full development environment from a netbook or lightweight, inexpensive laptop. Also, this removes the worry about breaking, losing, or having your primary development machine stolen.
In addition to the development environment and OS, I focused on source control. Most companies that employ full time developers have centralized source control. However, if you’re on your own, or want to have separate source control for your non-work related projects, there are several options you can explore.
Several companies host Team Foundation Server (TFS) for a monthly fee of anywhere from $15-40 per user per month. Check out a list of TFS hosting companies from Microsoft.
If you are working on purely open source projects that you would like to source control, you can also host your code on Codeplex.
For more cost effective cloud-based source control (as low as $7 per month), try comparing some of the Subversion providers.
There are quite a few options for storing documents online, but besides Office 365, I haven’t seen a really complete set of tools for developing document content without a local install.
A free alternative to Office 365 is Google Docs for basic document types.
I am still on the lookout as to how I want to store pictures and videos. My current search has narrowed me down to Photobucket and Flickr with Flickr being the clear favorite for me. However, if someone has a really great suggestion, please let me know because I’m not quite sold yet. With either solution, it looks like you’re probably going to have to pay a fairly nominal amount in order to make this a truly usable option.
See Amazon EC2 and Microsoft Azure VM Role above.
As a side comment, I really like spinning up VM’s for specific purposes instead of polluting my machine with hacks and patches to get all of the software I need to run on a single instance without causing headaches.
This is an interesting one. I had been diligently using OneNote for quite a while now and only last week switched to Evernote. I am pretty confident I will be staying with Evernote for one primary reason, compatibility. Above everything else, is the wide array of compatibility for devices and operating systems. I run an Ubuntu environment in addition to my Win7 and WinXP VM’s as well as I may be looking into the Asus eee Transformer 2 tablet when it comes out in October. Both Linux and Android Honeycomb do not support OneNote to my knowledge and do not require any additional license purchases for OneNote.
One thing I did like about OneNote a little better was the much richer text entry for note taking that OneNote offered, however for my personal notes it is something I can live with in Evernote.
One final note, for Evernote Pro Edition there is a charge of $5 per month which allows greater bandwidth usage per month for storing your notes.
There are countless options for webmail, however I have separated my work email through company exchange and my personal email through Google Business Apps. I use the free business version so I can maintain my personal domain instead of gmail.com.
There are several options here, especially around which particular instant message client you used locally, however if you want to aggregate nearly all of the major services and access a completely web-based client, then meebo.com is a decent choice.
All of the usual suspects for online tools. Twitter, Hootsuite, WordPress, Blogger, Facebook, LinkedIn, etc.
Obviously, I use WordPress for my blog but I included Blogger because many colleagues of my use Blogger and like it quite a bit.
In most cases these days, this means the following tools I need to access: PuTTY, VNC, and Remote Desktop. PuTTY is nice since there is no install needed, so I can put it on my cloud file storage (read below) and access it directly. Sometimes I wish more programs were like this.
Viable contenders include Amazon, Spotify, and Pandora. Unfortunately for my WP7, Zune needs to be locally installed and occasionally help sync my physical device. If anyone knows of a way around this or really good services for storing and accessing all of your music please let me know.
Again, there are a lot of options for simple file storage. I’ve tried a few and here are the ones I liked best.
Microsoft’s Skydrive, used by several applications including OneNote gives you 5 GB of free space and the ability with Windows Live Mesh to automatically sync files across several machines. Photos I take with my WP7 automatically are uploaded to Skydrive for safe keeping (and helps limit the space taken up on my phone itself). The downside, is that I had several problems with Windows Live Mesh not working properly inside my guest VM’s and often failing to sync or connect to the service on my host machine. I still use Skydrive for my WP7 photo storage automatically, but I’ve switched off for file storage.
Google Docs was the original location of my offline stored documents but it’s fairly crude interface and lack of support for so many file types hindered my long term use.
Ubuntu One is very similar to Skydrive and performs live syncing as well, but to my understanding is only for the web and Ubuntu operating system. I also ran into problems connecting to the service often with Ubuntu One but it worked enough to make it on the list.
Finally, the service that I currently run and plan to use for a long time is Dropbox. Similar to Windows Skydrive, Dropbox is both a web version and a client installed helper application which monitors a local folder syncing files to and from the cloud. I can readily install the client tool in multiple operating systems, inside of both host and guest VM’s, and it seems to always connect in the background without problems.
There is a cost for Dropbox depending on the amount of storage you need and if it is quite large you may want to continue comparative shopping. You can view their price chart to help make your decision as to whether Dropbox is right for you.
Not Everything Can Go to the Cloud
Unfortunately, there is still quite a bit that I need to run natively, especially anything that requires communication to physical devices (Kinect, WP7, USB devices, video camera, etc.)
Also, certain development requirements may not be able to run in a virtualized environment such as the Windows Kinect SDK, XNA Game Studio (this may no longer be true but it was for quite a while and I’ll leave it up to someone else to fact check as it’s getting late).
Other Useful Web-based Services
Passpack for storing passwords online.
Delicious for storing bookmarks online.
Mint for personal spend tracking and planning.
Zillow for depressing home valuation and trending.
Bitly for url shortening and link tracking.