Chapter 1 What is Network Automation?
For diagrams, tables, or exact code formatting, .
the automation solutions. That said, a balance must be struck. In an emergency the CLI will never be replaced, however be sure to track all out of band changes applied to fix the issue. Retroactively include these changes in the code repository as an out of band emergency branch. All the manual emergency changes should be captured and incorporated into the repository.
NetDevOps
NetDevOps builds on the DevOps model from the application world but is applied to the networking functions of an organization. The network “developers” (senior network engineers, architects, designers) and the network “operators” (network administrators, network support staff, day-to-day network operations) are blended under a new framework. The senior developers are empowered to deliver into production directly through release management using pull requests. The operations team updates the data models and executes playbooks for routine network changes. Operations most likely will not write or update the dynamic templates. Templates will be developed by the senior network staff. In the case of NetDevOps benefits can be found by having software developers join this new team to help create the data models and templates with the input from the network team. Blending IT and blurring the lines can lead to questions of where authorized changes come from. Fortunately, the automation engine itself is making the changes. Approvals should now look like peer reviews of code and traditional quality assurance (QA) as changes are now code based.
The impact to network operators is tangible. Operators learn to write playbooks to help run the network, identify problems, and troubleshoot. Most network changes will be automated to much easier tasks such as running an Ansible playbook as a single line command. Using the features available in TFS, operations now has version control available in the form of pull requests and Git commit information. Change approvals are built directly into the pipeline allowing for automated delivery of solutions.
Skills Converting the network team into a development shop takes time, practice, training and support from the organization. Staff will continue to require essential network training while learning and developing their programming skills. The code itself will improve over time as skills are polished. Code is easily refactored once better methods or improved logic develops. The best way to improve these new skills is, ideally, to try and fully automate a lab environment if one is available. Having a lab environment where staff can safely troubleshoot allows them to develop without fear of causing an impact to production. Code should only interact with a production environment after it has been fully vetted, and the effects of the implementation understood. Once the code is fully tested in a safe environment, it can be ported over to the production environment worry-free.
Tools The standard network administrator toolkit is not fully replaced. Network administration still includes: Putty or an SSH session manager to get to the CLI. NMS systems that may already be in place (Cisco Prime Infrastructure, Nagios, etc.). IOS commands and configurations. Existing skills on the CLI. However, the toolkit now includes:
