January 17, 2014, 11:00 AM — OpenStack is an open source cloud computing platform. Designed as an Infrastructure as a Service (IaaS) environment, this project describes itself as seeking to produce a "ubiquitous open source cloud computing platform for public and private clouds." OpenStack is also something of a computing industry phenomenon, as more than 200 software, hardware and service companies are involved.
OpenStack emerged from a joint initiative undertaken by Rackspace Hosting and NASA in mid-2010, with a primary aim to permit organizations to offer (or consume) cloud computing services running on standard hardware elements. Early code was a combination of the NASA Nebula cloud computing platform and the Cloud Files platform from Rackspace.
Since mid-2010, the project has maintained a regular six-month release cycle and a detailed schedule of release milestones, orchestrated through a semi-annual planning meeting called the OpenStack Design Summit. The most recent such summit concluded, in Hong Kong, involved more than 3,000 attendees.
OpenStack received a big boost in 2011 when the creators of the Ubuntu Linux distribution adopted OpenStack as part of their systems architecture. Since then, other Linux players - including Red Hat (which offers a specific OpenStack distribution) and Debian (through its Sid distribution) - have followed suit with OpenStack distributions of their own.
Getting to Know the OpenStack Architecture
A diagram of the OpenStack architecture (below) represents the major building blocks of it components. Layers related to applications and management access sit on top of the stack, with standard resource elements for computation, networking, and storage immediately beneath. All rest on shared services and, ultimately, on standard open source specified hardware platforms. Buyers need not feel or find themselves wedded to particular proprietary server, appliance, or networking hardware components.
The OpenStack architecture. (Diagram courtesy of OpenStack.org.)
Technologist Ken Pepple describes the OpenStack architecture as being composed of various sub-projects:
- Swift provides object or blob storage for data, content and other materials. This originates from RackSpace Cloud Files and is roughly analogous to the Amazon Simple Storage Service (S3) within its Amazon Web Services environment. Swift maps to the Storage item in Figure 1.
- Glance provides a means to discover, store and retrieve virtual machines for OpenStack Nova (see below). Glance maps to elements of the dashboard, compute, networking and storage items in Figure 1.
- Nova provides virtual servers on demand, much like Rackspace Cloud Servers or the Amazon Elastic Compute Cloud in the AWS environment. Nova maps to the compute element in Figure 1.
- Heat delivers orchestration for launching OpenStack templates. These include server and services definitions for, say, a multi-server WordPress website set-up with front end/Web and database elements.
- Horizon supplies a dashboard and control mechanisms for managing OpenStack templates, instances and resources, and for monitoring status, events and troubleshooting capabilities.
Pepple's blog provides a nice diagram of how these subsystems combine to create a running OpenStack implementation:
OpenStack modules. (Diagram courtesy of ken.peppel.info.)
Here, Swift provides an image store for VMs at the center left, Glance provides the capability to interact with the OpenStack environment and Horizon supplies the dashboard. Ongoing processing and runtime services come from Nova, while Horizon helps drive the dashboards and monitoring facilities for OpenStack at runtime.
OpenStack's Flexibility Can Be a Blessing - or a Curse
With broad and far-reaching industry support at the hardware, software and services levels, OpenStack makes it possible for companies to create cloud environments of their own, either privately in their own computing infrastructures or publicly through service providers of all sizes and stripes. The OpenStack movement helps keep the cloud open while holding computing costs down and ensuring that both providers and consumers of cloud services can build and use highly customized environments without losing their ability to switch among a sizable pool of cloud providers as changing needs, prices or market conditions might dictate.
The OpenStack environment provides a flexible container within which to craft cloud computing environments. This serves as both a blessing and a curse - or con and pro, if you prefer - because it means that working with OpenStack involves a "DIY" mentality to recognize and remedy missing or less-than-perfect features and functions. Working with OpenStack requires a considerable investment of time and effort, but it offers dramatic returns in exchange for this diligence.
Implementers often speak of finding problems both above and below the OpenStack environment, as described in a report on user feedback from the April 2013 OpenStack Summit in Portland, Ore. A Bloomberg representative indicated that issues arose from the company's need to set up highly available databases (below the stack), along with reliable log aggregation and monitoring metrics (above the stack) to create a completely robust, workable OpenStack environment for trading information.
OpenStack developers must recognize that they must solve intricate and difficult issues on their own. At the same OpenStack Summit, a Samsung representative said that, in its early days, OpenStack is "complex and error-prone." Likewise, upgrading across releases can be challenging and may involve redesign and rebuilding of OpenStack component elements in working implementations.
OpenStack Commitments Can Produce Savings, Competitive Advantages
One key takeaway from analyzing user and developer feedback is that a certain amount of "biting the bullet" is required to delve into OpenStack for cloud development. Organizations should be prepared to devote real, dedicated architect and senior programming talent to any OpenStack efforts, and be ready to spend up to two years working their way into "production mode" for any resulting implementations.
Companies report spending $20,000 annually, on average, to manage server VMs in this environment $500,000 per major OpenStack release for quality control, customization and necessary fixes and enhancements. But for the money, those same organizations can realize substantial savings on hardware - a fully populated server/networking rack averages $91,000, much less than proprietary alternatives - and the ability to stand up and manage large collections of virtual servers on demand as needed.
As long as management understands that a long-term investment in funds and staff time is needed to get an OpenStack implementation going, and to keep it running, organizations can benefit from digging deeply into OpenStack.
Ed Tittel is a full-time freelance writer and consultant who specializes in Web markup languages, information security and Windows OSes. He is the creator of the Exam Cram Series and has contributed to more than 100 books on many computing topics.
Read more about development platforms in CIO's Development platforms Drilldown.