Thursday, August 16, 2012

IBM Patterns: A New Paradigm for Cloud

IBM’s PureApplication System, which is IBM’s pre-integrated platform system with built-in expertise to deploy and run applications, is now generally available.[1] In alignment with IBM's SmartCloud strategy, the PureApplication System pre-integrates IBM’s cloud capabilities, providing a solution that is part of the IBM SmartCloud Foundation and enables the efficient creation of a Platform-as-a-Service (PaaS) spanning private, hybrid and public cloud environments. It gives customers another choice for cloud solutions from IBM, opting for the near-turnkey IBM PureApplication System, or doing-it-themselves.     
The features and capabilities of the IBM PureApplication System are many, but what is most intriguing about this IBM solution is its use of “Patterns of Expertise” for capturing and leveraging best practice expertise to automate application deployment and operation. IBM’s pattern approach garnered my attention when IBM revealed this concept to analysts almost a year ago, for several reasons. This is just one capability that is embedded in the IBM PureApplication System but it’s worth calling out because of the potential impact that this approach can have on cloud adoption, cloud portability and cloud agility. So what are these Patterns of Expertise all about?
What are Patterns? 
IBM defines Patterns of Expertise[2] as “proven best practices and expertise for complex tasks learned from decades of client and partner engagements that are captured, lab tested and optimized into a deployable form.” The operative word in this definition is “deployable” – it’s not a reference architecture or best practice concept that has to be translated into practical use. 
Patterns are pre-defined architectures that capture the overall topology of the application system. It includes the following information for deploying and maintaining each component of the application (for example: web server, database, etc.):
  •   Pre-installation of an operating system
  •   Pre-integration across components
  •   Pre-configured and tuned
  •   Pre-configured monitoring
  •   Pre-configured security
  •   Lifecycle Management
The patterns are layered, where users create application patterns by selecting from a catalog of “parts” (existing infrastructure patterns for database, web servers, etc.). Policies can also be included in the patterns to control application operations, such as scaling, recovery and automation. (For example, if the application requires High Availability, etc.) This layered pattern approach abstracts the infrastructure and the application architecture from the application itself, which could prove valuable for application portability from one cloud to another (assuming both clouds use patterns.) So if the application is moved to another cloud, the infrastructure patterns can be replaced with the relevant infrastructure patterns being used in the new cloud.
Repeatable, Reusable Standardization
Patterns are repeatable and reusable, which enables standardization while improving reliability, stability and efficiency. It’s something like a “golden architecture” for application deployment and maintenance. In addition to providing out-of-the-box patterns, IBM is encouraging its partners to develop more patterns for customers. If partners develop a wide variety of useful hardened and tested patterns, this could help speed up Cloud adoption. Consider the fact that operational discipline and standardization are essential for reaping the benefits of cloud, and this is a challenge for a large majority of potential cloud adopters. If new cloud adopters can get their cloud initiative started by using these tried and tested patterns, it’s a much easier and less risky way to get started.
Operational Reliability and Efficiency
And last but probably the most important aspect of pattern repeatability is the resulting efficiency, reliability and stability of application infrastructures. IBM’s patterns capture and codify application infrastructures that can be reused repeatedly for deployments. Consider this ─ which deployment would you trust more in a production environment: an application infrastructure that was just created and is running for the first time, or an application infrastructure that has proven itself consistently reliable in the past? And although deployment is important, the patterns also capture operational policies, which are important for application operations. Using patterns that earn trust through consistent reliability will facilitate automation, which is another essential for cloud.
 Operational efficiency is gained through using and reusing the captured expertise in patterns, instead of the time-consuming process of manually building application infrastructures each time it’s needed. IBM reports that PriceLenz, an IBM customer, saw their deployment time shrink from three weeks to eight minutes. IBM also mentions “Application Deployment Time-to-Value” as a key metric, which they state is under 14 minutes to repeatedly deploy a three-tier clustered web application.
The Final Word
IBM’s Patterns of Expertise are an innovative best practices approach to consistently deploy and operate cloud applications by using deployable and repeatable pre-defined patterns. This new paradigm for deploying and managing cloud applications holds much potential, as discussed above.
IBM customers have the option to “do-it-yourself” with IBM SmartCloud Foundation, or buy a “PaaS in a box” with IBM PureApplication System. And if the IBM “Pattern Ecosystem” develops as IBM partners add more patterns, the potential for this approach increases. However, IBM must manage this third-party ecosystem deftly. The key to the success of patterns is trust and reliability. This raises several questions that will be answered in time. How will IBM ensure the quality of patterns sold to customers by third parties? Perhaps IBM will have to establish a quality control process for third party patterns. And as the list of patterns grows, how will customers find and know how to compare one offering with another? For a list of all third party patterns currently available, go to
Since we are in the early stages of cloud evolution, another unanswered question is whether this approach will be broadly adopted by the industry or not. But to be fair, that question can be asked generally about most of today’s cloud technologies. This question will be answered eventually as the cloud evolution continues and companies expand their use to multiple varieties of clouds and cloud providers. But IBM’s commitment to and involvement in cloud standards bodies and initiatives are a good indication that the pattern approach will, at the least, be considered.
Overall, IBM takes an innovative approach to cloud IaaS and PaaS. It’s one worth considering.
[1] IBM PureApplication System has been generally available (GA) since July 31, 2012.
[2] For brevity’s sake, “Patterns of Expertise” will be referred to as “patterns” through the rest of this document.