OpenStack is an open source, community driven, cloud management platform. OpenStack is sometimes referred to as a cloud operating system (or cloud management platform (CMP)). In reality, it’s a collection of projects and application program interfaces (APIs) that can be implemented with open source or commercial technologies. OpenStack Networking, otherwise referred to as Neutron, is one of many core projects within OpenStack.
If we go back a little further, networking was actually part of the Nova project and was called Nova-networking. First there was OpenStack Nova, and when the importance of networking started to get recognition, networking was spun out as a major sub project. This lead to Quantum. Because of naming rights, the OpenStack Foundation was forced to change the name, resulting in the current namesake — Neutron.
There was a lack of flexibility and features in Nova networking, resulting in OpenStack Networking becoming a standalone project. OpenStack Networking, or Neutron, provides APIs for network constructs, such as port, interface, switch, router, floating IPs, security groups, etc. The APIs exposed by Neutron can almost be thought of as a software-defined networking (SDN) northbound API, but Neutron can be viewed as orthogonal to SDN since it can integrate with traditional networks with existing protocols.
How OpenStack Networking is Managed
As long as the networking technology has a plug-in for OpenStack Neutron, it can smoothly integrate with OpenStack. This means it is up to the implementer to determine how the network constructs are actually deployed — a port, interface, switch, or router can be either physical or virtual, it can be part of a SDN or a traditional network environment; it doesn’t matter. The only requirement is the vendor (or open source technology) supports the Neutron APIs.
For example, Big Switch, VMware, Cisco, Nuage Networks, PLUMgrid, Arista, Juniper, Brocade, and many more support OpenStack Networking via Neutron Plug-ins, and each implementation is slightly different. For example, Arista will integrate natively and configure hardware switches to support OpenStack, but VMware will integrate natively and configure virtual switches to tie back into OpenStack. Many of these plugins provide integration with SDN and network virtualization solutions both open source and proprietary. As well many of these plugins provide the ability to bring in additional layer 4-7 functionality, allowing for service chaining of virtual network functions like (firewall, load-balancing, etc), enabling OpenStack to be used for network functions virtualization (NFV) implementations.
From an end user’s perspective, this is a huge win. This means that as an end user, you should be able to replace one vendor or product with another quite easily in an OpenStack environment. In theory, this is true, but many vendors are supporting proprietary extensions with their Neutron integration efforts, potentially making them hard to swap out. This is something to consider as an end user, especially if you are thinking about deploying a commercial offering integrated with OpenStack.