Who should attend
This course is designed primarily for customer engineers and systems engineers in the following job roles:
- Automation Architects
- Automation Engineers
- Consulting Systems Engineers
- DevOps Engineers
- Network Administrators
- Network Architects
- Network Consulting Engineers
- Network Design Engineers
- Network Engineers
- Network Operators
- Network Reliability Engineers
- Sales Engineers
- Site Reliability Engineers
- Systems Engineers
- Technical Solutions Architects
- Application Developers
- Collaboration Developers
- Collaboration Solutions Architects
- IT Directors
- Mobile Developers
- Network Operations Center (NOC) Managers
- Software Architects
- Web Developers
Prerequisites
There are no formal prerequisites for this training. However, the knowledge and skills you are recommended to have before attending this training are:
- Routing and switching including open shortest path first (OSPF), border gateway protocol (BGP), and basic configuration features such as interfaces, simple network management protocol (SNMP), and static routes
- Fundamentals of Python data structures and programming constructs, such as loops, conditionals, and classes, or the equivalent of 3–6 months of experience writing Python scripts
- Basic Linux commands for navigating the file system and executing scripts
- Knowledge of working with text editors
The following recommended Cisco offering may help you meet these prerequisites:
Course Objectives
After taking this course, you should be able to:
- Articulate the role network automation and programmability play in the context of end-to-end network management and operations
- Define and differentiate between waterfall and agile software development methodologies
- Interpret and troubleshoot Python scripts with fundamental programming constructs built for network automation use cases
- Describe how DevOps principles, tools, and pipelines can be applied to network operations
- Understand the role of network automation development environments and associated technologies such as Python virtual environments, Vagrant, and Docker
- Understand and construct HTTP-based application programming interface (API) calls to network devices
- Articulate the differences among and common use cases for XML, JSON, YAML, and protocol buffer (protobuf)
- Construct and interpret Python scripts using the Python requests module to automate devices that have HTTP-based APIs
- Understand the role YANG plays in network automation
- Understand that several tools exist to simplify working with YANG models
- Describe the functionality of RESTCONF and NETCONF and the differences between them
- Construct Ansible playbooks to configure network devices and retrieve operational state data from them
- Build Jinja2 templates and YAML data structures to generate desired state configurations
Detailed Course Outline
- Examining Network Management and Operations
- Exploring Software Development Methodologies
- Using Python for Network Automation
- Describing NetDevOps: DevOps for Networking
- Managing Automation Development Environments
- Introducing HTTP Network APIs
- Reviewing Data Formats and Data Encoding
- Using Python Requests to Automate HTTP-Based APIs
- Exploring YANG
- Using YANG Tools
- Automating Model-Driven APIs with Python
- Introducing Ansible for Network Automation
- Templating Configurations with Jinja2