Masters Program – SDN Automation and Programmability of Networks

Image

Masters Program - SDN Automation and Programmability of Networks

Masters Program - SDN Automation and Programmability of Networks consist of four Segments:

  • Segment I : Cisco Nexus 9000 Switches in NX-OS Mode
  • Segment II : Cisco Nexus 9000 Series Switches in ACI Mode
  • Segment III : Learning Python and JSON
  • Segment IV : Cisco Network Programmability Design and Implementation

Segment 1 : Implementing the Cisco Nexus 9000 focuses on deployment and operations of the Cisco Nexus 9000 Series switches. You will learn how to configure and manage Cisco Nexus 9000 Series switches using the NX-OS CLI, Python scripts, bash shell, NX-API, and Open-Flow. Nexus 9000 switches are highly programmable, high density 1/10/40G Ethernet switches that offer highest performance, extensibility to 100GE switching, lowest cost per port and extremely high flexibility and programmability for next generation automation and orchestration. Nexus 9000 Switches build on existing NX-OS technology to bring two new data center network deployment options for customers. This course focuses on the first deployment option, known as Standalone Mode.

Segment 2 : Designed for systems and field engineers who manage and implement the Cisco Nexus 9000 Switches in ACI mode. The course covers the key components and procedures you need to know to understand, configure, manage Cisco Nexus 9000 Switches in ACI mode, and how to connect the ACI Fabric to external networks and services.

Segment 3 : Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during 1985- 1990. Like Perl, Python source code is also available under the GNU General Public License (GPL). This tutorial gives enough understanding on Python programming language.

JSON is a light-weight, text-based open standard for interchanging data. JSON is human readable and language independent. It is easy for computers to read and generate JSON . JSON is used in order to send data between client and servers (Browsers/Clients to Application Servers). JSON is the abbreviation of Java Script Object Notation (derived version of it)

Segment 4 : This Segment is for software developers looking to automate network infrastructure and utilize APIs and toolkits to interface with SDN controllers and individual devices. You will learn about topics covered by the Cisco 300-550 and 300-560 exams, leading to the “Cisco Network Programmability Design and Implementation Specialist” and  “Cisco Network Programmability Developer Specialist” certifications .

Target Audience

  • Network engineers
  • Field engineers
  • System engineers
  • Network designers
  • Network operations
  • Network automation engineers
  • Network programmers
  • Network developers
  • Software engineers
  • Application developers
  • Network Architect

Prerequisites

To fully benefit from this course, students should have the following prerequisite skills and knowledge:

  • Students should be familiar with Cisco Ethernet switching products.
  • Students should understand Cisco data center architecture.
  • Students should be familiar with virtualization
  • Good understanding of networking protocols, routing, and switching:
    • Recommended CCNA Certification
    • Recommended attendance of Cisco IP Routing Class (ROUTE)
    • Recommended attendance of Cisco Switching Class (SWITCH)

Course Objectives

  • Describe Cisco products that address market trends in the data center
  • Describe Cisco Nexus 9000 Series Switch hardware components
  • Describe the hardware architecture of modular chassis, modular chassis line cards, and fixed configuration in the Cisco Nexus 9000 Series Switch
  • Describe features offered in NX-OS that are available on the Cisco Nexus 9000 Series Switches
  • Configure VXLAN features on Cisco Nexus 9000 Series Switches
  • Describe the programmability, automation, and management features available on Cisco Nexus 9000 Series Switches Describe common topology options for configuring Cisco Nexus 9000 Series Switches
  • Describe the benefits of adopting Cisco Application Centric Infrastructure (ACI) fabric mode on Cisco Nexus 9000 Series Switches
  • Describe the Cisco Nexus 9000 Series Switch ACI
  • Discuss the ACI fabric
  • Review Cisco Nexus 9000 Series Switch hardware
  • Configure the ACI controller (APIC)
  • Configure ACI L4-L7 service integration
  • Integrate the APIC hypervisor
  • Understand the programmability and orchestration of the ACI network
  • Discuss ACI connectivity to outside networks
  • Implement ACI management
  • Describe migration options with ACI
  • Develop network applications in programmable environments such as ONEPk and XNC
  • Develop applications to address use cases in WAN, DC, and campus environments

 


 

Course Curriculum


