• 100 Queen St W, Brampton, ON L6X 1A4, Canada
  • +1-800-961-0337
START DATE END DATE CLASS TIMINGS MODE LOCATION ACTION
12/10/2018 12/14/2018
  • VLT
Live Online
03/04/2019 03/08/2019
  • VLT
Live Online
06/03/2019 06/07/2019
  • VLT
Live Online
08/26/2019 08/30/2019
  • VLT
Live Online
11/18/2019 11/22/2019
  • VLT
Live Online

Designing and Implementing Cisco Network Programmability (NPDESI v1.0)

Course Objectives

After finishing this course, the student will have the capacity to meet these general destinations:

  • Figure out how to limit the measure of manual collaborations ("CLI") with the system, and increment the utilization of contents and computerization instruments to drive down operational wasteful aspects.
  • Survey arrange programmability essentials including Linux and Python, regular robotization conventions, for example, NETCONF and REST and how they identify with YANG information models.
  • Find out about SDN controllers including APIC, APIC-EM and OSC, and also how to utilize gadget level APIs, for example, Cisco NXOS, IOS-XE, IOS-XR and ASA OS.
  • Find out about DevOps and Agile programming improvement strategies, and begin on utilizing computerization instruments, for example, Ansible, Chef and Puppet.

Who Should Attend

The essential gathering of people for this course is as per the following:

  • System Engineer
  • Field Engineer
  • Framework Engineer
  • System Designer
  • System Operations
  • The optional gathering of people for this course is as per the following:
  • System Automation Engineer
  • System Programmer
  • System Developer
  • Programming Engineer
  • Application Developer

Designing and Implementing Cisco Network Programmability (NPDESI v1.0)

Course Outline

Module 1: Network Programmability Fundamentals

Lesson 1: Introduction to Network Programmability

Understanding Software-Defined Networking

Customary versus Software-Defined Networks

Current Industry Trends

Open Source Software

Programmable Infrastructure

Programming Defined Networking

DevOps

Cisco ACI

System Programmability and Automation

Employments of Network Automation

System Automation Scenarios

Open Source Tools and Enterprise Platforms

System Programmability Technology

System Automation Workflow

Prologue to Cisco Platforms and APIs

Cisco Platforms and APIs

Test

Lesson 2: Linux Primer for Network Engineers

Why Learn Linux?

Exploring the Linux File System

Ways and Directories

Linux Distributions and Package Managers

Bundle Management

Working with Files and Directories

Document Permissions

Linux Processes

Test

Test 1: Using the Linux Command Line

Assignment 1: Package Management

Assignment 2: Navigating the Filesystem

Assignment 3: Working with Files and Directories

Lesson 3: Linux Networking

Essential Linux Networking Commands

Survey the Routing and ARP Tables

Diligent Network Configuration

Test

Test 2: Linux Networking

Undertaking 1: Verify IP Address Information

Undertaking 2: Configuration Changes

Undertaking 3: Persistent Network Configuration

Lesson 4: Python Foundations for Network Engineers – Part 1

Understanding Python

Executing Python Code

Python Helper Utilities and Function

Composing Idiomatic Python

Basic Python Data Types

Variable Assignment

Information Types: Strings

Printing Strings

Linking Strings

String Built in Methods

Information Type: Numbers

Information Type: Booleans

Conditionals

Test

Test 3: Python Foundations—Part 1

Assignment 1: Create Strings

Assignment 2: Navigate the Built-In Help Features

Assignment 3: Use Built-in Methods of Strings

Assignment 4: Use Conditionals

Lesson 5: Python Foundations for Network Engineers – Part 2

Records

Lexicons

Circles

Capacity

Working with Files

Test

Test 4: Python Foundations – Part 2

Undertaking 1: Working with Lists

Undertaking 2: Working with Dictionaries

Undertaking 3: Using a For Loop

Undertaking 4: Working with Functions

Lesson 6: Writing and Troubleshooting Python Scripts

Composing Scripts

Executing Scripts

Examining Code

Mistake Handling

Test

Test 5: Writing and Troubleshooting Python Scripts

Undertaking 1: Writing a Hello World Script

Undertaking 2: Writing a Network Script

Undertaking 3: Analyzing and Troubleshooting a Script

Lesson 7: Python Libraries

Python Libraries

Python Module

Python Package

Test

Test 6: Custom Python Libraries

Undertaking 1: Using Built-In Modules

Undertaking 2: Creating a Python Module

Undertaking 3: Creating a Custom Package

