A rack of servers in CERN's Geneva data center, where it stores 160PB of data on disk and tape drives. Credit: CERN
A key but quiet component of Cisco’s “open” data center operating system is the ability to build applications and microservices via Linux containers.
It’s not a new capability but an increasingly important one for making – and marketing – Cisco’s NX-OS as “open,” a campaign that began in June. Open NX-OS includes object store and model driven RESTful and XML/JSON API support in the NX-API; native third-party application integration of Puppet, Chef and Ganglia, among others; a software developer’s kit for application integration; and Linux utilities support for tool integration across compute and network.
It is these Linux utilities and capabilities that Cisco should emphasize if it is to benefit from the disaggregation wave service providers embrace and that’s expected to eventually wash over enterprise networks, analysts say. VMware is working on container networking too with its NSX network virtualization platform.
“Advanced networking support for containerization and microservices will become increasingly important in the years ahead,” says IDC analyst Brad Casemore. “Cisco is positioning NX-OS to meet at least some of that need. At IDC, we believe all networking vendors will need to provide meaningful solutions for microservices-based approaches and containerization.”
Numerous attempts to interview a Cisco official on the Linux container support in NX-OS were unsuccessful. But as described in this Cisco/Red Hat whitepaper, LinuX Containers (LXC) is an operating system-level virtualization method for running multiple isolated Linux systems, or containers, on a single host. LXC can be used to install custom applications on the switch that a given customer requires.
Applications running in different containers are isolated so that no single container impacts the performance or stability of another or the underlying switch operations, the whitepaper states. These containers encapsulate any application dependency.
Because of this isolation, multiple versions of the same application dependency can co-exist in the same environment without the administrative overhead of a complete software stack, including the OS kernel, the whitepaper states.
Linux containers are intended to offer a “build once, run on many” application development environment that accelerates development and deployment, making containers ideal for DevOps collaboration. Containerized applications are designed to run on bare metal servers, virtual machines, public clouds, and network devices.
Containers can improve application delivery in several ways, including lowering costs, speeding up application development and simplifying security. They are often just a few dozen megabytes, where a typical virtual machine might be hundreds of megabytes, or even gigabytes, according to the whitepaper.
In addition to DevOps, they also make it easier to adopt new IT models such as hybrid clouds and microservices architectures. Microservices are a suite of application components which come together over the network. Each component is written in the best programming language for the task, and each component can be deployed and scaled independently of the others.
Sign up for Computerworld eNewsletters.