Network Programmability for the Enterprise v1.0 (NPEN)

Network Programmability for the Enterprise (NPEN) is a four-day instructor led course. This course teaches how to automate common Cisco enterprise platforms such as IOS-XE and IOS-XR routers as well as ASA firewalls. This course also includes coverage of the automation capabilities of the APIC Enterprise Module or “APIC-EM”. Applying CCIE-style learning methods, the course places emphasis on learning via hands-on labs and hands-on demonstrations. The terms “proof-by-Python” and “proof-by-JSON or XML” will be used frequently throughout the course.

Retail Price: $4,495.00

Next Date: 12/18/2018

Course Days: 4


Enroll in Next Date

Request Custom Course


About this Course

Network Programmability for the Enterprise (NPEN) is a four-day instructor led course. This course teaches how to automate common Cisco enterprise platforms such as IOS-XE and IOS-XR routers as well as ASA firewalls. This course also includes coverage of the automation capabilities of the APIC Enterprise Module or “APIC-EM”. Applying CCIE-style learning methods, the course places emphasis on learning via hands-on labs and hands-on demonstrations. The terms “proof-by-Python” and “proof-by-JSON or XML” will be used frequently throughout the course.

Audience Profile

It is recommended that students have the following knowledge and skills prior to attending this course:

  • CCNP or equivalent experience
  • Complete the Programming for Network Engineers (PRNE) ELT or equivalent Python programming experience..

At Course Completion

Upon successful completion of this course, students should be able to meet these overall objectives:

  • Use Linux tools that empower network programmers
  • Write and troubleshoot Python scripts in the specialized area of Network Programmability
  • Understand and interact with Data Models on Cisco routers running IOS-XE and IOS-XR
  • Understand and interact with REST, NETCONF and RESTCONF API’s on IOS-XE, IOS-XR and the ASA
  • Understand and interact with XML and JSON on IOS-XE, IOS-XR and the ASA
  • Understand and interact with the APIC-EM and its REST/SWAGGER interface
  • Learn how to use DevOps tools such as GitHub, VIRL and services offered by Cisco DevNet
  • Learn how to use Ansible to configure Cisco routers and firewalls

Prerequisites

It is recommended that students have the following knowledge and skills prior to attending this course:

  • CCNP or equivalent experience
  • Complete the Programming for Network Engineers (PRNE) ELT or equivalent Python programming experience..

Course Outline

Module 1: Network Programmability Fundamentals

  • Lesson 1: Introduction to Network Programmability
  • Lesson 2: Understanding Software-Defined Networking
  • Lesson 3: Explore Network Programmability and Automation
  • Lesson 4: Examine Open Source Tools and Enterprise Platforms
  • Lesson 5: Understand Network Programmability Technology
  • Lesson 6: Explore a range of Cisco Platforms and their APIs

Module 2: Linux Primer for Network Engineers

  • Lesson 1: Understand the Need to Learn Linux
  • Lesson 2: Explore the Linux File System
  • Lesson 3: Examine Linux Distributions and Package Managers
  • Lesson 4: Work with Files and Directories
  • Lesson 5: Explore Linux Processes

Module 3:  Linux Tools for Programmers

  • Lesson 1: Build a Programmer’s Workbench in Linux
  • Lesson 2: Use Complex Grep and Find Commands to Locate Files
  • Lesson 3: Explore powerful use cases of BASH scripting for network programmers

Module 4: Python Fundamentals for Network Engineers – Part 1

  • Lesson 1: Understanding Python
  • Lesson 2: Executing Python Code
  • Lesson 3: Examining Python Helper Utilities and Function
  • Lesson 4: Writing Idiomatic Python
  • Lesson 5: Exploring Common Python Data Types

Module 5: Python Fundamentals for Network Engineers – Part 2 

  • Lesson 1: Lists
  • Lesson 2: Dictionaries
  • Lesson 3: Loops
  • Lesson 4: Functions
  • Lesson 5: Working with Files

Module 6: Writing and Troubleshooting Python Scripts

  • Lesson 1: Writing Scripts
  • Lesson 2: Executing Scripts
  • Lesson 3: Analyzing Code
  • Lesson 4: Error Handling

Module 7: Python Libraries

  • Lesson 1: Python Libraries
  • Lesson 2: Python Modules
  • Lesson 3: Python Packages

