COURSE OBJECTIVE:
After completing 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 API calls to network devices
• Articulate the differences among and common use cases for XML, JSON, YAML, and 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 context
• Understand that a number of 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 YAM: ata Structures to generate desired state cofigurations
TARGET AUDIENCE:
Engineers looking to gain a broad overview of the skills required to become a next-generation engineer with the ability to program and automate the networks of the future
COURSE PREREQUISITES:
Attendees should meet the following prerequisites:
• 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
COURSE CONTENT:
Examining Network Management and Operations
• Traditional Network Management
• Network Automation and Programmability
• Network Automation Use Cases
• Multidomain Network Automation
Exploring Software Development Methodologies
• Impact of Software
• Waterfall Development Process
• Agile Methodology
Using Python for Network Automation
• Python Fundamentals
• Network Libraries
• Python Package Management
• Netmiko
• Inside Python Modules
Describing NetDevOps: DevOps for Networking
• Development and Operations
• Exploring DevOps Tools
• Git Fundamentals
• Git Branches
• Merge Conflicts
• Continuous Integration
Managing Automation Development Environments
• Need for Reproducible Development Environments
• Python Virtual Environments
• Vagrant
• Docker
Introducing HTTP Network APIs
• API Overview
• HTTP-Based APIs
• RESTful APIs vs Non-RESTful APIs
• HTTP-Based Authentication
• Postman
• Streaming Telemetry
Reviewing Data Formats and Data Encoding
• JavaScript Object Notation
• Extensible Markup Language
• gRPC and Protobuf
• YAML Data Serialization Standard
Using Python Requests to Automate HTTP-Based APIs
• Python Requests Overview
• HTTP Authentication
Exploring YANG
• Introduction to YANG
• Types of YANG Models
Using YANG Tools
• YANG Tool Types
• Pyang
• YANG Explorer
Automating Model-Driven APIs with Python
• NETCONF Overview
• Python ncclient
• RESTCONF Overview
Introducing Ansible for Network Automation
• Configuration Management Tools
• Introduction to Ansibile
• Ansible Inventory File
• Use the Cisco IOS Core Configuration Module
• Ansible Documentation
• Gather Cisco IOS Device Facts
• Use the Cisco IOS Core Command Module
Templating Configurations with Jinja2
• Jinja2 Overview
• Basic YAML
• Configuartion Templating with Ansible
Labs
• Discovery Lab 1: Use Network Automation Scripts
• Discovery Lab 2: Enforce Python Fundamentals on the Interactive Interpreter
• Discovery Lab 3: Automate Networks with Netmiko
• Discovery Lab 4: Use the Git Version-Control System and Collaborate on an Internal Project
• Discovery Lab 5: Build Reproduceable Automation Environments
• Discovery Lab 6: Use HTTP-Based APIs with Postman
• Discovery Lab 7: Explore YAML and JSON Data
• Discovery Lab 8: Consume HTTP-Based APIs with Python Requests
• Discovery Lab 9: Explore YANG Tools
• Discovery Lab 10: Explore RESTCONF with Python
• Discovery Lab 11: Explore NETCONF with Python
• Discovery Lab 12: Configure Network Devices with Ansible
• Discovery Lab 13: Collect Network Data with Ansible
• Discovery Lab 14: Build and Deploy Configurations with Ansible
FOLLOW ON COURSES:
Not available. Please contact.