Jump to: navigation, search

Projects/CoreApplication/Quantum

author: Dan Wendlandt ( dan@nicira.com )

Project codename: Quantum

Summary (one sentence abstract of the project): Quantum is a virtual network service that provides a tenant-facing API to describe L2 connectivity between "interfaces" from other OpenStack services such as Nova.

Detailed Description:

Quantum is a service that manages virtual/physical switches to provide:

  • Tenant-facing API to support the creation of rich multi-tier network topologies connecting other OpenStack services (Nova VMs now, load-balancers, firewalls, etc. in the future)
  • Plugin mechanism enables new technologies that solve key networking challenges (e.g., VLAN limitations)
  • API extensibility to expose advanced network capabilities (e.g., ACLs, QoS, Netflow)

What is the purpose of the project and vision for it?

Not being able to leverage advanced networking capabilities (e.g., multi-tier topologies, security policies, etc) is one key reason why it difficult for users to move workloads to cloud-based solutions like OpenStack. In the long-term Quantum expose many of the rich network capabilities supported by advanced by physical or virtual network devices.

Quantum does this in a "pluggable" way, such that this network functionality can be provided by a variety of open-source and propriety technologies.

Quantum can be orchestrated directly by the tenant, or treated as a building block for more sophisticated orchestration services.

Update on Project Progress Since Start of Incubation

Quantum entered incubation at the start of Essex. Here is an overview of the projects progress in the 5 months since that time.

Project Page:

https://launchpad.net/quantum

Location of project source code:

http://github.com/openstack/quantum

Programming language, required technology dependencies:

Python. Targets same set of packages as Nova/Switch/Glance.

Is project currently open sourced? What license?:

Yes. Apache 2.0.

Level of maturity of software and team:

  • Quantum + Nova has already been successful deployed during trials at 10+ different organizations who are planning large-scale OpenStack deployments and looking for advanced networking capabilities.
  • Quantum has already been deployed on Nova environments of 200+ servers and 3000+ VMs.

Team members making regular contribution include employees of Cisco, Citrix, HP, Nebula, Nicira, Rackspace, Red Hat, and Stackops. This includes employees from Cisco, Citrix, Nicira, and Rackspace who's primary role is contributing to OpenStack with a focus on Quantum.

Employees of the following additional companies have communicated concrete plans to contribute significantly to the project in the next few months: BigSwitch, Brocade, IBM, Locaweb, and NTT.

We host weekly meetings on #openstack-meeting IRC channel.

Proposed project technical lead and qualifications:

Core project developers/ significant contributors and qualifications :

Future Roadmap

  • Improve Nova + Quantum integration to avoid depending on Nova DB.
  • Keystone Authz integration.
  • Better integration with Horizon.
  • Closer integration with Melange from a tenant API perspective.
  • API revamp to simplify flow, allow templates.
  • Additional L2 plugins from BigSwitch, Brocade, HP, Locaweb, and likely more.
  • APIs + plugin mechanism for L3/NAT/Floating IP functionality
  • APIs + plugin mechanism for DHCP
  • Integration with mechanisms for VPN/data-center interconnect.

Infrastructure requirements (testing, etc):

Core Quantum service can be tested with only standard python dependencies.

We are fully integrated into OpenStack review, build, and release process.

We are integrated into devstack, but not yet integrated into smoketest/system-test process. Expect this to be achieved as part of Folsom.

Some plugins have dependency on particular pieces of network gear (e.g., Cisco Nexus). Currently, the creators of such plugins are responsible for device-specific testing.

Have all current contributors agreed to the OpenStack CLA?

Yes

Status:

Incubated, applying for Core.