Module 2: APIs and Automation Protocols

Lesson 1: Introduction to Network APIs and Protocols

Advancement of Device Management and Programmability

Show Driven Programmability Stack

Information Encoding Formats

JSON

Revelation 1: Working with JSON Objects in Python

Errand 1: Working with JSON Objects in Python

XML

Revelation 2: Using XML in Python

Errand 1: Learning Lab Procedure

Information Models

YANG

Show Driven Programmability

Show Driven Programmability Stack

REST

NETCONF

Disclosure 3: NETCONF Capabilities Exchange

Errand 1: Learning Lab Procedure

RESTCONF

gRPC

Test

Lesson 2: Cisco ASA REST API

Cisco ASA REST API Overview

REST API Agent Pre-requirements

Client Credentials

Cisco ASA REST API Documentation and Console

Cisco ASA REST API Examples

Test

Test 7: Interacting with Cisco ASA REST API

Errand 1: Retrieve Interface Statistics Using Postman

Errand 2: Create Network Service Object Using Postman

Errand 3: Review Python Script Consuming ASA API

Errand 4: Construct Python Script Consuming ASA API

Lesson 3: NX-OS Programmability

Nexus Programmability Overview

NX-API CLI—Part 1

Disclosure 4: NX-API Discovery

Errand 1: Learning Lab Procedure

NX-API CLI—Part 2

NETCONF

Python on Box

NX-API REST

Test

Test 8: Consume NX-API with Python

Assignment 1: Consume NX-API with Python

Test 9: Consuming NETCONF on Nexus

Assignment 1: Using the xmlagent Service

Assignment 2: Consuming NETCONF in Python

Test 10: Using Python on the Nexus Switch

Assignment 1: Cisco CLI APIs

Assignment 2: Executing Python Script on Box

Lesson 4: Cisco IOS XE APIs

Cisco IOS XE APIs Overview

IOS XE RESTCONF API

IOS XE NETCONF API

Test

Test 11: Interacting with the Cisco IOS XE RESTCONF API

Errand 1: Gather Data Using Postman

Errand 2: Making Configuration Changes Using Postman

Errand 3: Troubleshoot Python Script Consuming RESTCONF API

Test 12: Interacting with the Cisco IOS XE NETCONF API

Errand 1: Consume NETCONF with Python

Lesson 5: Cisco IOS XR APIs

IOS XR NETCONF APIs

Test

Test 13: Interacting with the Cisco IOS XR NETCONF API

Assignment 1: Consume NETCONF with Python

Lesson 6: Securing the Management Plane

Administration Plane

Access Control Lists

Test

Test 14: Securing the Management Plane

Assignment 1: Create Access Control Lists

Module 3: Data Models

Lesson 1: YANG Data Modeling

YANG Overview

YANG Module

YANG Module Header

YANG Leaf Statement

YANG Leaf-List Statement

YANG List Statements

Assembling Things

YANG Types

YANG Typedef Statement

YANG Choice Statement

YANG Grouping Statement

YANG Miscellaneous Statements

YANG RPC Statement

YANG Imports and Includes

YANG Modules and Submodules

YANG Model Examples

XML

JSON

CLI

Test

Lesson 2: YANG Tools

YANG Validator

Revelation 5: Validating YANG Models Using yangvalidator

Assignment 1: Using yangvalidator

Test 15: Writing a Custom YANG Model

Errand 1: Validate Device Configurations

pyang

Disclosure 6: Viewing and Validating YANG Models with pyang

Errand 1: Viewing and Validating YANG Models with pyang

YANG Development Kit

Disclosure 7: BGP Configuration Change utilizing ydk-py (with OC BGP models)

Errand 1: BGP Configuration Change Using ydk-py (with OC BGP Models)

YDK-Py API Structure

YDK-Gen

Disclosure 8: Generate Python Bindings with ydk-gen

Errand 1: Generate Python Bindings with ydk-gen

YANG Explorer

Disclosure 9: Navigating YANG-Explorer

Errand 1: Learning Lab Procedure

References

Test

Module 4: SDN Controllers

Lesson 1: Introduction to Controller Networking

Causes of Controller Based Networking

OpenFlow

OpenFlow Deployment Models

Test

Lesson 2: OpenDaylight

OpenDaylight Overview

OpenDaylight Architecture

OpenDaylight Use Cases

Test

Lesson 3: Cisco APIC-EM

APIC-EM Overview

APIC-EM Web User Interface Dashboard

APIC-EM Platform Architecture

Upheld Devices