Section 1: Describing the Cisco Nexus 9000 Solution

  • Data Center Trends
  • Cisco Nexus 9000 Solution
  • Enhancements to Cisco NX-OS Software


Section 2: Describing Cisco Nexus 9000 Series Hardware

  • Cisco Nexus 9500 Modular Chassis
  • Cisco Nexus 9500 Supervisor Modules
  • Cisco Nexus 9500 System Controllers
  • Cisco Nexus 9500 Fans and Power Supplies
  • Cisco Nexus 9500 Fabric Modules
  • Cisco Nexus 9500 Line Card Modules
  • Cisco Nexus 9300 Fixed Configuration Switches
  • Cisco Nexus 9000 Support for Fabric Extenders
  • Cabling for 40G and 100GE Networking
  • Optics Supported by Cisco Nexus 9000 Series Switches


Section 3: Describing Cisco Nexus 9000 Series Hardware Architecture

  • Architecture of the Cisco Nexus 9500 Modular Switches
  • Architecture of the Cisco Nexus 9500 Card Modules
  • Packet Forwarding in the Cisco Nexus 9000 Series Switches
  • Architecture of the Cisco Nexus 9300 Switches


Section 4: Describing Cisco Nexus Operating System

  • NX-OS Features of Cisco Nexus 9000 Series Switches
  • High-Availability Features of Cisco Nexus 9000 Series Switches
  • Management Features of the Cisco Nexus 9000 Switch Family


Section 5: Describing VXLAN on Cisco Nexus 9000 Series Switches

  • Network Overlays in Data Center Design
  • VxLAN Overview
  • VxLAN Control Plane Operation
  • VxLAN Data Plane Operation
  • VxLAN Support on the Cisco Nexus 9000
  • Configuring VxLAN Gateway


Section 6: Describing Network Programmability and Automation

  • Describe Programming Features of the Cisco Nexus 9000 Series Switches
  • Automation Features on the Cisco Nexus 9000 Series Switches
  • Monitoring Features on the Cisco Nexus 9000 Series Switches


Section 7: Describing Topology Options for Cisco Nexus 9000 Series Switches

  • Traditional Data Center Topologies on the Cisco Nexus 9000 Series Switches
  • Spine and Leaf Topologies on the Cisco Nexus 9000 Series Switches
  • Overlay Topologies on the Cisco Nexus 9000 Series Switches


Section 8: Describing the Cisco ACI Fabric

  • Key Concepts of the Cisco ACI Fabric
  • Components of Cisco ACI Fabric
  • The Benefits of Using the Cisco ACI Fabric


Section 9: Introducing Cisco ACI

  • Describing the Cisco Nexus 9000 Series Switch ACI Solution
  • Describing the Cisco ACI Fabric
  • Describing Cisco Nexus 9000 Series Switch Hardware

 


Section 10: Cisco ACI Configuration

  • Configuring Cisco APIC
  • Configuring Layer 4 Through Layer 7 Services
  • Configuring APIC Hypervisor Integration

 


Section 11: Cisco ACI Programmability and Orchestration

  • Demonstrating Cisco ACI Network Programmability
  • Cisco ACI Network Orchestration

 


Section 12: Cisco ACI External Connectivity, Management, and Migration

  • Configuring ACI Connectivity to Outside Networks
  • Implementing ACI Management
  • Describing Migration Options with ACI


Section 13: Python

  • Python – Overview
  • Python – Environment Setup
  • Python – Basic Syntax
  • Python – Variable Types
  • Python – Basic Operators
  • Python – Decision Making
  • Python – Loops
  • Python – Numbers
  • Python – Strings
  • Python – Lists
  • Python – Tuples
  • Python – Dictionary
  • Python – Date & Time
  • Python – Functions
  • Python – Modules
  • Python – Files I/O
  • Python – Exceptions
  • Python – Networking
  • Python – Sending Email
  • Python – XML Processing
  • Using NAPALM Python library
  • Using Netmiko Python library
  • Using Paramiko – Python implementation of the SSHv2 protocol


Section 14: JSON

  • Introduction and Development Environment
  • Java and JSON (Data Binding)
  • JSON Java Jackson Annotations
  • JSON Java Jackson Tree Model
  • JSON Serialize and Deserialize
  • JSON Jackson Streaming API
  • JSON Schema and Validation
  • JSON Jackson and JAXB XML
  • JavaScript API JSON
  • JSON with AJAX (jQuery) and RESTful Web Services


