Search Pass4Sure

Cisco DevNet Associate 200-901 Study Guide

Complete Cisco DevNet Associate 200-901 DEVASC study guide covering Python automation, REST APIs, Ansible, Terraform, NETCONF/YANG, and Cisco platform APIs.

Cisco DevNet Associate 200-901 Study Guide

What is the Cisco DevNet Associate certification?

The Cisco DevNet Associate certification validates skills in software development and design for Cisco platforms. The 200-901 DEVASC exam covers software development fundamentals, APIs, Cisco platforms, application deployment, security, and automation. It is aimed at developers and network engineers learning to automate Cisco infrastructure using Python, REST APIs, and infrastructure-as-code tools.


The Cisco Certified DevNet Associate is Cisco's certification for network automation and software development professionals. The 200-901 DEVASC (Developing Applications and Automating Workflows using Cisco Core Platforms) exam validates the foundation of network programmability, API usage, software development practices, and Cisco platform integration.

As network automation becomes essential in modern enterprise environments, the DevNet Associate bridges the gap between traditional network engineering and software development. Professionals with this certification work on automation projects, API integrations, and CI/CD pipelines for infrastructure. The exam costs $300 USD and is 120 minutes long.


Exam Overview

Detail Information
Exam Code 200-901 DEVASC
Full Name Developing Applications and Automating Workflows using Cisco Core Platforms
Number of Questions 95-105
Time Limit 120 minutes
Passing Score ~825/1000
Cost $300 USD
Prerequisites None formal; programming experience recommended
Certification Cisco Certified DevNet Associate
Validity 3 years

The exam covers six domains:

  1. Software development and design (15%)
  2. Understanding and using APIs (20%)
  3. Cisco platforms and development (15%)
  4. Application deployment and security (15%)
  5. Infrastructure and automation (20%)
  6. Network fundamentals (15%)

"DevNet Associate is unlike any previous Cisco exam because it requires you to actually understand code. You need to know Python at a basic level -- reading scripts, understanding what they accomplish, identifying bugs, and knowing which libraries to use for network automation. Candidates who skip the programming fundamentals struggle with 30-40% of the questions." -- Cisco DevNet learning community


Domain 1: Software Development and Design (15%)

Python Fundamentals

Python is the primary language for network automation and the language tested on DevNet Associate:

Data types: Strings, integers, floats, booleans, lists, tuples, dictionaries, sets

Control flow:

# Conditional
if response.status_code == 200:
    print("Success")
elif response.status_code == 404:
    print("Not found")
else:
    print(f"Error: {response.status_code}")

# Loop
for device in device_list:
    configure_device(device)

Functions and error handling:

def get_device_info(device_ip):
    try:
        response = requests.get(f"https://{device_ip}/api/v1/info")
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Error connecting to {device_ip}: {e}")
        return None

Version Control with Git

Git is essential for modern software and automation development:

  • git init, git clone, git add, git commit, git push, git pull
  • Branching: git checkout -b feature-branch
  • Merging: git merge and pull request workflows
  • .gitignore: Preventing sensitive files (credentials, API keys) from being committed

Software Design Patterns

  • MVC (Model-View-Controller): Separation of data, presentation, and business logic
  • REST: Stateless, resource-based web API architecture style
  • Microservices: Application architecture where functionality is split into small, independently deployable services

Domain 2: Understanding and Using APIs (20%)

REST API Fundamentals

REST (Representational State Transfer) APIs use HTTP methods:

HTTP Method Operation Description
GET Read Retrieve a resource
POST Create Create a new resource
PUT Update (full) Replace an entire resource
PATCH Update (partial) Update specific fields
DELETE Delete Remove a resource

HTTP status codes:

  • 200 OK, 201 Created, 204 No Content (success)
  • 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found (client errors)
  • 500 Internal Server Error (server error)

Authentication Methods

  • Basic Auth: Base64-encoded username:password in Authorization header (not secure without HTTPS)
  • Token authentication: Bearer token in Authorization header (common for REST APIs)
  • API keys: Key passed in query parameter or header
  • OAuth 2.0: Delegated authorization framework for third-party application access

Cisco REST APIs

Cisco DNA Center (Catalyst Center) API:

import requests

# Authenticate
auth_url = "https://dnac.example.com/dna/system/api/v1/auth/token"
response = requests.post(auth_url, auth=("admin", "password"), verify=False)
token = response.json()["Token"]

# Get devices
devices_url = "https://dnac.example.com/dna/intent/api/v1/network-device"
headers = {"x-auth-token": token}
devices = requests.get(devices_url, headers=headers).json()

Domain 3: Cisco Platforms and Development (15%)

Key Cisco Platforms with APIs

Platform API Type Use Case
Cisco DNA Center/Catalyst Center REST Network automation and assurance
Cisco Meraki REST Cloud-managed network configuration
Cisco Webex REST Messaging and collaboration automation
Cisco IOS-XE REST (RESTCONF), NETCONF Device configuration and monitoring
Cisco NSO REST/NETCONF Multi-vendor network service orchestration
Cisco Intersight REST Data center infrastructure management

Cisco Webex API

