Tucker believes that the open platform is what OpenStack brings to the table. It supports multiple hypervisors (Xen, KVM, ESXi and Hyper-V), and has separate service models for compute, image management, and for storage – all with common APIs and standard management tooling. What differentiates OpenStack from other cloud infrastructure tools is its concept of blueprints: automated descriptions of how to implement the system to handle specific tasks and functions. They're what makes it a platform, rather than infrastructure – an open source Platform as a Service (PaaS) implementation that can compete with Microsoft's Azure. Development is fast, with three releases since October 2010. The current Cactus release was unveiled in April and the next, Diablo, is scheduled for September 2011.
When Tucker looked at OpenStack he asked himself what would be the effect if Cisco were to be involved, what it could offer – and what the result would be for developers and architects building cloud services. Instead of it being a fixed infrastructure with limited flexibility, it could be something that would let him do things differently: "I want a different way to place virtual machines, I want to change the way storage is organised." There's a definite target as far as Tucker's concerned: "It's an open source cloud computing platform we can all own and participate in."
There were advantages for Cisco as a company too, as Tucker discovered. "Lots of our customers were already looking at OpenStack". It’s a learning process for the networking giant, as it has not historically involved itself with open source at this scale. Tucker sees this as good for the company: "More than anything else we're trying to contribute, and to learn from this community. We're seeing a new Cisco starting to evolve."
So what is Cisco doing for OpenStack? Tucker says the company "Wants to invest in the state of the art in cloud technologies". It's able to contribute network expertise and industry support. Above all, says Tucker, it'll contribute code: "We’re going to be developing this project in the open on the web itself." Cisco will also be porting the existing OpenStack technologies to its Unified Computing System server arrays, making them capable of running private and public cloud services.
Building a platform for cloud services requires more abstraction than for a simple virtual infrastructure. Even so, developers still need to think about the network elements. While at Sun, Tucker worked on Sun Cloud, taking the original Sun Grid service and making it more suitable for smaller scale multi-tenant applications. The question he asked there is still key for platforms like OpenStack: "How are real applications built? And how can we think about virtualised data centres, avoiding taking all baggage of a physical data centre into the virtual world?"
What was missing from Sun Cloud (and from OpenStack) was the notion of creating a network topology. Once you've defined a virtual network you can create n-tier applications or manage internal load balancers in the network topology – without having to define specific services and service subscriptions.
Cisco wasn’t the only contributor to propose a networking service for OpenStack, and RackSpace and Intel both had different proposals. An OpenStack working group was formed, with the aim of determining just what the right abstractions for a virtualised network would be. The result, Tucker said, was the most basic: a piece of wire.
As Tucker points out, this is somewhere to start from: "The main point of this is to try to really open up the floodgates, to let people invent new topologies." While tooling is still being developed, the intention is to be able to indicate locations for virtual machines, select the components needed to build an application, generate the resulting model and let the underlying infrastructure automate the resulting deployment and operations. Code-named Quantum, OpenStack's network service will be a peer with its compute and storage services.
When complete, OpenStack's networking service will allow developers to avoid the full complexity of designing and building the infrastructure they need for their applications. A two-part service will give developers a high level abstraction for the basic elements they need, with a lower level plug-in architecture for vendors to add networking equipment and management tools. Anyone will be able to develop networking services, whether they're tools for managing QoS or security appliances that are embedded in the network layer of a virtual infrastructure.
Tucker is optimistic for the future of networking in OpenStack, and he suggests that we "Think about this as a platform for innovation. We can experiment with different kinds of services, as well as focusing on making the user interface easier." There's still a lot to be done, but adding a network service to OpenStack will simplify cloud development and operations, making it easier to manage and deploy complex services, and at the same time make them easier to move from one OpenStack vendor to another – giving us that holy grail, the portable cloud.
- Is the open source cloud computing dream evaporating?, a feature from The H.