Large image for: NPDC v1.0 - Network Programmability for the Data Center (NPDC) v1.0

NPDC v1.0 - Network Programmability for the Data Center (NPDC) v1.0

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 Data Center (NPDC) v1.0 is a four-day instructor led course. This course teaches how to automate an end-to-end Cisco Data Center consisting of Nexus 7000 and 9000 switches. This course also includes Cisco ACI and UCS platforms using state of the art Model Driven API�s. 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 (NPDC 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 (both the Cisco Managed Object Model and YANG models) on Nexus switches, the ACI APIC and the UCS
  • Understand and interact with REST, NETCONF and RESTCONF API�s on Nexus switches, the ACI APIC and the UCS
  • Understand and interact with XML and JSON on Nexus switches, the ACI APIC and the UCS
  • Learn how to use DevOps tools such as GitHub, VIRL and services offered by Cisco DevNet
  • Survey the capabilities of OpenStack and Cisco CloudCenter


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 Data Center engineers who want to learn how to deploy network programmability and automation using the following Cisco platforms: the NEXUS 7000, the NEXUS 9000 in both NXOS-mode and ACI mode, the ACI APIC and the UCS.


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 Data Center

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 Statements
  • 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 on the NEXUS 7000 and 9000

Lesson 1: Introduction to Network APIs and Protocols

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

Lesson 2: NEXUS 7000 Programmability

  • Nexus Programmability Overview
  • NX-API CLI—Part 1
  • NX-API CLI—Part 2
  • Python on Box

Lesson 3: Nexus 9000 Programmability

  • Review of the many programmability options of the NEXUS 9000
  • Programming the NEXUS 9000 using REST and the Cisco Managed Data Model
  • Browsing the NEXUS 9000 Managed Data Model using Visore
  • Using the NXOS CLI to verify, debug and log network programmability on the NEXUS 9000
  • Exploring the on-board Python programmability using the NEXUS 9000 CLI, BASH and GUESTSHELL interfaces
  • Configuring NETCONF and RESTCONF with YANG Models on the NEXUS 9000

Module 4: Programming the ACI APIC

Lesson 1: Cisco Application Centric Infrastructure

  • ACI Overview
  • ACI Object Model
  • Using Postman REST Client
  • Cobra SDK
  • Arya
  • ACI Toolkit
  • ACI Toolkit Applications — CLI
  • ACI Toolkit Applications — Diagrams Tool
  • ACI Toolkit Applications — Lint
  • ACI Toolkit Applications — Cable Plan
  • ACI Toolkit Applications — Event Feeds
  • ACI Toolkit Applications — Fake APIC

Module 5: Programming the Cisco UCS

Lesson 1: UCS Programmability

  • Understand the Basic Physical UCS Components as a Single System
  • Explore XML and via the UCS Manager
  • Explore the XML content of a backup configuration script generated by the UCS Manager
  • Explore the Cisco Managed Object Model of the UCS and compare its similarities to the Managed Object Models found on the NEXUS 9000 and the ACI APIC.
  • Write Python scripts using both the UCS Data Model and the UCS Manager SDK from DevNet
  • Use the exact same programmability tool kit with UCS Central to scale to a multi-UCS domain environment
  • Explore UCS Director Orchestration and Workflow creation. Compare its focus on JavaScript to the use of Python with UCS Manager and UCS Central.
  • Formulate a learning roadmap to master UCS Programmability featuring the UCS Platform Emulator

Module 6: Data Center DevOps

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: OpenStack and Programmability

  • Need for Programming
  • The Business Need for Network Programmability
  • ACI Programmability
  • ACI Open APIs & Ecosystem
  • API Protocols

Lesson 4: CloudCenter Programmability

  • CloudCenter API Overview
  • CloudCenter Integration Fundamentals - UCS Director
  • Cisco CloudCenter and ACI