Section 15 Why Network Programmability

  • What is Network Programmability
  • Network Programmability Benefits
  • Network Innovation with Programmability
  • Cloud, SDN, and Network Programmability
  • Network Automation

 


Section 16: Foundational Skills

  • Python
  • APIs and SDKs
  • Web Technologies
  • XML
  • JSON
  • Using JSON in Python
  • Introduction to Version Control, Git, and GitHub


Section 17: Next-Generation Cisco Data Center Networking

  • Cisco Application-Centric Infrastructure (ACI)
  • Evolution of Data Center Network Architecture
  • Cisco Data Center Network Controllers
  • Nexus Fabric Manager
  • Virtual Topology System (VTS)


Section 18: On-Box Programmability and Automation

  • with Cisco Nexus NX-OS
  • Open NX-OS Automation—Bootstrap and Provisioning
  • Cisco POAP
  • Cisco Ignite
  • NX-OS iPXE
  • On-box Python Scripting
  • Using the NX-OS Python CLI Library
  • Using NX-OS Cisco Python Library
  • Non-Interactive Python

 


Section 19: Off-Box Programmability and Automation with

  • Cisco Nexus NX-OS
  • Nexus NX-API , NX-API Transport ,NX-API Message Format ,NX-API Security 
  • Using NX-API in Python
  • Configuring an IP Address with Python and NX-API
  • NX-API REST: An Object-Oriented Data Model
  • NX-API REST Object Model Data
  • Authenticating to NX-API (nxapi_auth cookie)
  • Modifying NX-API Objects Data via Python
  • Automation and DevOps Tools

 


Section 20: Network Programmability with Cisco ACI

  • Cisco ACI Automation
  • ACI Policy Instantiation
  • ACI Fundamentals
  • ACI Management Information Model
  • ACI Object Naming
  • Fault Severity
  • ACI Health Scores
  • ACI Programmability
  • Invoking the API
  • GUI
  • APIC Object Save-as
  • APIC API Inspector
  • APIC Object Store Browser (Visore)
  • APIC API Authentication
  • Using Python to Authenticate to APIC
  • Programmability Using the APIC RESTful API
  • ACI Event Subscription
  • Cobra SDK
  • Using APIC Cobra
  • Working with Objects
  • Example Cobra SDK—Creating a Complete Tenant Configuration
  • APIC REST Python Adapter (Arya)
  • Using AryaLogger

 


Section 21: On-Box Automation and Operations Tools

  • Automated Port Profiling
  • AutoSmart Ports
  • Enabling AutoSmart Ports on a Cisco Catalyst Switch
  • AutoConf
  • Enabling AutoConf on a Cisco Catalyst Switch
  • Modifying a Built-in Template
  • Auto Security
  • Enabling Auto Security on a Cisco Catalyst Switch
  • Quality of Service for Campus Architectures
  • AutoQoS on Campus LAN Devices
  • Enabling AutoQoS on a Cisco Catalyst Switch
  • AutoQoS on Campus WAN Devices
  • Enabling AutoQoS on a Cisco ISR Router
  • Automating Management and Monitoring Tasks
  • Smart Call Home
  • Enabling Smart Call Home on an Cisco Catalyst Switch
  • Tcl Shell
  • Embedded Event Manager (EEM)
  • EEM and Tcl Scripts


Section 22: Network Automation Tools for Campus Environments

  • Data Models and Supporting Protocols
  • YANG Data Models
  • NETCONF
  • ConfD
  • Application Policy Infrastructure Controller Enterprise Module
  • (APIC-EM)
  • APIC-EM Architecture
  • APIC-EM Applications
  • Intelligent WAN (IWAN) Application
  • Path Trace Application
  • APIC-EM Features ,Topology , Device Inventory
  • Easy Quality of Service (Easy QoS)
  • Dynamic QoS
  • Policy Application
  • APIC-EM Programmability Examples Using Postman
  • Ticket API
  • Host API
  • Network Device API
  • User API
  • Available APIC-EM APIs
  • APIC-EM Programmability Examples Using Python