cisco logo color 2020

Network Programmability for the Enterprise (NPEN) v1.0

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...

Read More
$4,500 USD GSA  $3,853.90
Course Code NPEN-v-1-0
Duration 4 days
Available Formats Classroom
7368 Reviews star_rate star_rate star_rate star_rate star_half
Course Image

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.

Skills Gained

  • 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

Who Can Benefit

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).


  • 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.

Course Details

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?