Having already covered OpenDaylight and Open vSwitch in our series on open source standards for networking, we'll move on to a project that is a bit larger in scope than either one of them: OpenStack. Originally conceived by NASA and RackSpace, OpenStack is cloud computing software that uses logical abstractions so that users can get what they want from their infrastructure.
Included in OpenStack are various components that cover tasks such as compute, block storage, object storage, telemetry, networking and bare metal provisioning. Although OpenStack hasn't historically been known for its ease of use (especially compared to alternatives in the public cloud such as Amazon Web Services or Microsoft Azure), it has prominent backers and has been integral to deployments from firms such as Bank of America and Disney.
OpenStack overview: How the project became a fixture of the cloud conversation
OpenStack is roughly five years old and is overseen by the OpenStack Foundation. As of December 2014, that body contained 111 official stakeholders at varying levels of membership. The top tier of membership - Platinum - includes heavyweights like AT&T, HP, Canonical, Red Hat and co-founder RackSpace.
As its name suggests, OpenStack is open source software. Its general functionality is perhaps best understood as that of an operating system for cloud computing. More specifically, users can provision compute, storage and networking resources via a Web interface. Using the OpenStack dashboard (the component called Horizon), they may create virtual machines, configure networks and manage volumes, all from a single location.
Red Hat executive Alan Ho nicely summed up OpenStack's appeal back in July, when he pointed to benefits such as:
- Open source collaboration: The size of the OpenStack community allows for extensive knowledge sharing.
- No lock-in: OpenStack users can avoid becoming beholden to a particular vendor or proprietary solution.
- Low costs and great agility: Ideally, OpenStack minimizes the impediments to effective IT infrastructure automation, since it can be run on commodity equipment and be tweaked to the user's needs.
Of course, there are some drawbacks to OpenStack. Setup and migration have been traditional pain points. Organizations could avoid these bottlenecks by choosing a more straightforward public cloud option, but picking the right cloud infrastructure isn't always strictly a matter of convenience (or price, for that matter).
A recent report from 451 Research has estimated that OpenStack revenue could top $3 billion by 2018, expanding at a 40 percent compound annual growth rate between 2014 and 2018. Most of the revenue will likely go to OpenStack service providers, with smaller chunks going toward OpenStack distributions, DevOps orchestration tools, cloud management solutions and platform-as-a-service on OpenStack. It's possible that there will be continued consolidation in the OpenStack community (i.e., in the mold of Cisco's acquisition of Metacloud) as big vendors look for a larger slice of this revenue.
OpenStack components and architecture
I mentioned Horizon, the dashboard component of OpenStack, above in the discussion of how OpenStack can work on a basic level. OpenStack has many components. A sample workflow could involve:
- User uses Horizon (dashboard component) to request a VM running SUSE Linux
- Keystone (identity component) authenticates the request
- The request is passed to Nova (compute component), create the initial entry for instance
- Nova can now ask Glance (image component) for an image
- Request is passed to Neutron that maps each VM NIC to its network, and assigns IP addresses
- Request is passed to Cinder to get volume data
- Request is passed back to Nova that starts the instance
OpenStack has accumulated many new APIs and components as a result of rapid development over the years. The component list includes:
- Horizon: dashboard
- Nova: compute
- Cinder: block storage
- Swift: object storage
- Neutron: networking
- Keystone: identity
- Ceilometer: telemetry
- Ironic: bare metal provisioning
- Sahara: elastic map reduce
- Heat: orchestration
- Glance: images
- Zaqar: multi-tenant cloud messaging
OpenStack is a vast and evolving ecosystem. It faces significant competition from public cloud as well as from arguably more mature open source solutions such as CloudStack, but its image, branding and scope mean that it is likely to be an important part of the cloud conversation for years to come.
The takeaway: OpenStack is an open source operating system for cloud computing. Created by NASA and RackSpace, it provides logical abstractions for managing and orchestrating a network. It contains a variety of components that address functionality such as compute, storage and identity. The size of the OpenStack community - which includes many prominent service providers and equipment vendors - makes OpenStack one of the most important open source projects in the world.