OpenStack may not be the market leader in the cloud, but it may be leading in cloud architectures. The open source cloud service is the strategy of choice for vendors ranging from Hewlett-Packard to Cisco; it's the framework for cloud services for many others, including Rackspace. Unlike Amazon Web Services' EC2, OpenStack is offered as enterprise software and a public cloud service that has generated media buzz that's not just noise. It has real innovation, particularly on the virtual networking front.
Like all cloud stacks, OpenStack is a set of management application program interfaces (APIs) designed to control resource pools and assign them to tenants or applications. Admins manage OpenStack via a "dashboard," and a set of shared services (called "Glance") enables admins to manage machine imaging and template creation. OpenStack also has three defined resource classes: compute, storage and network. APIs, such as Nova, Swift (object storage) and Quantum, are named after associated open source projects.
Understanding OpenStack's Nova, Swift APIs
The Nova or compute function of OpenStack is a hypervisor-agnostic framework for managing virtual machine (VM) instances and images and then mapping between them as needed. OpenStack supports boot from bare metal or easy server setup for connecting to a resource pool, and templates help create instances of projects for users or tenants, as needed.
Users interact with OpenStack through the Nova API, which then divides requests into one path for managing VM images and one path for managing VM instances. Under a central dashboard, VM images are managed though a service called Glance, and VM instances are managed by queuing requests for specific resources needed.
OpenStack supports its own API and AWS' Elastic Compute Cloud (EC2) API and is committed to supporting emerging API standards. Thus, Nova can be viewed as the resource side of the OpenStack public cloud, meaning that server/compute and storage resources are managed there. The components used, which include an SQL database and a message bus, are open source and -- in theory -- OpenStack could be customized to support any of several options in each of these areas.
The Swift object store is analogous to AWS' Simple Storage Service (S3), designed to be scalable to zettabytes and distributable over a wide variety of nodes. While Swift offers the same baseline capabilities as S3, OpenStack currently has no relational database management system (RDBMS) or data warehouse extension services, both of which are present in AWS. Therefore, not all Amazon-hosted applications could be moved to an OpenStack cloud.
Quantum: OpenStack's virtual network interface and SDN link
Perhaps the most interesting aspect of OpenStack is Quantum, the virtual network interface. Quantum is used to provision the network services associated with an application, based on one of several base network models -- a Level 2 domain with a default gateway router, for example.
Quantum makes the network explicitly a resource of the cloud, which could be very significant as software-defined networking (SDN) gains traction with network operators and businesses. Few believe that SDN means each application controls the network -- a condition some have called "network anarchy." OpenStack's Quantum offers an alternative model: The cloud controls the network, coordinating connectivity and specifics, such as Quality of Service, according to application needs and installation policies.
Quantum isn't without its problems, one of which is breadth of its support. The multiplicity of giant backers of OpenStack guarantees there are resources to advance the project and provide documentation, but there's also the risk of divergence of implementations. That divergence could lead to incompatibilities among the supporters' own versions.
A second Quantum issue is that of operations. The bigger the cloud commitment, the more difficult it is to create applications in the cloud and move images among resources. VMware has made cloud operation its major focus and differentiator, but while there are DevOps projects linked to OpenStack, DevOps is not an integral part of the project, and there is no single sanctioned approach. Because of this, it's possible that OpenStack will lag in operations sophistication, or that multiple incompatible approaches will develop, further fragmenting the OpenStack platform and hindering development and deployment.
For now, OpenStack has a solid technical agenda and enjoys broad support among hardware and software players. Since it's open source, there's technically no cost, which assures a lot of early market interest. If OpenStack enhancements and improvements continue at the current pace, then it's very possible OpenStack will become the biggest threat to AWS.
About the author:
Tom Nolle is president of CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.