Some downsides of cloud computing
Cloud computing sounds wonderful so far, but nothing is perfect. There are aspects of cloud computing that will involve compromising, and in some cases, may make cloud computing infeasible for a company; let's have a look at a few of those:
Less control on application environment:
One of the biggest concerns is that we are no longer in control of our application environment. Giving up control over the maintenance of the firewalls, servers, and operating system can be troubling, especially for sensitive institutions such as health or banking. We are now storing data and our application in a publicly accessible space. There is the possibility of a data breach through some means other than our application. To address these two concerns, services and plans calling themselves "private clouds" are beginning to enter the marketplace. These private clouds will partition our space in a secure way from prying eyes but still allow us the level of access, uptime, and backup we desire from the cloud.
With someone else in control of the patch level of the operating system, testing against new updates becomes an ongoing process. None of us have ever had application issues resulting from a security update, right? The good news is, we can have snapshots of production environments, which can be used to test patches. This makes it significantly easier to have a test system that replicates production.
Higher costs:
For many web-based applications, the costs for a cloud application are probably higher than standard shared hosting. Based on the pricing announced at PDC 2009, a simple website application with a single instance would cost around $100/month to host, compared to around $5-$20/month for standard shared hosting.
Difficulty with hosting:
Finally, in most cases, hosting an application in the cloud is not as simple as just deploying to a remote server. For existing applications, there may be some significant changes, such as replacing local connection strings with a service-oriented architecture, or utilizing high-performance storage such as tables and blobs rather than file system storage. Hopefully, the rest of this book will help diminish any differences between a local and a cloud application.