Cisco Webex provides APIs for:

  • Sending messages to rooms and users
  • Creating and managing rooms (spaces)
  • Creating webhooks to receive event notifications
  • Bot development for automated responses

Webex Bots are created in the Webex Developer portal, receive a bot token, and can send messages in response to commands or events.


Domain 4: Application Deployment and Security (15%)

Containers and Docker

Docker containers package applications with their dependencies for consistent deployment:

  • Dockerfile: Defines the container image build process
  • docker build: Creates an image from a Dockerfile
  • docker run: Starts a container from an image
  • docker-compose: Defines and runs multi-container applications

CI/CD Concepts

Continuous Integration (CI): Automatically building and testing code changes when committed to version control. Tools: Jenkins, GitHub Actions, GitLab CI.

Continuous Deployment (CD): Automatically deploying tested code to production or staging environments. Includes infrastructure-as-code deployment.

Application Security

  • HTTPS/TLS: Encrypting API communication in transit
  • Secret management: Never hardcoding credentials; using environment variables or secret management services
  • Certificate verification: Verifying SSL certificates in API calls (not using verify=False in production)
  • Input validation: Sanitizing inputs to prevent injection attacks

Domain 5: Infrastructure and Automation (20%)

Ansible for Network Automation

Ansible uses YAML playbooks to automate network device configuration:

- name: Configure VLAN on Cisco switch
  hosts: switches
  gather_facts: no
  tasks:
    - name: Add VLAN 100
      cisco.ios.ios_vlans:
        config:
          - vlan_id: 100
            name: Production
        state: merged

Key Ansible concepts:

  • Inventory: Defines the hosts and groups being automated
  • Modules: Pre-built functions for specific actions (cisco.ios.ios_config, cisco.ios.ios_vlans)
  • Playbooks: YAML files defining automation tasks
  • Roles: Reusable groups of tasks, variables, and files

Terraform for Infrastructure as Code

Terraform uses declarative configuration to provision infrastructure:

resource "meraki_networks_appliance_vlans" "example" {
  network_id = "N_1234567890"
  vlan_id    = "100"
  name       = "Production"
  subnet     = "192.168.100.0/24"
  appliance_ip = "192.168.100.1"
}

NETCONF and YANG

NETCONF is a standards-based network management protocol:

  • Uses XML for data encoding
  • Provides operations: get, get-config, edit-config, copy-config, delete-config, commit, lock, unlock
  • Runs over SSH (port 830)

YANG is the data modeling language that defines the structure of data used in NETCONF and RESTCONF operations.

"NETCONF/YANG appears on every DevNet exam at every level. Understanding the difference between get (running state) and get-config (configuration), and knowing the four configuration datastores (running, startup, candidate, intended), is fundamental knowledge that must be solid before exam day." -- Cisco DevNet certification community


Domain 6: Network Fundamentals (15%)

This domain tests basic networking knowledge expected of candidates entering the DevNet path:

  • OSI model and TCP/IP model
  • IP addressing and subnetting (IPv4 and IPv6)
  • TCP vs. UDP and common well-known ports
  • DNS resolution process
  • HTTP/HTTPS request/response cycle
  • Basic understanding of VLANs, routing, and switching

Frequently Asked Questions

Do I need networking experience or programming experience for DevNet Associate? DevNet Associate sits at the intersection of networking and programming. You need basic Python programming ability (reading and writing simple scripts) and basic networking knowledge (IP addressing, HTTP, DNS). Candidates with strong networking backgrounds but no programming experience should invest 2-4 weeks learning Python fundamentals before studying DevNet-specific content. Candidates with programming backgrounds but no networking experience need to study networking fundamentals.

What is the best way to practice for the DevNet Associate lab questions? Cisco DevNet Sandbox provides free access to Cisco platforms including DNA Center, IOS-XE devices, and Webex. The Cisco DevNet Learning Labs provide guided exercises for API interactions. Building a Postman collection to interact with Cisco DNA Center and IOS-XE REST APIs is highly recommended. Writing Python scripts using requests, Netmiko, and NAPALM libraries for common automation tasks solidifies the practical knowledge tested in exam questions.

Is DevNet Associate worth getting for traditional network engineers? Yes, especially as automation becomes standard practice in enterprise networking. DevNet Associate demonstrates ability to automate Cisco infrastructure, which is increasingly required in senior network engineering and architecture roles. It also serves as a prerequisite for DevNet Professional certifications that specialize in specific automation domains. Many network engineers use DevNet Associate preparation to build practical Python and API skills they immediately apply on the job.

References

  1. Cisco. (2025). Cisco Certified DevNet Associate Certification. https://developer.cisco.com/certification/devnet-associate/
  2. Cisco DevNet. (2025). Learning Labs. https://developer.cisco.com/learning/
  3. Cisco. (2025). DNA Center API Documentation. https://developer.cisco.com/docs/dna-center/
  4. Stubblebine, S. (2022). Cisco DevNet Associate DEVASC 200-901 Official Cert Guide. Cisco Press.
  5. Lutz, M. (2019). Learning Python (5th ed.). O'Reilly Media.
  6. HashiCorp. (2025). Terraform Documentation. https://developer.hashicorp.com/terraform/docs