NPEN v1.0 - Network Programmability for the Enterprise

Networking/Server/Operating Systems
  LearnITAnytime Online Subscription (1 Year Subscription - $195.00)
  IT Online Library (1 Year Subscription - $1595.00)
  Private Mentoring 3 Hours ($225)
If quantity is more than 1, Please add all Attendees' Names /Voucher #/ Learning Credit below separated with a comma. If not specified, we will contact you prior to the class start date. Special Instructions


Network Programmability for the Enterprise (NPEN) v1.0 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.


Upon completing this course, the learner will be able to meet these overall objectives:

(Network Programmability for the Data Center (NPEN v1.0)

  • 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


It is recommended that each student has the following knowledge and skills before attending this course:

  • CCNP or Equivalent Experience
  • Complete the Programming for Network Engineers (PRNE) ELT or equivalent Python programming experience such as the Skyline-ATS IPWSP-NE course.

Who Should Attend

This course is designed for network engineers who want to learn how to deploy network programmability and automation using the following Cisco platforms: the Cisco routers running IOS-XE or IOS-XR, ASA firewalls, or the APIC Enterprise Module (APIC-EM).


Module 1 - Network Programmability Fundamentals

Lesson 1: Introduction to Network Programmability

  • Understanding Software-Defined Networking
  • Explore Network Programmability and Automation
  • Examine Open Source Tools and Enterprise Platforms
  • Understand Network Programmability Technology
  • Explore a range of Cisco Platforms and their APIs

Lesson 2: Linux Primer for Network Engineers

  • Understand the Need to Learn Linux
  • Explore the Linux File System
  • Examine Linux Distributions and Package Managers
  • Work with Files and Directories
  • Explore Linux Processes

Lesson 3: Linux Tools for Programmers

  • Build a Programmer�s Workbench in Linux
  • Use Complex Grep and Find Commands to Locate Files
  • Explore powerful use cases of BASH scripting for network programmers

Lesson 4: Python Fundamentals for Network Engineers � Part 1

  • Understanding Python
  • Executing Python Code
  • Examining Python Helper Utilities and Function
  • Writing Idiomatic Python
  • Exploring Common Python Data Types

Lesson 5: Python Fundamentals for Network Engineers � Part 2

  • Lists
  • Dictionaries
  • Loops
  • Functions
  • Working with Files

Lesson 6: Writing and Troubleshooting Python Scripts

  • Writing Scripts
  • Executing Scripts
  • Analyzing Code
  • Error Handling

Lesson 7: Python Libraries

  • Python Libraries
  • Python Modules
  • Python Packages

Module 2: Data Models in the Enterprise

Lesson 1: Introduction to Data Models

  • Data Models Defined
  • The power of using a Data Model
  • The pain of not using a Data Model
  • Review of the SNMP Data Model
  • SNMP compared to the Cisco Data Center Managed Object Model
  • SNMP compared to a YANG derived Data Model
  • The Power of YANG + Cisco DevNet ydk-gen in auto-generating Python Modules
  • An Example of a State of the Art Network Programmability environment using Python with a Data Model

Lesson 2: YANG Data Modeling

  • YANG Overview
  • YANG Module and Module Header
  • YANG: Fundamental Definitions and Statement
  • YANG Types and the TypeDef Statement
  • YANG Choice and Grouping Statements
  • YANG Miscellaneous Statements
  • Putting Things Together with YANG
  • YANG Model Examples with XML and JSON

Lesson 3: YANG Tools

  • YANG Validator
  • The YANG Tool
  • YANG Development Kit
  • YDK-Py API Structure
  • YDK-Gen
  • YANG Explorer

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

Lesson 1: Introduction to Network APIs and Protocols

  • Evolution of Device Management and Programmability
  • Data Encoding Formats
  • JSON
  • XML
  • Data Model-Driven Programmability Stack
  • REST
  • gRPC

Lesson 2: IOS-XE Programmability

  • Cisco IOS-XE API Overview
  • Configuring and verifying NETCONF and RESTCONF on the IOS-XE

Lesson 3: IOS-XR Programmability

  • Cisco IOS-XR API Overview
  • The difference between the deployment of NETCONF on IOS-XE and IOS-XR
  • Configuring and verifying NETCONF on the IOS-XR

Lesson 4: ASA Programmability

  • ASA REST API Overview
  • ASA REST Agent Pre-requisites
  • Using the ASA REST API without a Data Model; Using the REST API Documentation
  • Configuring and verifying REST on the ASA

Module 4: Programming the APIC-EM

Lesson 1: Cisco APIC-EM

  • APIC-EM Overview
  • APIC-EM Platform Architecture
  • Performing Basic Tasks with the APIC-EM
  • Performing Network Discovery with the APIC-EM
  • Exploring APIC-EM Network Programmability with Postman
  • Review of APIC-EM Applications and their API�s
  • Review the APIC-EM and the Swagger REST interface

Module 5: DevOps in the Enterprise

Lesson 1: Version Control

  • Version Control Systems
  • Overview of Git
  • Git Architecture
  • Git Commands
  • Git Workflow
  • Git Branches
  • Using Git
  • Collaborating with GitHub
  • GitHub Pull Request: Fork and Pull
  • Changing Views

Lesson 2: Automated Testing

  • Network Test Infrastructure
  • Network Function Virtualization
  • VIRL
  • DevNet
  • DevNet Sandbox
  • DevNet Learning Labs
  • DevNet GitHub
  • Network Testing
  • Unit Tests

Lesson 3: Automating with Ansible

  • Ansible Overview
  • Ansible Base Modules
  • Ansible and YAML
  • Automating the deployment of a complex configuration to IOS-XE, IOS-XR and ASA devices with Ansible