APIC-EM Common Tasks

Revelation 10: Network Discovery Configuration

Assignment 1: Performing a Network Discovery

Performing APIC-EM Tasks

APIC-EM Applications

APIC-EM APIs

Utilizing Postman with APIC-EM

Test

Test 16: APIC-EM Network Discovery and RBAC

Assignment 1: Create Saved SNMP String Values in Preparation for the Discovery

Assignment 2: Create Saved CLI Credentials in Preparation for the Discovery

Assignment 3: Perform a New Network Discovery

Assignment 4: Creating Internal Users

Test 17: Consuming the APIC-EM API

Assignment 1: Postman Basic Tasks

Assignment 2: Generating Python Code in APIC-EM

Lesson 4: Cisco Application Centric Infrastructure

ACI Overview

Revelation 11: ACI Fabric Discovery

Assignment 1: ACI Fabric Discovery

Revelation 12: Creating Objects with APIC GUI

Assignment 1: Creating Objects with APIC GUI

ACI Object Model

Revelation 13: Navigating the Object Model

Assignment 1: Navigating the Object Model

APIC REST API

Revelation 14: Using API Inspector

Assignment 1: Learning Lab Procedure

Utilizing Postman REST Client

Cobra SDK

Arya

Revelation 15: Using ARYA

Assignment 1: Using ARYA

ACI Toolkit

ACI Toolkit Applications — CLI

Revelation 16: CLI Emulation

Assignment 1: CLI Emulation

ACI Toolkit Applications — Diagrams Tool

Revelation 17: ACI Diagram Tool

Assignment 1: ACI Diagram Tool

ACI Toolkit Applications — Lint

Revelation 18: ACI Toolkit — Lint

Assignment 1: ACI Toolkit — Lint

ACI Toolkit Applications — Cable Plan

ACI Toolkit Applications — Event Feeds

ACI Toolkit Applications — Fake APIC

Test 18: Using the APIC REST API

Before Getting Started

Errand 1: Consuming the APIC REST API with Postman

Errand 2: Construct Python Scripts Using Requests

Test

Lesson 5: Cisco Element and Domain Managers

Cisco Virtual Topology System

Cisco Nexus Data Broker

Cisco Network Service Orchestrator

WAN Automation Engine

Cisco UCS Manager

Cisco UCS Director

Test

Module 5: Network Operations

Lesson 1: Software Development Methodologies

Programming is Everywhere

Waterfall

Lean

Dexterous

Test

Reference

Lesson 2: Introduction to DevOps

Dev and Ops – The Problem

DevOps Demystified

DevOps Tools and Technologies

Test

Lesson 3: Version Control

Variant Control Systems

Diagram of Git

Git Architecture

Git Commands

Git Workflow

Git Branches

Utilizing Git

Teaming up with GitHub

Disclosure 19: GitHub Pull Request

Undertaking 1: Learning Lab Procedure

GitHub Pull Request: Fork and Pull

Changing Views

Test

Test 19: Working with Git

Errand 1: Getting Started with Git

Lesson 4: Automated Testing

System Test Infrastructure

System Function Virtualization

VIRL

DevNet

DevNet Sandbox

DevNet Learning Labs

DevNet GitHub

Revelation 20: DevNet Sandbox

Errand 1: DevNet Sandbox

Revelation 21: DevNet Learning Labs

Errand 1: DevNet Learning Labs

Revelation 22: DevNet GitHub

Errand 1: DevNet GitHub

System Testing

Unit Tests

Test

Test 20: Integration Testing

Errand 1: Validate Device Configurations

Reference

Lesson 5: Continuous Integration

Prologue to Continuous Integration

Travis CI

Test

Lesson 6: Configuration Management and Automation Tools

Arrangement Management

Ansible Overview

Ansible Base Modules

NXOS Features Modules

Manikin

Manikin Components

Manikin Server

Manikin Manifests

Manikin Resources

Manikin Node and Agent

Manikin Agent Installation

Manikin Installation with OAC

Manikin Installation with Guestshell

Manikin Installation with Bash-shell

Last Steps: Puppet Agent Setup

Overseeing Interfaces

Overseeing OSPF

Test

Test 21: Compliance Checks with Ansible

Assignment 1: Verify Config Register and IOS Version

Test 22: Tenant Provisioning with Ansible

Assignment 1: Deploy Tenants with Ansible

References

Prerequisites

The student is relied upon to have the accompanying abilities and information before going to this course:

  • Gauge Python information
  • CCNA/CCNP level system foundation

Awards