Chapter 1 What is Network Automation?

For diagrams, tables, or exact code formatting, .

JOHN W. CAPOBIANCOPRINTED PAGE 29

Test Automated testing can be triggered by the automated build. Builds can be deployed to test specific lab environments, a Virl environment or a Jenkins environment. Unlike software which can easily be tested in virtual environments, depending on the environment, network testing may not apply to network automation playbooks. Instead testing could be incorporated directly into an Ansible playbook. Be aware of the automated testing TFS offers.

For more information about Cisco Virl please visit: http://virl.cisco.com/ For more information about Jenkins please visit: https://jenkins.io/ Release Releasing software, in this case network configurations, is driven by Ansible playbooks as the final step in the CI/CD pipeline. Builds can be scheduled or triggered by pull requests. Ansible playbooks can be built into the release steps in TFS. While highly exciting, automated releases should be carefully considered and performed with a full understanding of the impact of the change. Disruptive changes may require specially coordinated releases while routine pre-approved changes can be continuously delivered in real-time. Check mode, documentation playbooks, automated testing playbooks and reviewing commits in the pull request are all validation steps and quality assurances used to ensure the CI/CD pipeline does not have unintended consequences.

There can be great reluctance to move to a full CI/CD pipeline with fully automated changes being made to the production network. After all, if great care is not taken in developing, testing, retesting and documenting code, a mistake can be automated, possibly taking down the network. However, when successfully implemented, automation using a CI/CD pipeline can transform an organization’s entire approach to designing and operating the enterprise network. This is a revolutionary opportunity!

Summary

For years enterprise class networks have been waiting for a scalable solution to basic network configuration management. Networks continue to be the bottleneck in IT service delivery and the root cause of many outages and downtime partly because of the lack of management tools available. Networks continue to require large specialized support teams and many lack relevant documentation. Networks have not evolved alongside the other moving parts of organizations. Software defined networking attempted to segregate and centralize the network control plane, while leaving the data plane decentralized across the network. While this approach did not necessarily take hold and transform the industry, the idea of decoupling the networking planes and centralizing the management plane has found great success using network automation.

Network automation can be understood simply as the conversion of network configurations to software-like application code including the tools, methodologies and processes used by the software development discipline. Every aspect of the traditional enterprise network can be automated using a modern network development lifecycle (NDLC) powered by an automation engine - Ansible. Ultimately