Cloud Patterns – Evolving Strategies
I was on a flight recently for a conference, striking up conversation, when asked, “… so what conference are you […]
12th Jul 2010
Cloud Patterns – Evolving Strategies
I was on a flight recently for a conference, striking up conversation, when asked, “… so what conference are you attending?” I reply, “… a cloud computing conference, have you heard of that type of thing?” The answer was the best guess so far. “You mean for meteorological studies?”
That’s exactly what it should mean.
The cloud buzzword is hopelessly abstract. In a previous post, I summarized the three top level categories of cloud computing (Iaas, Paas and Saas) and the opportunity from 50,000 feet. In this post, I hope to add some tangible examples to the broadly defined Essential Characteristics of cloud computing by the National Institute of Standards and Technology (NIST). Let’s begin by identifying a few types of conceptual patterns being applied in the cloud and how they relate to business strategies.
Part I: Types of Cloud Computing Patterns
- Grid Computing – [Commonly considered to be] distributed parallel processing across a network of loosely coupled computers (all serving the same purpose). The purpose is almost drone-like in concentration. Imagine one computer attempting to decode DNA. So much data, so many configurations, 97% of which may be irrelevant. That’s going to take a while. Now imagine how much less time it would take with several thousand computers processing chunks of this puzzle in concert.
- Synchronization / Backups – The process of bringing the state of two or more computers in synch. Microsoft’s Live Mesh is a beta service that synchronizes your cross-platform desktops from a virtual desktop in the cloud.
- Marketplace / Platform – The result of an ecosystem that supports a catalog of applications on a specific platform. The iPhone application store is a good example of a marketplace specific to a device (iPhone). VMForce.com and Google Apps Marketplace are examples of marketplaces that were built on top of a specific Saas platform. (The recent VMWare and Force.com union is compelling in that it now allows developers to use the more familiar Java language to write applications rather than the Force.com proprietary language- Apex Code).
- Online Collaboration – The process of merging ideas, contributions, approvals (aka workflow) sequentially or in parallel to meet a common goal. Wikis, document management systems or shared desktop presentation software (e.g. Goto Meeting) fall into this category.
- Periodic or Unpredictable Demand – The periodic or unpredictable usage of infrastructure. Sometimes you just don’t need all of that horse power, sometimes you do.
- Greenfield Platform – The visage of a virtual image of any development platform template you choose. Anytime, anywhere, no constraints, no limitations, nothing but green fields.
Part II: Identifying Opportunities
Consider a hypothetical business scenario. Assume you own a software firm providing financial statement-type products to stock market investors. Your best selling product is a stock analyzer that aggregates all of the SEC filings in an easy to read format. The latest release of your software includes a rich interface for data visualization. Your customers are thrilled; they are able to scan the visual summary of an SEC filing in just minutes. However, you know the market is fickle and is constantly changing. What are your options for the next few years? Remembering this is a hypothetical exercise, let’s apply some of the cloud patterns above.
- Opportunity 1: Grid Computing – Near time crowd sourcing
Your company can enhance your stock analyzer software by offering a market sentiment feature. Imagine being able to put a rating on market sentiment. You may do this by processing statistically adjusted data from insider transactions, intra-day volume, newswires and social media networks as a factor in an artificial intelligence algorithm that measures risk. Grid computing can handle the heavy lifting of the neural network caching and comparative analysis in near real time.
- Opportunity 2: Synchronization – Extended experience on mobile devices
You can synch parent website activity to your mobile device automatically, over the air. During idle time your customers can browse auto-queued summaries of their website activity, on their mobile device. They can discover new companies based on related searches and change their rankings on companies which would be reverse synched back to the website. Further, your customers can earn complimentary SEC reports by participating in forecasting surveys on their mobile device, further extending your brand awareness.
- Opportunity 3: Platform / Marketplace Add-on
Marketplaces and platforms keep captive audiences. Consider creating an add-on component for an existing platform or create an application in a marketplace. You could create an application on the Google Apps Engine to be integrated with a suite of related App Engine programs. If you are feeling playful, you could create a Facebook game that extends your brand by allowing you to pick friends as executives in major firms, then rendering a forecast graph, in your brands style, based on user-driven feedback. In these early stages, in some marketplaces, you could be the dominant presence in your industry. One very nice feature of a platform is that add-ons/installations just work- there is no consideration of local system requirements.
- Opportunity 4: Platform / API
Perhaps you would prefer that other platforms integrate with your service. In this case, you would simply expose an API, for a fee, for any other platform to take advantage of your offerings.
- Opportunity 5: Periodic Demand
Over the years, you’ve noticed a trend. The traffic of the website peaks during the month ahead of earnings announcements. Therefore, you’ve got a datacenter of expensive servers that is only being used near capacity 4 months out of the year. Depending on usage, you can save big by not maintaining the under-utilized servers at all. Instead, you would simply manage a virtualization provider that fires up new virtualized servers on demand. Similarly, you could maintain a smaller set of servers and burst overflowing demand into the virtualization provider.
Part III: Summary
While the spectrum of definitions for the cloud may remain nebulous, the point of this post is to put some of the possibilities in context. Most of these architectural concepts have been around for a long time. However, the latest advent of cloud computing is enabling a different way of approaching them. The interdependency paradigm is more accessible now. Imagine not having to spend millions to integrate traditional software installations; in the cloud, in theory, you would plug into pre-existing adapters that do it for you (for much less). We are getting closer to a seamless way of architecting applications in environments whose differences are becoming less relevant, therefore reducing implementation and maintenance costs. In the same way an interpreter bridges the divide between foreign languages, cloud architectures can be built to bridge the incompatibilities of computer languages, platforms and protocols. As demand for distributed applications grows, cloud architectures are going to grow with it. We’re looking forward to it.
Nine Steps to Cloud Nine by Mark Ferry