The Case for Network Automation
DevOps. Programmability. Automation.
These concepts have become a central and pervasive theme in many areas of information technology. What does it all mean to the world of network infrastructure?
Automated workflows and virtualization technologies have led to dramatic improvements in data center scale, agility, and efficiency. Application developers, server administrators, and Cloud and DevOps teams have been utilizing the processes and tools around automation for many years, resulting in streamlined and less error prone workflows. These teams are able to keep up with the speed of business requirements and market transitions due to modern workflows. Leveraging open development frameworks has been essential for innovation.
Why not leverage these concepts for the network, whose management methods are still dominated by human-to-machine interfaces?
Enter Open NX-OS on the Cisco Nexus platform, a rich software suite built on a Linux foundation that exposes APIs, data models, and programmatic constructs. Using Application Programmatic Interfaces (APIs) and configuration agents, operators can affect configuration changes in a more programmatic way.
This book explores Open NX-OS and many of the tools and options it provides. The chapters below examine the drivers for network automation, the fundamental supporting technologies, and the many new capabilities now available to network infrastructures. Real-world use cases are provided that can be immediately utilized for a successful transition to more efficient, safer, repeatable operations.
The Open NX-OS features and functionality discussed within were first introduced on the Cisco Nexus 9000 and Nexus 3000 Series Switches beginning with NX-OS Software Release 7.0(3).
Organization of this Book
Introduction
Within the introduction, we provide an initial walkthrough of the sections and chapters of this book. We try to highlight some important industry trends like the emergence of highly distributed applications and the adoption of Cloud and DevOps methodologies that are driving new paradigms in the network.
Open NX-OS and Linux
This primary section emphasizes how Open NX-OS based networking devices expose the full capability of the Linux operating system for end-users to utilize. Readers can learn how standard Linux tools like ifconfig, ethtool, route, tcpdump can be used to manage a Cisco Nexus Switch. Further, we help readers understand how they can extend the functionality of their switch with their own RPMs and containers, and unlock innovative new use cases.
Network Programmability Fundamentals
This section provides an overview of the evolution of interfaces on networking devices from being human-centric to being programmabilty- friendly. It introduces the readers to some easy-to-use programmatic interfaces like NX-API CLI and helps them get started down the path of programmability.
Model-Driven Programming
This section explores the advantages of a model-driven approach to programmability, and highlights the powerful, new capabilities in Cisco NX-API REST, being a data model-backed RESTful API, brings to the table.
Configuration Management and Automation
Infrastructure and network automation, driven by programmability, is a key enabler for the DevOps transformation. This chapter highlights the broad set of tools, features and capabilities that Open NX-OS incorporates to enable automation. The discussion covers integration with modern config management tools like Puppet, Chef and Ansible.
Practical Applications of Network Programmability
This section shifts the focus from description of network programmability and automation technologies to practical applications of these technologies. Although not exhaustive, the use-cases showcase real solutions intended to spark ideas for new innovative deployments. Each use-case is presented in the following format:
- Problem Statement - Overview of issues to be addressed
- Solution - Summarizes components used within exemplified solution
- Solution Approach - Utilized tools and enabled NX-OS capability
- Conclusion - Outcomes of exemplified solution
This section explores essential tools for network programming as well as the underlying languages and environments. An introduction to Cisco DevNet for Open NX-OS is provided for developers and users to explore the capabilities of Open NX-OS.
Expected Audience
The intended audience for this book are those persons with a general need to understand how to utilize network programmability and unleash the power behind the Open NX-OS architecture. While interested development and IT practitioners may reap the most benefits from this content, the information and examples included within this book may be of use for every intermediate to advanced network professional interested in programmable fabrics.
Elements in this book explore topics beyond the traditional responsibility of a network administrator. The modular and extensible framework of the Open NX-OS modular architecture is not only discussed, but also exemplified through the ability to programmatically configure, operate, and manage Cisco Nexus switches as Linux servers and beyond.
Book Writing Methodology
Ten In, One Out: Ten individually-selected highly-skilled professionals from diverse backgrounds accepted the challenge to duel thoughts over the course of five days. Figuring out how to harness the brain power and collaborate effectively seemed to be nearly impossible, however opposites attracted and the team persisted through the hurdles. The Book Sprint methodology captured each of our strengths, fostered a team-oriented environment and accelerated the overall time to completion. The assembled group leveraged their near two hundred years of experience and a thousand hours of diligent authorship which resulted in this publication.