Part I Software Development and Design
Chapter 1 Software Development Essentials
“Do I Know This Already?” Quiz
Automation, Orchestration, and DevOps
Software Architecture and Design
Software Development Lifecycle (SDLC) Approach
Complete Tables and Lists from Memory
Chapter 2 Software Quality Attributes
“Do I Know This Already?” Quiz
Quality Attributes and Nonfunctional Requirements
Brief Overview of the Most Common Quality Attributes
Modularity in Application Design
Modularity Coding Best Practices
Microservices and Modular Design
Scalability in Application Design
Practical Scalability in Application Design
High Availability and Resiliency in Application Design
Recovery: High Availability in Practice
High Availability Planning and the Responsibilities of the Developer
High Availability Deployment Models
Complete Tables and Lists from Memory
Chapter 3 Architectural Considerations and Performance Management
“Do I Know This Already?” Quiz
Maintainable Design and Implementation
Single Responsibility Principle (SRP)
Liskov’s Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
Latency and Rate Limiting in Application Design and Performance
Designing for Application Low Latency and High Performance
Design and Implementation for Observability
Good Documentation Practices: An Observability Reminder
Database Requirements Gathering
Complete Tables and Lists from Memory
Chapter 4 Version Control and Release Management with Git
“Do I Know This Already?” Quiz
Sample Branch and Pull Workflow
The Most Important Factor When Selecting a Git Branching Strategy
Popular Git Branching Strategies
Configuring the PR Merge Button
Configuring a Branch Protection Rule to Require Code Reviews
Complete Tables and Lists from Memory
“Do I Know This Already?” Quiz
Jeff Bezos’s API Mandate: How the AWS API-Driven Cloud Was Born
Complete Tables and Lists from Memory
“Do I Know This Already?” Quiz
Code Generation Client API Libraries for IMDb
Making Calls to IMDb Using a CLI Program
Flow Control (Pagination vs. Streaming)
Error Handling, Timeouts, and Rate Limiting
Complete Tables and Lists from Memory
Part III Application Development, Deployment, and Security
Chapter 7 Application Deployment
“Do I Know This Already?” Quiz
The Evolution of Application Responsibilities
The Hybridization of Development and Operations
The Emergence of the Site Reliability Engineer(ing)
SRE Responsibilities and Tenets
Continuous Integration/Continuous Delivery (Deployment)
Continuous Delivery: One of the CDs
Continuous Deployment: The Other CD
Adding Deployment to Integration
Deploying to Infrastructure (Terraform + Atlantis)
Deploying Applications (Flux + Kubernetes)
Application Deployment Methods over Time
The 2000s: Sysadmins, Terminals, and SSH
The 2010s: Automated Configuration Management
The 2020s: The Clouds Never Looked So Bright
Managed Kubernetes (e.g., GKE)
Containers on Serverless Clouds (e.g., AWS ECS on Fargate)
Serverless Functions (e.g., AWS Lambda)
Software Practices for Operability: The 12-Factor App
Complete Tables and Lists from Memory
Chapter 8 Security in Application Design
“Do I Know This Already?” Quiz
Personally Identifiable Information
Laws, Regulations, and Standards for Protecting Privacy
Public Key Infrastructure (PKI)
Hierarchical Multiple CA Infrastructure
TLS, PKI, and Web Applications Security
Securing Web and Mobile Applications
OAuth 2.0 Two-Legged Authorization
OAuth 2.0 Three-Legged Authorization
Additional OAuth Authorization Code Grant Types
Resource Owner Password Credential Flow
OAuth 2.0 Authorization Code Flow
Complete Tables and Lists from Memory
Part IV Infrastructure and Automation
“Do I Know This Already?” Quiz
Methods of Network Provisioning
Atomic or SDN-Like/Controller-Based Networking
Advanced Concepts—Intent-Based Networking
Complete Tables and Lists from Memory
“Do I Know This Already?” Quiz
Differences of Equipment and Functionality
Proximity of Management Tools and Support Staff
Accuracy of Service Provisioning
Software-Defined Networking (SDN)
What Is SDN and Network Programmability?
Use Cases and Problems Solved with SDN
Overview of Network Controllers
Application Programming Interfaces (APIs)
Cross-Domain, Technology-Agnostic Orchestration (CDTAO)
Impact to IT Service Management and Security
Complete Tables and Lists from Memory
Chapter 11 NETCONF and RESTCONF
“Do I Know This Already?” Quiz
Atomic and Model-Driven Configuration Management
Performing a RESTCONF GET Operation with cURL
Performing RESTCONF GET Operations with the Postman Utility
Management Solutions Using NETCONF and RESTCONF
Complete Tables and Lists from Memory
Chapter 12 Model-Driven Telemetry
“Do I Know This Already?” Quiz
Transformation of Inventory, Status, Performance, and Fault Monitoring
How to Implement Model-Driven Telemetry
Step 1: Create a Destination Group
Step 4: Verify the Dial-Out Configuration
Step 4: Validate the Configuration
Picking Sensor Paths and Metrics
Researching Public Documentation
Extracting Model Support from the Device—NETCONF Manually
Extracting Model Support from the Device—Python and NETCONF
Installing Docker to the Linux VM
Installing the YANG Suite Docker Image to the Linux VM
Practical Application of Streaming Telemetry
Using Telegraph, InfluxDB, and Grafana
Beyond MDT—Event-Driven Telemetry
Other Considerations—Disk Usage
Complete Tables and Lists from Memory
Chapter 13 Open-Source Solutions
“Do I Know This Already?” Quiz
Infrastructure-as-Code (IaC) Concepts
Imperative and Declarative Models
Provisioning or Configuration Management
Differences Between Agent and Agentless Solutions
Agent-Based Solutions—Puppet and Chef
Agentless Solutions—Ansible and Terraform
Installing Ansible from the Package Manager
Installing the Latest Ansible from a Virtual Python Environment with pip
Creating a Project-Level Inventory File
Creating an Ansible Playbook to Obtain show Command Results
Filtering, Templating, and Jinja2
Using Ansible to Modify Device Configurations
Cisco Solutions Enabled for IaC
Complete Tables and Lists from Memory
Chapter 14 Software Configuration Management
“Do I Know This Already?” Quiz
Software Configuration Management (SCM)
Which SCM Process Is Best for You?
Terraform or Ansible: A High-Level Comparison
Business and Technical Requirements
Complete Tables and Lists from Memory
Chapter 15 Hosting an Application on a Network Device
“Do I Know This Already?” Quiz
Platforms Supporting Application Containers
How to Implement Application Containers
Enabling Application Hosting Framework
Using Cisco DNA Center for App Hosting
Using Cisco IOx Local Manager for App Hosting
Using the Command-Line Interface for App Hosting
Interacting with App Hosted iPerf3
Best Practices for Managing Application Containers
Complete Tables and Lists from Memory
“Do I Know This Already?” Quiz
Enabling the Webex REST API/SDK Access
Enabling API/SDK Access to Firepower
Enabling API/SDK Access to Meraki
Enabling API Access to Intersight
Enabling API Access to UCS Manager
Additional UCS Manager Programmability Resources
Enabling API/SDK Access to DNA Center
Pearson Cert Practice Test Engine and Questions on the Website
Accessing the Pearson Test Prep Software Online
Accessing the Pearson Test Prep Software Offline
Suggested Plan for Final Review/Study
Appendix A Answers to the “Do I Know This Already?” Questions
Appendix B Cisco DevNet Professional DEVCOR 350-901 Exam Updates
Online Elements
3.138.204.208