AppHarbor is enticing for many reasons. First, it provides .NET cloud hosting, which at the moment Heroku does not. Second, and more importantly, it gives you insane deployment speed and turnaround. With our multi-tiered team structure (design/development/programming), our deployment process has a lot of moving parts opening up numerous potential headaches. This is why AppHarbor is so much more enticing.
Being tasked with writing a WCF REST service, upon entering the site I was quite surprised at the ease of use. Signup was simple, only requiring basic information:
After a brief confirmation email, I was ready to go. After naming the site, I decided to take advantage of a free SQL server instance since this would be a data driven service. With this option, you’re provided with a single shared instance and host/user/pass information so you can connect with your favorite database management tool. They also provide areas to enter a connection string alias and entity framework metadata. This is nice because our webservice uses EF. Update your web.config file and you’re just about set up.
1. Migration. This is the one place where AppHarbor needs some work. Fortunately for me, the entire database we we’re using could be scripted into an 80k file. But what happens if you have a large scale database?
2. Storage. With our free instance, we are only allowed 20mb of space. Or course that’s fine for a simple web service or website, but anything more and you will need to upgrade.
Upgrading. One of the drawbacks to cloud hosting is that as soon as a website scales upward, it can quickly spawn into quite an expensive operation. I’m not speaking of strictly money either; it also comes with a learning curve, especially for configuration, setup, and deployment time. We learned that first hand when we looked into the Windows Azure platform. Don’t get me wrong, there is certainly a market for Azure. But after sitting through an Azure presentation, it looks like that market is larger companies and enterprise level applications.
Case in point: From the moment I created an AppHarbor account to having a functional deployed site; one hour.
What does this mean? Virtually instant deployment. No FTP, RDP, Ctrl C+V, MS Deploy. No worries.
Compiled, unit tested, deployed. DONE.