* OpenStack *
Cisco has nothing to do with them Open Source communities, right? No! In order to get your attention I'll just throw a statement out there - A big part of WebEx runs over OpenStack!!!
Ok, now that I've got your attention - OpenStack is basically a Cloud OS, and it's built as a group of components that use APIs to communicate to each other. Yes, there are many more, but OpenStack is the one that's been dominating the market, and the one that will be in 5 years as popular as Virtualization is today. It's mostly written in Python (yes, Python, and if you want to learn a programming language and you're a Networker - I recommend this one). OpenStack has APIs used for components to be able to "speak" to each other. Centred at IaaS, and slowly moving towards PaaS (Platform as a Service)
Have in mind that in order to have a true OpenStack deployed, you can't just have one of the components of the OpenStack. You need to use the original non modified Projects (at least Nova, Neutron, Swift, Cinder, Horizon, Image and KeyStone). Let's talk about what these are. The main components of the OpenStack include:
- Nova - Hypervisor interaction, houses VMs
- Keystone - Identity policies, RBAC, LDAP
- Telemetry - Metering and Monitoring
- Heat - Template based ORCHESTRATION, faster application development
- Trove - DBaaS (Data Base)
- Neutron (called Quantum before, changed due to the proprietary name) - in charge of NaaS part, plug-ins for external HW, IP address management. This is probably the most important component for us, as Networking Professionals, so I'll say a few more words about it. Neutron is designed as a Neutron Server, programmed to integrate with APIs. These are the most important concepts regarding Neutron integration:
- The main one is called CORE API (Network, Port and Subnet).
- The other APIs are called Resource and Attribute Extension API (ProviderNetwork, LBaaS, FWaaS, VPNaaS, Router, SecurityGroups...)
- There are also Plug-ins, like the one in Nexus, that provisions the resources required by the OpenStack in Nexus Switch. Cisco developed ML2 (Modular Layer 2) Plug-in, that contains Type Drivers (VLAN, GRE, VXLAN) and Mechanism Drivers that decide how it's going to be implemented (APIC, OVS, Nexus, OpenDaylight)
- Cisco ACI, instead of constructing the connectivity the application requires, it works on top of the Neutron API evolution so that it builds a per-tenant resources (Network, Router, Security Group, Port)
- Group Policy Neutron API developed for Juno OpenStack release, and it introduces a concept of Contract (set of Policy Rules) between the EPGs (End Point Group)
OpenStack, just like Linux, has it's distributions. Another similarity to Linux is that big clients prefer wont be satisfied with just any OpenStack distribution. They will require a distribution with the Full Product Support, so there are SUSE, RedHat (that has both, Open Version & Enterprise Version), and many others.
CISCO keeps being highly involved in OpenStack, and it's got direct contribution in the following:
- High Availability Architectures (By default OpenStack isn't designed as a HA environment)
- Automation (Puppet). Cisco designed a few installers for OpenStack.
- Neutron/Nova Plug-ins for Nexus, DFA, APIC, UCS
- OpenStack based "Global Intercloud" hosted across Cisco and Partners Data Centres
- CVD (Cisco Validated Design) for various production deployments
* OpenDaylight *
It's an Java based SDN controller that enables the Virtualization as well as the NFV implementations. OpenDaylight integrates with OpenStack using the Neutron API / Neutron Plug-in.
Cisco has 2 different SDN controllers.
- Cisco APIC (Application Policy Infrastructure Controller). APIC is the main component of the Application Centric Infrastructure (ACI) fabric, and it's is a product I've been impressed with recently, and I'll definitely dedicate it an entire post.
- Cisco XNC (Extensible Network Controller) is a Cisco's OpenSource SDN controller. Basically it's Ciscos version of the OpenDaylight Controller.
APIC and XNC will have the same Northbound interface. APIC isn't only the SDN controller, but also gives the visibility of what's happening (HealthCheck and other monitoring tools). It's not multi vendor, meaning - it will be profoundly integrated with the Cisco Nexus Series, so in my opinion Cisco has the XNC only as a "just in case" solution, cause if OpenDaylight wins the SDN market, but it will force APIC with all it's got. Most probably the strategy will be to try and offer APIC + Nexus + UCS as the Premium Solution.