Tuesday, July 3, 2012

Open 24x7x365: The IBM open PaaS and private cloud platform

This is a re-post from the on on the Expert integrated systems blog.  Please go there for discussions and feedback.

In this post, I briefly highlight the features of the IBM PureSystems offering, and particularly focus on why I claim that it is an “open” platform.  I give a high-level overview of its plug-in mechanism and point to several example extensions that are available now for PureSystems customers.
What is IBM PureSystems?
IBM PureSystems is a turnkey private cloud solution that for the first time integrates a flexible, expandable hardware platform with layers of software to manage the system itself along with the workloads that it runs.  Essentially, the IBM PureSystems offering combines an infrastructure-as-a-service (IaaS) substrate with a platform-as-a-service (PaaS) layer that also provides means to codify workload components into patterns.  With these patterns, users can effectively deploy workloads and applications in a predictable and repeatable fashion.
Additionally, IBM PureSystems embodies all of the seven characteristics, which I mentioned in a previous post (“Stormy forecast”), to make this private cloud a modern incarnation of previous private clouds.  Features, such as extensibility, built-in support, autonomic self-healing, and customization, are all part of every IBM PureSystems.
However, one additional feature of IBM PureSystems places it above and beyond typical private IaaS and PaaS solutions — it’s based on an open architecture and design. Specifically it includes:
  • Open extensible hardware platform
  • Open plug-in mechanism to extend its software
  • Open marketplace for patterns and software you can run on IBM PureSystems
Open ecosystem and APIs
First, it’s important to distinguish between open source and open ecosystem and open APIs.  As an analogy, in the mobile world there are two dominant platforms today: the Android and iOS mobile platforms.  Arguably, they are both open, however, while Android is fully open (source code, APIs, and ecosystem-open), the iOS platform is open in its ecosystem and APIs.  Anyone can join both platforms (for a small fee in the iOS case) and different rules apply to participants of each of the platforms.
Is it valid to say that having an open ecosystem and open APIs without open source is providing an open platform?  Well, it’s a matter of semantics and business model.  Because by open, we usually mean any participants (within some rules) can contribute and can create applications for the platform; using this definition, both models (Android and iOS) are open.
Providing an open platform that is based on open ecosystem and open APIs is not an iOS novel innovation.  Microsoft Windows has done exactly this for years and before that the IBM OS 360 had pioneered this model.  Although the participants don’t have the source code of the entire platform as in other models, in this participatory open platform, the APIs are fully published and the system provides key points of extensions and contributions.
IBM’s PaaS platform falls into the category of an open ecosystem and open APIs.  It does so by having open hardware architecture and an open plug-in mechanism to create extensions.
Open hardware
First, IBM PureSystems is based on standard industry server architecture.  Although the hardware architecture is sophisticated to include fault-tolerance attributes, nothing in there is proprietary.  The various units that make up an IBM PureSystems are designed with commercial off-the-shelf (COTS) parts that can be replaced.  For instance, each unit contains an Intel Sandy Bridge CPU that anyone can purchase from Intel.
However, beyond the hardware openness, what really sets the IBM PureSystems apart from other private cloud solutions is in its open plug-in mechanism, which includes open APIs and results in an open ecosystem.
Open plug-in mechanism
IBM PureSystem workloads are defined using patterns.  Think of a pattern as the definition of a template using cloud components and linking these components.  The components on a template represent the resources (typically software) and capture the necessary details to set up and configure that component.
For instance, a component representing the IBM WebSphere Application Server is part of the J2EE pattern and can be modified when users specify an EAR file for the application they want to add in their workload.  Patterns are built visually by using the IBM Pure Application System Designer and the library of components available on the left side of the interface.
A pattern can be saved and parametrized by leaving certain aspects unspecified, for example the EAR file name and location.  A completed pattern, which is one that is valid and has all of its missing parameters filled, can be deployed on an IBM Pure Application System instance.  Because patterns can be instantiated many times and be shared and customized, this process allows the predictable and repeatable means that enterprises need to manage their workloads.
The components and links library are defined in plug-ins that can be added dynamically to the system.  The plug-in architecture is open and allows a wide range of cloud components to be defined and connected together.  Each plug-in defines the metadata of the component or link including the attributes (required and optional) and also the help data, icons, and so on.  Additionally, each plug-in follows a strict structure that allows various parts (binaries) to be defined, and custom scripts to install and configure the processes that constitute the plug-in.
One key aspect of cloud components and links defined as plug-ins is that they do not dictate the exact cloud resources that they need; instead, they suggest this information by giving hints and limits to the IBM Pure Application System deployment process.  Using this information, the system can make appropriate placements and resource provisioning decisions resulting in an optimal configuration for your workload.

Ready for PureSystems: Plug-ins available now
IBM has been working with hundreds of independent software vendors (ISVs) to create various cloud components.  By the time you read this post, many of these plug-ins will either be included as part of every IBM Pure Application System or be available in the marketplace.
We also welcome your contribution to this open marketplace by downloading the Plug-in Development Kit and looking at the examples and tutorials available online.  In a future post, I will describe in simple steps how a common popular open source framework can be added to the IBM Pure Application System platform in the few hours that is required to create a plug-in for it.