Transform the network from gatekeeper to enabler with a Linux Network OS platform for switches that enables automation, feature velocity and innovation on par with servers.
“The only way to deal with an unfree world is to become so absolutely free that your very existence is an act of rebellion.” – Albert Camus
In my role as a Customer Solutions Engineer (affectionately known as CSE) at Cumulus Networks, I am on the frontlines discussing customer requirements, use cases and networking architectures. A frequent question that customers ask me is “what can an open network operating system (OS) do for me?”
Most customers have lived in the world of black boxes where the OS and hardware are vertically integrated and your vendor keeps you in a sandbox that controls what you can and cannot do. In the black box world, if you want a new feature, application or a different operational model, you have to request it from your account team and wait while the vendor decides if your use case is important enough or you are a big enough customer.
The idea of having direct access to the different operational aspects of the OS is a foreign concept for most, and as a result, innovation is limited. However, for those who understand the power of an open platform and can take advantage of this, it can be liberating. Now that open networking platforms (bare metal switching and open OS) are broadly available, I’d like to share some of what my customers and I have learned.
Main Use Case – Automation
The most frequent and best use case for an open switch OS centers around a common automation toolset for both servers and switches, and the OpEx savings that migrating to a software-defined data center (SDDC) can provide. This use case is well known today and every networking vendor is messaging the value of automation. However, there are always new automation tools being developed. Puppet, Chef and CFEngine have been around for a while and already have a rich feature set for the server world. Now they are expanding into the networking world. Plus, Ansible and Salt are becoming popular with many operators. The ability to add support for a new automation toolset can involve a lot of development and testing with a closed black box vendor OS, but is fairly trivial for a true Linux distribution like Cumulus Linux. It is much easier to stay current with the latest tools and offer more choices when your OS is open.
There are also other lesser-known but still very powerful advantages of opening up the black box and using an open platform. Let’s take a closer look at some other examples.
Developing on a black box or closed OS requires extensive knowledge and experience with the quirks of the creators of the original OS and the various application programming interfaces (APIs) it may use. There is a learning curve and, depending on the code quality and documentation, it takes some time to become proficient. In contrast, an open source OS like Linux provides wide availability of source code and documentation as well as a large community of developers and operators.
Linux is generally an easier platform to learn because there are many online communities, chat groups, and mailing lists where information on all aspects of Linux can be found easily and questions can be answered. All major vendors actually use Linux as the basis of their OS before heavily modifying it, so most developers have some familiarity with Linux to start with. However, even though a traditional networking vendor’s OS is based on Linux, the distribution is forked off, heavily modified and locked down so that customers cannot install their own applications. The only access is usually by way of some scripting tools, a few programming libraries and an API that controls the access to the OS and its applications. Clearly, use of Linux doesn’t equate to an open OS.
In contrast to that, Cumulus Linux is a true Linux distribution, which removes all those barriers to enable rapid innovation.
Integration between Cumulus Linux and new partner products — such as network virtualization platforms VMware NSX and Midokura Midonet — has generally been done in a very short time, usually less than a month, because Cumulus Linux is a Debian distribution with well-understood and well-documented data structures and interfaces (Linux is the API), and partners can quickstart the integration themselves on a Linux VM. Other individual features such as sFlow were added very easily and quickly due to the availability of similar open source features (Host sFlow or hsflowd), which already existed. In many cases our partners had already done a lot of the work to integrate with Linux and all they really needed was access to Cumulus Linux to verify the integration.
Creating New Applications and Features
One of our partners, Peter Phaal, President of InMon (the creators of sFlow), actually took the integration one step further. It was fairly trivial to incorporate sFlow into Cumulus Linux, so Peter decided to develop a simple RESTful API on top of Cumulus Linux to demonstrate how sFlow analytics can drive network controls.
Cumulus Networks and a partner demonstrated a self-contained real-time elephant flow marking solution that leverages the visibility and control features of Cumulus Linux to prevent large elephant flows from adversely affecting latency of small mice flows.
Peter was inspired by this demonstration to create a second RESTful API that offers a straightforward method for remotely creating, reading, updating, deleting and listing ACLs.
Furthermore, Peter did not stop with just the simple RESTful API. He has continued to develop and improve the API and made it available on GitHub. Peter also blogs about the improvements to the REST API for Cumulus Linux ACLs. Cumulus Linux provides an attractive platform for developers, and this is a good example of the solutions that are built on top that drive mainstream adoption. Cumulus Networks and their partners provide a wide variety of solutions that derive compelling value from the network, which are not available on closed platforms.
Being Part of a Community
OpenStack networking has been evolving rapidly, starting with Nova-net and moving toward Neutron. Cumulus Networks had originally implemented Nova-net support for OpenStack but the latest method uses the Neutron Modular Layer 2 (ML2) driver. A graduate student studying at a university, a Cumulus Networks customer, decided not to wait for the officially provided ML2 driver from Cumulus and wrote his own in Python, cleverly named altocumulus, and published it on GitHub for the rest of the community This is a great example of what a customer with some basic development skills can do to help push an open networking OS forward or fill the operational gaps in their environment. It is also an example of how the open source community provides innovation when the network OS is not locked down.
You Don’t Have to Be a Developer
Members of the Customer Experience team inside Cumulus Networks also leverage the power of the open platform. Cumulus Networks support engineer Stanley Karunditu (CCIE Routing and Switching, Security and Datacenter # 8884) wanted to make it easier to view common troubleshooting information. Stanley wrote netshow in Python to aggregate various commands, structuring the output both to the screen and also available as JSON structured data. The netshow project was so useful that it has been moved from experimental to the official Cumulus Networks add-ons repo, where many customers have begun to use it.
While Stanley continues to improve netshow, the feedback from customers has been overwhelmingly positive. This is another great example of how you don’t have to be an advanced developer to customize or add important features to an open networking OS. You can expect continued improvement to netshow in the future from Stanley and hopefully the community as well.
The Power of Open Networking
You don’t have to be a developer or DevOps expert to use an open networking OS like Cumulus Linux. There are many common use cases that are supported today: Cumulus Networks just released Cumulus Linux 2.5, complete with validated design guides for VMware vSphere, Hadoop and OpenStack.
For those who can fully utilize a network OS like Cumulus Linux, they can enjoy the many advantages it provides:
- Using the most modern tools for automation and monitoring in today’s SDDC
- Rapid feature development
- Adding new features or applications
- Customizing the OS to your use case
Cumulus Networks is involved with a fast-growing number of customers who are comfortable with open platforms and want the freedom to use their networking equipment as they desire. Everyone benefits from the open system (even those who don’t do their own development) because everyone can leverage the power of the community to innovate and improve faster than a single vendor can.
The ability to choose the switch hardware and network OS as separate components was one big step forward for our customers. An even bigger step is taking advantage of an open networking platform that allows our customers to “open the black box!”
The author wishes to thank Peter Phaal, Stanley Karunditu and Scott Emery for their support and feedback. You can follow Todd on twitter @toddmcraw. Join Todd for the weekly “Coffee with Cumulus” introduction to Cumulus Linux.