ben.eficium is the blog of Ben Slack, citizen and principal consultant at Systems Xpert.
All posts are Copyright © Ben Slack on the date of publishing.


19 October 2009

Is Cloud Computing Fundamentally Different?

The short answer is: no. Cloud computing is not revolutionary. It is merely an incremental improvement in delivering system characteristics such as scalability, availability, resilience and disaster recovery. With the right system architecture, cloud computing is certainly capable of delivering same or better standards of these characteristics that you currently provide, at a fraction of the current cost. Additionally, the cost differential allows small-to-medium business to deliver robust, enterprise-strength computing.

Scalability

The great thing about the cloud and scalability is the scalability-on-demand aspect of the offerings of the largest providers. If you need more more processing power and/or memory at certain times of day, week or month or for ad-hoc periods, then you can temporarily schedule an increase in power and are only charged for the time you are using the higher specifications. The primary example of this is Amazon's Elastic Cloud Computing (EC2).
This is “scaling-up”. However, with all n-tier applications there is still a need to “scale out” to provide robust online applications. This is done in the cloud in the same way you would do this in-house or hosted, by authoring applications to be stateless, clustered and/or load-balanced with robust RDBMS back-ends.

Availability & Resilience

Amazon offers its EC2 service in a number of geographically distinct zones which do not rely on the other for availability. Therefore when one zone is unavailable for whatever reason, the other zones remain active. Scaling your applications out over multiple zones, or using Dynamic DNS to cut between zones when one zone is unavailable, means that cloud computing offers a lot of potential to guarantee the 99.97% up-time that many service level agreements require.
The platform-as-a-service (PaaS) vendors also have a great deal of geographic redundancy in their systems, meaning that your PaaS applications may well be available when a particular part of the providers infrastructure is unavailable. Economies of scale mean that having a third-party provide this kind of infrastructure is going to be a lot more cost-effective than providing it in-house.

Disaster Recovery

The cloud is a great option for disaster recovery. If you have DR capability, or are thinking of investing in it, then you have to consider the cloud. The key area to consider is transferring large amounts of data over an internet VPN, which you may need to do in order to guarantee a seamless cut-over in the event of a disaster. The bandwidth provided by your ISP may not be enough to compensate for the dedicated WAN which most companies are using for DR at the moment.
Statutory requirements regarding privacy and storage of certain information may mean that you are unable to move all of your disaster recovery needs to the cloud. But there is certainly scope for every organization to implement cloud DR for at least some systems.

Conclusion

The cost differential and the provision of scaling-up on demand is likely to be the key drivers moving systems to the cloud. There are increased risks that need to be considered before using the cloud to host a new or existing system. I'll cover these in my next post. Put simply, cloud computing isn't for every organization in every case. There are some situations where you'd be crazy to use it, some situations where you'd be crazy to use anything else and some situations where the value it adds to a system may be marginal. Every project should consider the cloud in its own context.