Module 8: Data Models in the Enterprise

  • Lesson 1: Introduction to Data Models 
  • Lesson 2: Data Models Defined
  • Lesson 3: The power of using a Data Model
  • Lesson 4: The pain of not using a Data Model
  • Lesson 5: Review of the SNMP Data Model
  • Lesson 6: SNMP compared to the Cisco Data Center Managed Object Model
  • Lesson 7: SNMP compared to a YANG derived Data Model
  • Lesson 8: The Power of YANG + Cisco DevNet ydk-gen in auto-generating Python Modules
  • Lesson 9: An Example of a State of the Art Network Programmability environment using Python with a Data Model

Module 9: YANG Data Modeling

  • Lesson 1: YANG Overview
  • Lesson 2: YANG Module and Module Header
  • Lesson 3: YANG: Fundamental Definitions and Statement
  • Lesson 4: YANG Types and the TypeDef Statement
  • Lesson 5: YANG Choice and Grouping Statements
  • Lesson 6: YANG Miscellaneous Statements
  • Lesson 7: Putting Things Together with YANG
  • Lesson 8: YANG Model Examples with XML and JSON

Module 10: YANG Tools

  • Lesson 1: YANG Validator
  • Lesson 2: The YANG Tool
  • Lesson 3: YANG Development Kit
  • Lesson 4: YDK-Py API Structure
  • Lesson 5: YDK-Gen
  • Lesson 6: YANG Explorer

Module 11: Network Programmability with IOS-XE, IOS-XR Routers and the ASA Firewall

  • Lesson 1: Introduction to Network APIs and Protocols
  • Lesson 2: Evolution of Device Management and Programmability
  • Lesson 3: Data Encoding Formats
  • Lesson 4: JSON
  • Lesson 5: XML
  • Lesson 6: Data Model-Driven Programmability Stack
  • Lesson 7: REST
  • Lesson 8: NETCONF
  • Lesson 9: RESTCONF
  • Lesson 10: gRPC

Module 12: IOS-XE Programmability

  • Lesson 1: Cisco IOS-XE API Overview
  • Lesson 2: IOS-XE NETCONF API
  • Lesson 3: IOS-XE RESTCONF API
  • Lesson 4: Configuring and verifying NETCONF and RESTCONF on the IOS-XE

Module 13: IOS-XR Programmability 

  • Lesson 1: Cisco IOS-XR API Overview
  • Lesson 2: IOS-XR NETCONF API
  • Lesson 3: The difference between the deployment of NETCONF on IOS-XE and IOS-XR
  • Lesson 4: Configuring and verifying NETCONF on the IOS-XR

Module 14: ASA Programmability

  • Lesson 1: ASA REST API Overview
  • Lesson 2: ASA REST Agent Pre-requisites
  • Lesson 3: Using the ASA REST API without a Data Model; Using the REST API Documentation
  • Lesson 4: Configuring and verifying REST on the ASA

Module 15: Programming the APIC-EM

  • Lesson 1: Cisco APIC-EM
  • Lesson 2: APIC-EM Overview
  • Lesson 3: APIC-EM Platform Architecture
  • Lesson 4: Performing Basic Tasks with the APIC-EM
  • Lesson 5: Performing Network Discovery with the APIC-EM
  • Lesson 6: Exploring APIC-EM Network Programmability with Postman
  • Lesson 7: Review of APIC-EM Applications and their API’s
  • Lesson 8: Review the APIC-EM and the Swagger REST interface

Module 16: DevOps in the Enterprise

  • Lesson 1: Version Control
  • Lesson 2: Version Control Systems
  • Lesson 3: Overview of Git
  • Lesson 4: Git Architecture
  • Lesson 5: Git Commands
  • Lesson 6: Git Workflow
  • Lesson 7: Git Branches
  • Lesson 8: Using Git
  • Lesson 9: Collaborating with GitHub
  • Lesson 10: GitHub Pull Request: Fork and Pull
  • Lesson 11: Changing Views

Module 17: Automated Testing

  • Lesson 1: Network Test Infrastructure
  • Lesson 2: Network Function Virtualization
  • Lesson 3: VIRL
  • Lesson 4: DevNet
  • Lesson 5: DevNet Sandbox
  • Lesson 6: DevNet Learning Labs
  • Lesson 7: DevNet GitHub
  • Lesson 8: Network Testing
  • Lesson 9: Unit Tests

Module 18: Automating with Ansible

  • Lesson 1: Ansible Overview
  • Lesson 2: Ansible Base Modules
  • Lesson 3: Ansible and YAML
  • Lesson 4: Automating the deployment of a complex configuration to IOS-XE, IOS-XR and ASA devices with Ansible
Course Dates Course Times (EST) Delivery Mode GTR
12/18/2018 - 12/21/2018 10:00 AM - 6:00 PM Virtual Enroll
1/21/2019 - 1/24/2019 10:00 AM - 6:00 PM Virtual Enroll