Cloud Computing is currently the hot topic in the developer world these days, and it seems all anyone wants to talk about is the cloud. If you're like me you signed up for something like Windows Azure just to see what the hype was all about. There are a lot of good reasons to move an app to the cloud, but it's still not for everyone. There are some things you need to think about before taking this gamble with your app.
Should I Move My App or Website to the Cloud?
A huge part of being a geek is wanting to use the latest and greatest stuff, there's no question about it and the bragging rights of being an early adopter are quite a draw. But that shouldn't be the reason you take a gamble with an enterprise application. Ask yourself the following questions before taking the plunge.
1. Do you really need the scalability yet?
This is an important question because not everyone needs to be infinitely scalable. If you're a large operation and have a sustainable growth pattern there's no question the cloud will help you, but what if you're just a small startup with a small niche customer base? One thing to think about here is how often you're really going to need to slide that bar and add more servers.
2. Has the cloud proven itself in your opinion?
This is a big one of course for skeptics because Windows Azure and other cloud services have had their fair share of problems already. Outages, replication issues and security problems have plagued cloud service providers since the start. Every new technology goes through this phase and cloud computing is no more or less problematic than any other new tech, but you have to decide whether you want you want to run that risk. Do you stay with what you know or risk the unknown?
3. How secure do you need your data to be?
There are a lot of questions regarding the security of the cloud. Simply put we are not at a place where can fully trust this technology. Nobody wants their data stolen but there are certainly varying levels of data security needed and you can assess what your acceptable risk is. Certainly you'd be more willing to risk your son's softball team schedule or your restaurant review site much more than the personal private data of every employee of your organization for instance.
4. Will deployment be a huge hassle?
Do you have tons of data that needs to be moved? Do you have a continuous operation that will need to be interrupted while you transfer everything to the cloud? What about custom configurations and whitelists? The basics of any migration are also concerns for the cloud. You have to have a compelling reason to move to it if you're going to be spending considerable resources doing it. "Wanting to try this new Azure thing" is probably not a good enough reason to take your office down for a few days.
5. Will it be cost effective?
This is the most obvious question to ask, that's why I placed it last. Will this be something that you can afford? Windows Azure is not cheap, and neither are any other providers. Don't get me wrong I consider the value of what they give you for the price to be well worth it, but what if you don't need it?
If you're a bustling company with thousands of people using your app and tons of traffic flowing all over, Azure or some other cloud provider will save you money. If you're a small business that's been getting by fine on your $10 a month GoDaddy hosting then the extra cost may not be worth it. You will have a base level of service you have to pay for whether you need it or not, and it may be just wasted money.
The move to cloud computing is just like any other major IT decision. You evaluate your needs, assess the risk, determine your budget and perform a risk benefit analysis. Just because everyone and their dog is talking about the cloud doesn't mean you have to do it now. If it ends up being a good solution for you, you'll find the benefits of cloud computing live up to the hype. Good luck with your decision.
About the Author
Jeremy Morgan is a software engineer with over a decade of experience as a polyglot coder, dabbling in both LAMP and .Net worlds equally. He enjoys creating tutorials for new programmers in the hopes it will encourage more people to join this exciting hobby. Check out his programming blog here or say hi on Google+ sometime.