InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Patterns for Moving to the Cloud

Posted by Boris Lublinsky on Aug 05, 2009

Sections
Architecture & Design,
Enterprise Architecture,
Operations & Infrastructure
Topics
Operations ,
Design Pattern ,
Architecture ,
Cloud Computing ,
SOA
Tags
Windows Azure

 

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".

  • This article is part of a featured topic series on SOA
Nice analysis... by Steve Schwartz Posted
Designing for the Cloud. by Ruth Lennon Posted
  1. Back to top

    Nice analysis...

    by Steve Schwartz

    ...but not precisely what I would term a "pattern." The latter gives a somewhat detailed implementation plan.

  2. Back to top

    Designing for the Cloud.

    by Ruth Lennon

    There is a lot of discussion surrounding the 'Cloud' at OOPSLA this October. In fact there are two workshops discussing 'designing for the cloud' and 'implementation and operational issues' which should kick up some new ideas. www.oopsla.org/oopsla2009/

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.