Aug 09
24
Patterns for Cloud Computing
Over the past few months I’ve been working with many customers and internal groups to try and determine whether there is a common set of patterns for cloud computing. As you’ve probably read, many people are claiming to do cloud computing, so my goal has been to explore the types of applications that people are running in the cloud, and whether these applications can be categorized in any way.
The result of this work is a presentation called Patterns for Cloud Computing, which I delivered at our internal conference (TechReady) last month. Due to many people asking for it however, I’ve now created and uploaded a public version on SlideShare, which you can find here.
The presentation first covers a definition of cloud computing (as I believe this is where many people first struggle when trying to understand the space), and continues by exploring five usage patterns for cloud computing. The patterns fall into the following categories:
Using the Cloud for Scale: How are people using cloud computing to achieve scale using provisioned machines in the cloud vs. physical machines on-premise?
Using the Cloud for Multi-Tenancy: How are people using the cloud to create multi-tenant applications, serving thousands of customers using the same code base?
Using the Cloud for Compute: How are people using the cloud to solve computationally intensive problems across a number of machines?
Using the Cloud for Storage: How are people using the cloud to store massive amounts of data, in a way that is “infinitely” scalable?
Using the Cloud for Communications: How are people using the cloud to make peer-to-peer and asynchronous communications easier?
These patterns represent some early thinking and research, but my hope is that they make it easier for people to better understand a definition of cloud computing, together with some of the applications that make sense today.