|
As shown in the cost analysis performed in article Cloud Computing Costs for Small Applications, Cloud Computing doesn't make sense for every web application. However there are several key areas where the benefits of Cloud Computing can be quickly realized. This article will examine a few of these benefits. ScalabilityThe most obvious and most commonly discussed benefit is scalability Applications which require large amounts of CPU power to run, and need to support growing demand, need scalability. These applications will undoubtedly benefit from Cloud Computing architecture and services. A prime example of a CPU intensive site is YouTube. YouTube allows users to upload videos in a variety of formats, and then converts these videos into a standardized format for consistent playback by all other users. This video conversion is a CPU intensive process which would quickly overwhelm the resources of a few solitary CPUs. To throttle this intense load, YouTube does not attempt to process these videos in "real time", but rather informs the user that their video will be processed shortly. Behind the scenes YouTube adds the video to a queue of "to be processed" videos. This allows a cloud of video processing CPUs to process videos as these computers become available. As each video CPU completes processing one video, the next video is requested from the queue. This basic Cloud Computing architecture allows for additional CPUs to be quickly added to the video processing cloud as required, to handle the immense load of video processing required. Equally exciting, by utilizing a Cloud Computing service provider (for example with Amazon EC2) an entire CPU can be cloned, so that no configuration of the new video processing CPUs would be required at all. Provisioning additional CPUs becomes as easy as a copy and paste. And if video processing demand ever shrinks, the number of active CPU instances can be reduced with a few clicks, reducing your hourly billed CPU cost. Bandwidth CostsHigh bandwidth websites and applications can also benefit from Cloud Computing. Both Amazon and Microsoft's cloud computing offerings include extremely affordable bandwidth charges. Where some co-location providers charge $1.00 or $1.25 / GB of traffic, these Cloud Computing providers are charging between 10 and 17 cents per GB, with discounts at higher usage levels. Be hosting heavily downloaded files on Amazon's S3 platform, or using Cloud Computing instances, any application can quickly take advantage of data transfer rates usually reserved for the mega internet players. This could reduce your monthly bandwidth charges by a factor of 10. Performance Analysis & System Testing
One of the more unexpected and most useful benefits of Cloud Computing has been the ability to test existing applications on upgraded hardware. Amazon's EC2 services allows you to provision and drop a variety of server configurations on an hourly basis. This allows performance testing on a variety of server sizes without any up front hardware costs. For example, assuming you have an application which has been running slowly recently on a server in your server room. This application was never intended to be used as heavily as it is being used today, and it appears that the application has outgrown the server that it is running on. To address this problem, you have three options: 1. Perform a major update to the code and/or architecture of the system to attempt to reduce CPU requirements 2. Completely rewrite the software with the increased load in mind 3. Buy a faster server to accommodate the increased load. The third option is appealing because it appears to be a low risk solution, since no changes to a working application would be required. However there is no guarantee that the new server will be fast enough to completely eliminate the problem. To test this option you could easily end up spending $10,000 to $20,000 on a new high performance server that does not solve the problem, or perhaps the problem would re-surface a few months down the line, and you would be on the hook for the upgraded server. This would be an expensive wrong turn. A solution presents itself from the Cloud. With Amazon's EC2 Cloud Computing service, you can sign up for a high powered server instance on an hourly basis, configure it to run your application and perform your tests with little to no upfront costs. Should the tests indicate that the performance boost was not what you had hoped, simply cancel the CPU instance, and only pay for the hours of testing you used. For example, to test your application on a single CPU with 7 cores, about 25 times as powerful as a standard 1 GHz 2007 Xeon processor, it would cost you $1.20 an hour. So to test your application for a day, it would cost you $28.80. You could then make a decision based on those test results, to continue running on the Amazon EC2 server, or purchase a high powered server for your computer room. You can even try out a few configurations to make sure you don't pay for too much power.
|