Patterns for Moving to the Cloud
As we have reported previously, "we still do not have enough knowledge/data about correct usage and economy of Cloud Computing". A Simon Guest’ Tech Ed presentation, "Patterns for Moving to the Cloud", provides some additional information on this topic.
Simon’s presentation is trying to answer the question "What applications work best in the cloud?" and introduces five major patterns for moving applications to a cloud:
Transference - "Taking an existing on-premises application and moving it to the cloud". This pattern is typically driven by economic factors - it is cheaper to leverage cloud resources then run these applications in house. In this case, existing, in house applications are moved to the cloud platform as is. Commodity services, for example email, CRM or other packaged applications are typical candidates for this pattern. When this pattern is applied it is necessary to watch out for customizations that the host/cloud does not support.
Scale and Multi-Tenancy - "Creating an application that has the ability to handle web load without requiring the full capital investment from day one." This is a common pattern for prototyping new applications - it allows to significantly lower entrance cost for prototyping new ideas. It also let you start very small, yet expand when needed. Finally it is applicable as a risk mitigation measure for the applications with unpredictable growth.
Burst Compute - "Creating an application that has the ability to handle additional compute on an as-needed basis". This pattern is driven by the economic factors - cost of additional hardware capacity required to support this rare but real bursts of load is much higher compared to the cloud usage.
Elastic Storage - "Creating an application that has the ability to grow exponentially from a storage perspective". Although local storage is relatively cheap, its management is fairly expensive and, as a result, usage of a cloud platform can be a cheaper alternative to a local storage management. Usage of this pattern also requires special consideration for accessing the data. If a cloud is used purely for storing the data, while all of the processing is happening locally - this pattern might not be applicable.
Inter-Org Communications - "Creating an application that has the ability to communicate between organizations using a pre-defined infrastructure". This pattern is often applicable when application’s data has to be shared between multiple entities both within and between organizations.
In his presentation, Simon not only describes the above patterns, but also shows how Windows Azure can be leveraged for their implementation.
He finishes his presentation by stating:
These are "starter" patterns - not an exhaustive list, but show some of the different archetypes of applications possible in the cloud today. This space is still evolving, but very exciting to see the new patterns that will emerge.
Simon’s presentation provides great guidance for IT architects tasked with "moving of their company to the cloud".
Designing for the Cloud.