NPDESI is an excellent course

Started by wintermute000, April 14, 2018, 08:00:10 AM

Previous topic - Next topic

wintermute000

https://learningnetworkstore.cisco.com/on-demand-e-learning/designing-and-implementing-cisco-network-programmability-npdesi-v-1-0-elt-npdesi-v1-0-020749

Around halfway through it and enjoying it. Though a lot of people will find the first few (1-7) modules laughably easy or redundant (no I don't need to learn how to navigate a linux CLI or learn lists vs tuples in python... ), but it ramps up - just look at the topics. You could argue that its too broad and not deep enough which may be fair, but the breath of exposure you get is good in itself.

You really get a good chance to touch a vast range of APIs and understand the complete mess the CSCO ecosystem is where every OS family/product seems to have a different API model :p
They don't shy away from the nasty NETCONF/XML which is where I've found the most value so far. Lots of labs. For example, to close out the NX-OS module, you have to program and/or fix a bunch of NX-API scripts (yeah they give you broken scripts and tell you to figure it out lol), then NETCONF scripts against a live NXOSv box (like a open book test). I'm esp keen to get my teeth into the two very meaty YANG sections

The material is well structured assuming you are comfortable with basic python - if you're a total n00b then you may find it hard going even with the intro modules.

The only big gripe is that programming in a linux VNC session in a browser is the absolute pits. No IDE, can't cut and paste from your normal desktop/browser, and even terminal sessions lag interminably. Also crappy screen resolution FTW. I really wish they'd let you SSH directly into the lab boxes then it would be fine, and only use the VNC session for browser stuff (mostly postman as u would expect). Or even better, do it all on your own linux box (pull down the code samples from git etc.) and just have a ssh or VPN + ssh session into the live test devices. oh well (they do actually even mark some of the labs!)

It is expensive for sure but it is a fraction of the price of your standard 5-day on-site training so a pretty good case can be made to management. Also Cisco partners get a discount (came out 35% off for me, you'll see it if your CCO is correctly associated)

Section 1:
Introduction to Network Programmability
1.1 Introduction
1.2 Understanding Software-Defined Networking
1.3 Traditional versus Software-Defined Networks
1.4 Current Industry Trends
1.5 Network Programmability and Automation
1.6 Introduction to Cisco Platforms and APIs
1.7 Challenge




Section 2:
Linux Primer for Network Engineers
2.1 Introduction
2.2 Why Learn Linux?
2.3 Navigating the Linux File System
2.4 Linux Distributions and Package Managers
2.5 Working with Files and Directories
2.6 Linux Processes
2.7 Using the Linux Command Line
2.8 Challenge




Section 3:
Linux Networking
3.1 Introduction
3.2 Basic Linux Networking Commands
3.3 Persistent Network Configuration
3.4 Linux Networking
3.5 Challenge




Section 4:
Python Foundations for Network Engineers – Part 1
4.1 Introduction
4.2 Understanding Python
4.3 Data Types: Strings
4.4 Data Type: Numbers
4.5 Data Type: Booleans
4.6 Conditionals
4.7 Python Foundations - Part 1
4.8 Challenge




Section 5:
Python Foundations for Network Engineers – Part 2
5.1 Introduction
5.2 Lists
5.3 Dictionaries
5.4 Loops
5.5 Function
5.6 Working with Files
5.7 Python Foundations – Part 2
5.8 Challenge




Section 6:
Writing and Troubleshooting Python Scripts
6.1 Introduction
6.2 Writing Scripts
6.3 Executing Scripts
6.4 Analyzing Code
6.5 Error Handling
6.6 Writing and Troubleshooting Python Scripts
6.7 Challenge




Section 7:
Python Libraries
7.1 Introduction
7.2 Python Libraries
7.3 Python Module
7.4 Python Package
7.5 Custom Python Libraries
7.6 Challenge




Section 8:
Introduction to Network APIs and Protocols
8.1 Introduction
8.2 Evolution of Device Management and Programmability
8.3 Data Encoding Formats
8.4 JSON
8.5 Working with JSON Objects in Python
8.6 XML
8.7 Using XML in Python
8.8 Data Models
8.9 Model-Driven Programmability Stack
8.10 REST
8.11 NETCONF
8.12 NETCONF Capabilities Exchange
8.13 RESTCONF
8.14 gRPC
8.15 Challenge




Section 9:
Cisco ASA REST API
9.1 Introduction
9.2 Cisco ASA REST API Overview
9.3 REST API Agent Pre-requisites
9.4 Cisco ASA REST API Documentation and Console
9.5 Cisco ASA REST API Examples
9.6 Challenge




Section 10:
NX-OS Programmability
10.1 Introduction
10.2 Nexus Programmability Overview
10.3 NX-API CLI—Part 1
10.4 NX-API Developer Sandbox
10.5 NX-API CLI—Part 2
10.6 NETCONF
10.7 NX-API REST
10.8 Python on the Nexus Switch
10.9 Using Python on the Nexus Switch
10.10 Challenge




Section 11:
Cisco IOS XE APIs
11.1 Introduction
11.2 Cisco IOS XE APIs Overview
11.3 IOS XE RESTCONF API
11.4 IOS XE NETCONF API
11.5 Challenge




Section 12:
Cisco IOS XR APIs
12.1 Introduction
12.2 IOS XR NETCONF APIs
12.3 Challenge




Section 13:
Securing the Management Plane
13.1 Introduction
13.2 Management Plane
13.3 Access Control Lists
13.4 Challenge




Section 14:
YANG Data Modeling
14.1 Introduction
14.2 YANG Overview
14.3 YANG Module
14.4 YANG Module Header
14.5 YANG Leaf Statement
14.6 YANG Leaf-List Statement
14.7 YANG List Statements
14.8 Putting Things Together
14.9 YANG Types
14.10 YANG Typedef Statement
14.11 YANG Choice Statement
14.12 YANG Grouping Statement
14.13 YANG Miscellaneous Statements
14.14 YANG RPC Statement
14.15 YANG Imports and Includes
14.16 YANG Modules and Submodules
14.17 YANG Model Examples
14.18 Challenge




Section 15:
YANG Tools
15.1 Introduction
15.2 YANG Validator
15.3 Validating YANG Models Using Yang Validator
15.4 pyang
15.5 Viewing and Validating YANG Models with pyang
15.6 Writing a Custom YANG Model
15.7 YANG Development Kit
15.8 YDK-Py API Structure
15.9 Generate Python Bindings with ydk-gen
15.10 YANG Explorer
15.11 Navigating YANG Explorer
15.12 References
15.13 Challenge




Section 16:
Introduction to Controller Networking
16.1 Introduction
16.2 Origins of Controller Based Networking
16.3 OpenFlow
16.4 OpenFlow Deployment Models
16.5 Challenge




Section 17:
OpenDaylight
17.1 Introduction
17.2 OpenDaylight Overview
17.3 OpenDaylight Architecture
17.4 OpenDaylight Use Cases
17.5 Challenge




Section 18:
Cisco APIC-EM
18.1 Introduction
18.2 APIC-EM Overview
18.3 APIC-EM Platform Architecture
18.4 Network Discovery Configuration
18.5 Performing APIC-EM Tasks
18.6 APIC-EM Network Discovery and RBAC
18.7 APIC-EM Applications
18.8 APIC-EM APIs
18.9 Consuming the APIC-EM API
18.10 Challenge




Section 19:
Cisco Application Centric Infrastructure
19.1 Introduction
19.2 ACI Overview
19.3 ACI Fabric Discovery
19.4 Creating Objects with APIC GUI
19.5 ACI Object Model
19.6 Navigating the Object Model
19.7 APIC REST API
19.8 Using API Inspector
19.9 Using Postman REST Client
19.10 Cobra SDK
19.11 Arya
19.12 Using ARYA
19.13 ACI Toolkit
19.14 ACI Toolkit Applications — CLI
19.15 CLI Emulation
19.16 ACI Toolkit Applications — Diagrams Tool
19.17 ACI Diagram Tool
19.18 ACI Toolkit Applications — Lint
19.19 ACI Toolkit — Lint
19.20 ACI Toolkit Applications — Cable Plan
19.21 ACI Toolkit Applications — Event Feeds
19.22 ACI Toolkit Applications — Fake APIC
19.23 Using the APIC REST API
19.24 Challenge




Section 20:
Cisco Element and Domain Managers
20.1 Introduction
20.2 Cisco Virtual Topology System
20.3 Cisco Nexus Data Broker
20.4 Cisco Network Service Orchestrator
20.5 WAN Automation Engine
20.6 Cisco UCS Manager
20.7 Cisco UCS Director
20.8 Challenge




Section 21:
Software Development Methodologies
21.1 Introduction
21.2 Software is Everywhere
21.3 Waterfall
21.4 Lean
21.5 Agile
21.6 Challenge




Section 22:
Introduction to DevOps
22.1 Introduction
22.2 Dev and Ops – The Problem
22.3 DevOps Demystified
22.4 DevOps Tools and Technologies
22.5 Challenge




Section 23:
Version Control
23.1 Introduction
23.2 Version Control Systems
23.3 Overview of Git
23.4 Git Commands
23.5 Git Workflow
23.6 Git Branches
23.7 Using Git
23.8 Collaborating with GitHub
23.9 GitHub Pull Request: Fork and Pull
23.10 Working with Git
23.11 Challenge




Section 24:
Automated Testing
24.1 Introduction
24.2 Network Test Infrastructure
24.3 VIRL
24.4 DevNet
24.5 DevNet Sandbox
24.6 DevNet Learning Labs
24.7 DevNet GitHub
24.8 Network Testing
24.9 Unit Tests
24.10 Integration Testing
24.11 Challenge




Section 25:
Continuous Integration
25.1 Introduction
25.2 Introduction to Continuous Integration
25.3 Travis CI
25.4 Challenge




Section 26:
Configuration Management and Automation Tools
26.1 Introduction
26.2 Configuration Management
26.3 Ansible Overview
26.4 Ansible Base Modules
26.5 Compliance Checks with Ansible
26.6 NXOS Features Modules
26.7 Tenant Provisioning with Ansible
26.8 Puppet
26.9 Puppet Node and Agent
26.10 Final Steps: Puppet Agent Setup
26.11 Challenge