2. developerWorks® ibm.com/developerWorks/
IBM's open cloud architecture Page 2 of 12
• Reduce barriers of entry into cloud computing, such as development skills and
freedom of choice
• Increase the long-term viability of today’s cloud investments
• Prevent unnecessary architectural complexity and fragmentation
IBM's open cloud architecture
At IBM Pulse, in March 2013, IBM announced its open cloud architecture and our
plans to base all of our cloud offerings on OpenStack, starting with IBM Smart Cloud
Orchestrator. This announcement was the culmination of over a year's worth of
investment in product integration with OpenStack, as well as significant contributions
to the OpenStack community to help improve the ability of OpenStack to meet
enterprise and cloud service provider requirements. Looking at adoption results, we
see that our efforts, as well as those of the vibrant OpenStack community as a whole,
have been successful.
Evolution of OpenStack
To get a sense of just how far OpenStack has come, and how it is being
leveraged in the enterprise, visit the OpenStack Slideshare and YouTube
channels.
Today, with over 189 organizations and over 9,100 individuals participating,
OpenStack is the largest active open source, cloud project community in the world.
This massive global collaboration of developers and cloud computing technologists is
working to produce a ubiquitous Infrastructure as a Service (IaaS) open source cloud
computing platform for public and private clouds.
IBM is proud to be a highly active member of the OpenStack community and proud of
the many community achievements reflected in the latest release, Grizzly. OpenStack
is well poised to deliver massive portability and interoperability for IaaS applications.
Moving up the stack
We haven’t been exclusively focused on OpenStack, however. Our open cloud
architecture extends all the way up the stack, from IaaS, through PaaS and SaaS.
In addition to all of our efforts relating to OpenStack, IBM has been hard at work
exploring a wide variety of technologies relating to our open cloud architecture,
particularly as it extends into the PaaS and SaaS layers, weaving together systems
of engagement, systems of record, and the Internet of things, enabling what we call
systems of interaction. We collectively call these explorations, Project ET. I’ll have
more to say on Project ET, in a bit. But first, I’d like to share some more insight into
our open cloud architecture.
Today, there is significant pressure on lines of business to create new business value
based on mobile, social, big data, and analytics capabilities. These new applications
are fueled by the emergence of new, highly iterative development models that use
service composition, open architectures, open source components, and polyglot
programming models to rapidly deliver solutions. Two additional trends are key
3. ibm.com/developerWorks/ developerWorks®
IBM's open cloud architecture Page 3 of 12
enablers for this new style of applications, notably DevOps and Cloud-based PaaS
offerings, such as Heroku, Cloud Foundry, and OpenShift. DevOps enables clients to
deliver business outcomes in an agile, iterative, and incremental fashion: applications
are delivered in days or weeks, rather than the typical months or years. Finally, to
achieve such development efficiencies, PaaS technologies are evolving that enable
developers to quickly assemble substantial middleware components hosted in the
Cloud extremely quickly (in seconds).
Multi-tenant, elastic (“cloud native”) software services are the fuel of this style of
development. We have observed the evolution and maturation of the API economy
over the past decade, exemplified by over 10,000 services available to the cloud-
based developer from sites such as programmableweb. Given IBM’s depth and
breadth of software-based services, specifically in the area of mobile, social, and
analytics, it is imperative that we provide implementations accessible to developers at
the click of a button.
While there are certainly lots of proprietary offerings that attempt to cover various
aspects of this new style of development and operations, we have observed that the
open offerings deliver real value to the customer, and are more likely to be embraced
by developers.
What do we mean by "open"?
So, what do we mean by "open"? Open can take on a number of meanings.
One meaning of "open" is open source software (OSS), such as OpenStack, or
one of the many projects hosted by the Linux, Apache, or Eclipse foundations, or
simply hosted on Github. Of course, not all OSS is created equal. It is important
that the OSS component have an appropriately open license, such as Apache,
Eclipse, or MIT, etc. and also that it have an open governance model that welcomes
contributions and innovation from anyone, anywhere, without prejudice. Further, it
means that the OSS component can be easily extended, and easily consumed and
integrated, by means of relatively stable, well-documented APIs, or that it offers a
pluggable architecture that allows for a wide variety of plugins or drivers.
Another meaning of "open" is the implementation of open interoperability standards,
such as those emerging from the W3C, IETF, OASIS, or OMG, to name a few.
Of course, another form of standard is the de facto standard, which is typically
established by virtue of the market embracing a particular solution, regardless of
whether it's proprietary or open. Ideally, to be open, we should avoid proprietary de
facto standards under the control of (and which tend to benefit) a single party.
Increasingly, a symbiotic relationship is emerging between open source and open
standards. For instance, proponents of emerging open standards often turn to open
source to implement the standards as a means of providing a reference, as well as
providing a vehicle to drive adoption. As another example, communities developing
4. developerWorks® ibm.com/developerWorks/
IBM's open cloud architecture Page 4 of 12
an open source project formally document their project’s APIs and/or protocols when
they feel that things are stable.
IBM's open cloud architecture
So, back to IBM’s open cloud architecture. What do we mean by this phrase? At a
high level, it means that our cloud architecture is based solidly on a composition of
open source components and where possible, implements open standard formats,
APIs, and protocols that deliver both interoperability and value to the customer.
This open architecture has a number of benefits, both to IBM, as well as to our
customers. For IBM, we benefit from the unparalleled innovation we find in open
source communities such as OpenStack. Additionally, we benefit from the vibrant
ecosystem of ISV partners that grow from these open source and open standards
initiatives. Our customers benefit from the ability to leverage the open source and
open standards APIs and to extend them—either through third-party capability
(leveraging the vibrant open source ecosystems we have chosen), or through
innovation and extension of their own.
By using the same open cloud architecture and technologies across our cloud
portfolio, addressing private, public, and hybrid cloud solutions, we also benefit from
interoperability and portability, not only of workloads but of capability, between and
across these various offerings, which benefits our clients.
In fact, customers who choose open standards-based cloud computing are on the
right course to take advantage of new opportunities. Specifically, they will be able
to harness their interconnected data with high-value business analytics across
traditional and mobile devices.
IBM's commitment to open cloud architecture
To help make this happen, IBM is applying its experience in supporting and validating
open standards. From Linux, Eclipse, and Apache to cloud computing, IBM continues
to work closely with the open source community. To make an open cloud architecture
a reality, IBM worked to:
• Create a 400-member Cloud Standards Customer Council that grew from about
50 members at launch
• Drive related cloud standards, such as Open Service for Lifecycle Collaboration,
Linked Data in the W3C, and TOSCA in OASIS, to enhance cloud application
portability
• Dedicate more than 500 developers on open cloud projects
• Partner closely with the OpenStack Foundation, along with its over 9,100
members from 87 countries and 189 corporate sponsors
Let's get technical
Figure 1 highlights much of open source and open standards-based technologies
that comprise our open cloud architecture, today. Of course, because it is open, it will
5. ibm.com/developerWorks/ developerWorks®
IBM's open cloud architecture Page 5 of 12
evolve and be extended over time, by IBM, by the open communities that drive the
open source and open standards initiatives, by customers, and by our partners.
Figure 1. Open tools and technologies in the emerging open cloud architecture
OpenStack
As we announced at IBM Pulse, the foundation of our open cloud architecture
is based on OpenStack, which supports a wide variety of virtualization platforms
(KVM, XEN, VMware, Hyper-V, PowerVM, ZVM, etc.) as well as bare metal, and
which itself runs on most Linux distributions. We chose OpenStack not only for
its architecture (which we found compelling), but even more importantly for its
development community, open governance, and vibrant and growing ecosystem of
providers, plugins, and add-ons.
Deployment automation
For deployment automation, our offerings will typically support Chef cookbooks and
recipes. However, we also support Puppet and Juju so that clients can leverage the
automation tools they prefer, or already use. This is another key characteristic of our
open cloud architecture: it enables customer choice. Chef, Puppet, and Juju are each
open source initiatives of their own, and each has a growing ecosystem of recipes,
manifests, and charms, which are often, themselves, open source. The openness of
these tools, and the vibrancy of their respective ecosystems, benefit both IBM and
our clients.
Portable workload definition and orchestration
For portable workload template definition, our open cloud architecture incorporates
the OASIS TOSCA standard. TOSCA is a collaborative open standard being
6. developerWorks® ibm.com/developerWorks/
IBM's open cloud architecture Page 6 of 12
developed by IBM, SAP, HP, Rackspace, and many others. What is really exciting is
that many of these same companies are also collaborating on implementing support
for OASIS TOSCA template descriptions in the OpenStack Heat project. Initially, we
have enabled our IBM pattern deployment capability to import and export the OASIS
TOSCA template format. Over time, we will likely see the IBM capability transition to
OpenStack Heat.
Linked Data and OSLC
Finally, bridging the foundation software-defined environment layer with the
compositional layer above it (often referred to as PaaS), we use an emerging open
standard, which is based on the W3C’s Linked Data, called Open Services for
Lifecycle Collaboration (OSLC).
OSLC is an open community that is working to make software lifecycle tools
interoperable by enabling them to share data with one another. This effort covers
a wide range of development, operations, and management disciplines and an
equally diverse set of tools. The goal is to enable tools to be combined in a way
that connects and streamlines workflows to reduce the effort, frustration, and cost
throughout the cradle-to-grave lifecycle of an application.
OSLC was inspired by the way data is shared on the web and is based on W3C’s
Linked Data. Linked Data is essentially a methodology for publishing structured
data on the Internet so that it can be interlinked with similar data, improving its
accessibility and usefulness. The idea for Linked Data was first articulated by Tim
Berners-Lee and rests on four basic principles:
1. Use URIs as names for things.
2. Use HTTP URIs so that people can look up those names.
3. When someone looks up a URI, provide useful information, using the standards
(RDF*, SPARQL).
4. Include links to other URIs, so that they can discover more things.
PaaS fabric
Continuing up the stack, we are exploring a number of open alternatives for the PaaS
fabric, including OpenShift and Cloud Foundry. Each offers similar characteristics
when it comes to support for a wide variety of runtime environments (including Java,
JavaScript, Python, Ruby, etc.), popular frameworks (such as Node.js, Tomcat, and
Ruby on Rails, etc.), and a rich variety of services (NoSQL databases, queuing,
messaging, caching, analytics, social media, big data, etc.) and which offer an open
architecture for the incorporation of additional runtime environments, frameworks,
and services.
Social
Activity Streams is an emerging standard that provides developers with a common
vocabulary to describe business events, enabling apps that socialize data and
7. ibm.com/developerWorks/ developerWorks®
IBM's open cloud architecture Page 7 of 12
knowledge with people in real time. Implementation with both existing and future IT
architecture helps to simplify informational and line of business visibility across users,
and supports an organization’s ability to share, comment, and collaborate.
OpenSocial is a standards-based component model for cloud-based social apps.
This model provides a consistent method to integrate existing applications, with
the ability to add third-party applications in a single view. This simplifies the user
experience and enables users to work in the manner that best suits them at that
moment. Information can be integrated across email, content systems, and rich
media—all within a given context and across platforms. The project delivers
cross-industry alignment through the Apache Shindig project, an open reference
implementation of OpenSocial, and through support of leading standards like
ActivityStreams and OAuth2.0.
Activity Streams and OpenSocial both have the potential to help to liberate data from
traditional information silos, through real-time information sharing.
Internet of things
Addressing the Internet of things, the MQ Telemetry Transport is a lightweight
publish/subscribe protocol with predictable bi-directional message delivery. It's
ideal for applications where a small code footprint is required, or when network
bandwidth is limited. An Internet of things—sensors, network-connected appliances
and devices, smart buildings, and networked-automobiles—could all benefit from the
efficiency of this protocol.
The MQTT community is currently working to standardize the specification under
OASIS. Additionally, there are multiple open source implementations of the MQTT
protocol, including the Eclipse Paho project and the Mosquitto project.
Business applications and the SaaS layer
At the SaaS layer, our open cloud architecture addresses security and federated
identity (TLS/SSL, OpenID, OASIS SAML, and the IETF’s OAuth2.0), payments
(Google Wallet and Apple’s Passport), and user interface (W3C’s HTML5, the IETF’s
JSON, Apache Cordova, and Eclipse).
HTML5 is the common language for building rich Internet applications across
platforms, while still supporting native mobile functions without plugins. It is
managed by the W3C and represents the evolution of HTML4 / XHTML. HTML5 also
incorporates standards such as SVG and CSS.
HTML5 greatly simplifies application development as it brings native support for
multimedia across a wide range of desktop and mobile platforms. Additionally,
it brings native support for advanced technologies such as offline storage and
applications, device access, geolocation, and semantic data.
8. developerWorks® ibm.com/developerWorks/
IBM's open cloud architecture Page 8 of 12
Apache Cordova is the open source project that makes "write once and run
anywhere" hybrid applications using platform services feasible. Cordova focuses
on providing device-specific code that acts as a "shim" to enable hybrid application
access to native mobile functions across a wide range of devices. The community
is focused on continual maintenance and enhancements to the code that enable
support for additional devices. Since the project's creation in 2010, IBM has been
a significant contributor, adding new capabilities and improving focus on release
management. Together, HTML5 and Apache Cordova are critical to the continued
development of rich mobile applications.
Security
OAuth is an open protocol to allow secure authorization in a simple and standard
method from cloud, web, mobile, and desktop applications. Specifically, it enables
authorization and access to REST API endpoints defined within an application or
infrastructure. OAuth has become a key security technology for the integration of
REST APIs into the enterprise, as it can provide access to services both inside or
outside the firewall.
Technology previews
Attendees of IBM IMPACT 2013 may have seen, or heard about, previews of this
emerging capability reflected in our open cloud architecture, that I described above.
Project Icap
One of these technology previews is Project Icap. Project Icap combines an
Integrated Development Environment (IDE) that provides development tools for
the rapid, highly iterative development that is common to cloud-centric and mobile
applications. The IDE provides support for Java (WebSphere Liberty Profile) with
development templates for JAX-RS, Servlet 3.0, and Spring MVC. Additionally, the
Icap IDE supports JavaScript (Node.js) and mobile application development (IBM
Worklight). Project ICAP is available for download as an Eclipse plugin.
Another feature of ICAP is its cloud explorer that can be used to discover and share
services.
Project ICAP also provides a developer sandbox that can be run locally. The sandbox
includes a number of foundational services that can be used to create applications,
such as a relational database service based on Derby, an elastic caching service
(ECaaS) based on WebSphere Extreme Scale (WXS), a simple social service that
allows you to connect to social networks and social media properties such as Twitter
or Sina Weibo, and sample location services that developers can integrate into their
applications to provide location awareness for mobile apps.
Project ET
Another technology preview is Project ET, which is an emerging public cloud
environment, modeled after our successful jStart program. This public cloud
9. ibm.com/developerWorks/ developerWorks®
IBM's open cloud architecture Page 9 of 12
environment offers many of the same services that are available through Project
Icap’s sandbox, running on an OpenStack cloud. Presently, we are running on
OpenStack Folsom, but we intend to migrate to the recent release of OpenStack
Grizzly, very soon.
In this environment, we are hosting one of the emerging open source PaaS platforms
where you can develop cloud-centric applications, leveraging a set of hosted services
including: PostgreSQL, MySQL, Redis, blob storage, elastic caching (ECaaS),
sample location services, an SMS service, simple social service, RabbitMQ, and
MongoDB. We intend to deliver additional services online over time, from IBM, open
source sources and from IBM partners, in a continuous delivery mode of operations.
We will be especially interested in your feedback as to what services you would like
to see.
The Project ET team will be working closely with customers exploring these two
preview offerings to gather feedback, to understand what software services are
important to them, as well as how to manage the various aspects of developing,
delivering, managing, and hosting these new systems of interaction.
Conclusion
We’re always interested in your feedback, so feel free let us know what you think of
our open cloud architecture.
10. developerWorks® ibm.com/developerWorks/
IBM's open cloud architecture Page 10 of 12
Resources
• Learn more about the Cloud Standards Customer Council.
• Learn more about the OpenStack Foundation.
• Learn more about Open Services for Lifecycle Collaboration (OSLC).
• Learn more about MQ Telemetry Transport.
• Learn more about HTML5.
• Learn more about Apache Cordova.
• Learn more about Activity Streams.
• Learn more about OpenSocial.
• Learn more about OAuth.