Cisco Certified DevNet Associate (DEVASC 200-901)
Software Development and Design
APIs and Cisco Platform Development
Infrastructure Automation
Module - 1
Introduction to Cisco DevNet Associate Certification
Module - 2
Software Development and Design
Module - 3
Introduction to Python
Module - 4
Python Functions, Classes, and Modules
Module - 5
Working with Data in Python
Why Get Certified
Covers the benefits and advantages of becoming Cisco certified.
Cisco Career Certification Overview
Provides a high-level overview of the Cisco career certification portfolio.
Identifies the five levels of accreditation in Cisco certifications: Architect, Expert, Professional, Associate, and Entry.
Details the simplification of the certification process, noting only a single exam is required to become CCNA certified.
Explains that the CCENT certification was removed and its topics absorbed into the new CCNA.
Describes how the CCNP has changed, now requiring only a core exam and a concentration exam.
Cisco DevNet Certifications
Covers the Cisco Certified DevNet Associate, Professional, and Specialist certifications.
Describes the Cisco Certified DevNet Associate (DEVASC) certification for candidates with at least one year of experience developing applications on Cisco platforms.
Introduces the Cisco Certified DevNet Professional certification, requiring a minimum of three to five years of experience.
Cisco DevNet Overview
Provides an overview of DevNet, its value, and available resources at developer.cisco.com.
Explains that the Discover page includes Learning Tracks that guide users through labs and track progress.
Introduces DevNet Automation Exchange as a platform for sharing code based on consumable use cases (Walk, Run, Fly) that adhere to the automation lifecycle: Day 0 (Install), Day 1 (Configure), Day 2 (Optimize), and Day N (Manage).
Software Development Lifecycle
Defines the Software Development Lifecycle (SDLC) as a structure for building sustainable and coherent software.
Outlines SDLC stages: Planning, Defining, Designing, Building, Testing, and Deployment/Maintenance.
Describes the Waterfall method as a serial approach to software development.
Introduces Lean principles, focusing on eliminating waste and continuous improvement.
Defines Agile as a Lean implementation for software development, characterized by working software and regular reflection in sprints.
Common Design Patterns
Introduces the Separation of Concerns (SoC) principle to decouple application interdependencies.
Describes the Model-View-Controller (MVC) pattern, consisting of a Model (data), View (presentation), and Controller (user input).
Notes the Observer Pattern for objects notifying dependent objects of changes.
Linux BASH
Covers key aspects of the Linux BASH shell, including man for documentation, sudo for privilege escalation, and common commands like cp, ls, cat, and echo.
Software Version Control & Git
Defines version control as the process of saving copies of files to track changes.
Discusses Git as a free, open-source distributed version control system.
Outlines the basic Git workflow: modify, git add, git commit, and git push.
Explains key commands like git clone, git init, git pull, git branch, and git checkout.
Discusses git merge to combine branches and how to handle merge conflicts.
Conducting Code Review
Highlights creating higher-quality software as a key benefit of code review and provides best practices.
Getting Started with Python
Describes Python as the de facto standard for infrastructure automation.
Emphasizes using virtual environments (venv) to manage Python modules.
Details the pip command for installing packages from PyPI (Python Package Index).
Describes using requirements.txt files to manage package dependencies.
Understanding Python Syntax
Explains that whitespace and indentation are used to separate blocks of code.
Describes comments using # for single-line and triple quotes (''' or """) for multi-line.
Data Types and Variables
Covers numeric types (integers, floats) and Boolean comparison operators.
Describes strings, lists (mutable), tuples (immutable), dictionaries (key:value), and sets.
Input and Output
Introduces the input() function to get user information and print() to display results.
Flow Control with Conditionals and Loops
Explains if, elif, and else statements for conditional execution.
Describes for loops for iterating through sequences and while loops for iterating as long as a condition is true.
Python Functions
Defines a function as a reusable, named block of code defined with the def keyword.
Details arguments, parameters, and the use of *args and **kwargs.
Object-Oriented Programming and Python Classes
Describes Object-Oriented Programming (OOP) as a paradigm to model real-world things.
Defines classes as blueprints for creating custom objects, created with the class keyword.
Introduces the __init__ method for class setup and initialization.
Explains inheritance, where a child class can take on attributes and methods from a parent class.
Working with Python Modules
Defines modules as Python files that break code into smaller pieces, included with import.
Lists useful Python modules for automation, including sys, os, json, xmltodict, requests, and netmiko.
File Input and Output
Demonstrates how to read from and write to text and CSV files using with open() and the csv module.
Parsing Data
Describes JSON as a lightweight data-interchange format and the json module for parsing.
Explains XML as a data transport format and the xmltodict module for parsing.
Defines YAML as a human-friendly data serialization standard and the PyYAML module for conversion.
Error Handling in Python
Discusses using the try-except-else-finally block for robust error handling.
Test-Driven Development (TDD) and Unit Testing
Introduces TDD as a methodology where test cases are built before code is created.
Explains the testing pyramid: Unit tests, Integration tests, and Functional tests.
Introduces the unittest module as Python's built-in unit testing framework and the use of assertion methods.
Module - 6
Application Programming Interfaces (APIs)
Module - 7
RESTful API Requests and Responses
Module - 8
Cisco Enterprise Networking Management Platforms and APIs
Module - 9
Cisco Data Center and Compute Management Platforms and APIs
Module - 10
Cisco Collaboration Platforms and APIs
Module - 11
Cisco Security Platforms and APIs
API Fundamentals
Describes APIs as a contract between two communicating applications.
Differentiates between northbound (user-to-controller) and southbound (controller-to-device) APIs.
Explains synchronous (blocking) versus asynchronous (non-blocking) APIs.
Representational State Transfer (REST) APIs
Provides an overview of RESTful APIs as an HTTP-based, lightweight, and scalable architectural paradigm.
Lists common HTTP request methods (GET, POST, PUT, DELETE, PATCH) and maps them to CRUD operations.
Other API Styles
Defines SOAP (Simple Object Access Protocol) as a protocol for exchanging structured XML documents.
Explains RPCs (Remote-Procedure Calls) as a mechanism for a client to execute a procedure on a remote server.
REST Constraints
Covers Fielding’s six architectural constraints of REST: Client-Server, Statelessness, Cacheable, Uniform Interface, Layered System, and Code-On-Demand.
Discusses Pagination for managing large result sets and Rate Limiting for controlling client connections.
REST Tools
Introduces curl as a command-line tool for making basic REST calls.
Highlights Postman as a graphical tool for making REST calls and exploring APIs.
Covers the Python requests library for sending HTTP requests in Python.
Cisco Meraki
Introduces Cisco Meraki as a cloud-managed networking solution.
Describes the Meraki Dashboard API for provisioning and configuration, authenticated with an X-Cisco-Meraki-API-Key.
Covers the Meraki Python SDK (meraki_sdk).
Cisco DNA Center
Explains Cisco DNA Center as the command center for Cisco Digital Network Architecture (DNA).
Describes the Intent API (a northbound REST API), authenticated with an X-Auth-Token.
Highlights the Cisco DNA Center Python SDK (dnacentersdk).
Cisco SD-WAN
Defines Cisco SD-WAN as a cloud-first architecture for WAN connectivity.
States that Cisco vManage exposes a public REST API interface, authenticated with a cookie.
Cisco ACI
Describes Cisco ACI as an SDN-based solution for data centers.
Introduces the Management Information Model (MIM/MIT).
Mentions the acitoolkit Python library for ACI automation.
Cisco UCS Manager and Intersight
Describes Cisco Unified Computing System (UCS) and the ucsmsdk Python SDK.
Introduces Cisco Intersight as a cloud-powered infrastructure management platform with Python and PowerShell SDKs.
Webex Teams API
Explains API access through Integrations, Bots, and Personal Access Tokens.
Notes that webhooks are used for real-time notifications.
Other Collaboration APIs
Introduces the Cisco Finesse API (XMPP over BOSH).
Covers the Webex Meetings URL and XML APIs.
Describes the xAPI for Webex Devices and the AXL API for Cisco Unified Communications Manager.
Cisco Umbrella
Describes Cisco Umbrella for blocking threats via DNS and its various APIs (Management, Enforcement, Investigate).
Cisco Firepower
Provides an overview of Cisco Firepower Management Center (FMC) and its REST APIs.
Other Security APIs
Covers Cisco AMP (Advanced Malware Protection) for Endpoints API.
Introduces Cisco ISE (Identity Services Engine) Session and ERS APIs.
Explains the Cisco Threat Grid API for malware analysis and threat intelligence.
Module - 12
Model-Driven Programmability
Module - 13
Deploying Applications
Module - 14
Application Security
Module - 15
Infrastructure Automation
Module - 16
Network Fundamentals
Module - 17
Networking Components and Services
NETCONF and YANG
Defines NETCONF as a standards-based interface operating on YANG data models.
Introduces the Python ncclient library for NETCONF and pyang for validating YANG models.
RESTCONF
Explains RESTCONF as an HTTP-based protocol for accessing data defined in YANG.
Details how RESTCONF maps NETCONF operations into HTTP methods.
Model-Driven Telemetry
Provides an introduction to model-driven telemetry for the timely collection of network statistics.
Application Deployment Models & Methods
Describes service models (SaaS, PaaS, IaaS) and deployment models (Private, Public, Hybrid Cloud).
Introduces containers as lightweight, portable application packages.
DevOps
Explains DevOps as a combination of cultural and technical practices to shorten the software development lifecycle.
Outlines a sample DevOps pipeline: Source, Build, Test, and Deploy.
Docker
Explains Docker for packaging applications into containers.
Introduces the Dockerfile for building custom images and Docker Hub as a public registry.
Identifying and Protecting Against Risks
Introduces the NIST Cybersecurity Framework.
Explains CVE (Common Vulnerabilities and Exposures) for identifying vulnerabilities.
Covers Firewalls (stateful and proxy) and reverse proxies.
Infrastructure as Code (IaC)
Introduces IaC as a concept where infrastructure is treated as source code.
Automation Tools
Covers Ansible (agentless, YAML playbooks), Puppet (agent-based, DSL), and Terraform (declarative, multi-cloud).
Explains Cisco Network Services Orchestrator (NSO) for end-to-end service deployment.
Network Simulation and Testing
Introduces Cisco Modeling Labs (CML) as a network simulation platform.
Examines pyATS (Python Automated Test System) and Genie for automating network testing and parsing CLI outputs.
Network Reference Models
Covers the OSI and TCP/IP networking models and the concept of encapsulation.
Switching and Routing Concepts
Introduces Layer 2 concepts: Ethernet, MAC addresses, and VLANs.
Delves into Layer 3 concepts: IP addresses, subnets, routing tables, and Cisco Express Forwarding (CEF).
Common Network Components and Planes
Differentiates between hubs, switches, and routers.
Describes the three functional planes: Management, Control, and Data.
Common IP Services
Covers DHCP for dynamic IP configuration and DNS for hostname resolution.
Describes SNMP for network management and NTP for time synchronization.
Troubleshooting
Describes a systematic approach to troubleshooting using ping, traceroute, and nslookup.