OpenStack is basically an open source CLOUD stack, and it delivers the possibility to consume the platform resources using the REST API calls. The "plug-in" architecture of OpenStack services enables various vendors (such as VMware) to integrate their infrastructure solutions (such as vSphere and NSX) to deliver an OpenStack cloud.
In the NSX Architecture diagram the OpenStack represents the Cloud Management Layer that provides governance, resource planning, financial planning etc and potentially manages multiple underlying cloud fabrics. This is all done to provide the transparent flow of the Applications running on top of the Cloud architecture. It´s really important to clear up one thing first:
- Non-Cloud Environment: An application “owner” would contact one or more datacenter administrators, who would then deploy the application on the application owner's behalf using software infrastructure tools (e.g., VMware vSphere) to deploy the application workloads on top of physical compute, network, and storage hardware.
- Cloud Environment: Application owners can directly request and provision the compute, network, and storage resources needed to deploy their application, which significantly decreases the operational expenses.
OpenStack enables self-service to compute/network/storage resources, where as tools there are:
- Web GUI
- CLI tools
- Programmatic SDK.
OpenStack splits infrastructure delivery functions into several different services. Each of these services is known by its project code name:
- Nova: Compute service.
- Neutron: Network services (formerly called "Quantum").
- Cinder: Block Storage service
- Glance: Image service.
- Keystone: Identity service.
- Horizon: Web GUI (for both, Admins and Users).
OpenStack's strength is that it is a highly customisable framework, allowing those deploying it to choose from a number of different technology components, and even customize the code them selves.
When you plan an OpenStack deployment, it is of crucial importance to know exactly who should handle which part of the architecture, and know the difference between the Cloud USER and the Cloud ADMIN:
Ok, so as Network Engineers what we´re mostly interested in is of course the Network Virtualisation part, meaning – Neutron module integration with the VMware NSX. The NSX appliance provides Networking Services such as L2 networks, L3 routing, Floating IPs, Security Groups and more. OpenStack delivers these services through the Neutron service and API's.
IMPORTANT: Neutron NSX plugin enables programmatic control of networking capabilities in multi-tenant cloud data centers. This way you can use an OpenStack Web GUI to directly create Subnets, Virtual Routers.
What are the advantages of NSX over the Neutron module? Nice of you yo ask! In summary, NSX offers Scalability, HA, Advanced Network Services (FW, LB, Routing using OSPF or BGP, QoS), so in summary:
- A centralised control plane, highly available and scalable (NSX Controller Cluster).
- A management plane interface to monitor and troubleshoot the environment (NSX Manager).
- A Scale out cluster of Layer 3 Gateways is leveraged. (NSX EDGE Gateway).
- Stateless Transport Tunneling Protocol for Network Virtualisation (STT), which delivers high performance, vendor independent transport on any physical fabric architecture.
To integrate (configure) the NSX Plugin into the OpenStack, follow the instructions provided in the link below: