COURSE OBJECTIVE:
After completing this course you should be able to:
• Describe the architectural traits and patterns that improve application maintainability
• Describe the architectural traits and patterns that improve application serviceability
• Identify steps to design and build a ChatOps application
• Implement robust Representational State Transfer (REST) API integrations with network error handling, pagination, and error flow control
• Describe the necessary steps for securing user and system data in applications
• Describe the necessary steps for securing applications
• Identify common tasks in automated application release process
• Describe best practices for application deployment
• Describe methodologies for designing distributed systems
• Describe the concepts of infrastructure configuration management and device automation
• Utilize Yet Another Next Generation (YANG) data models to describe network configurations and telemetry
• Compare various relational and nonrelational database types and how to select the appropriate type based on requirements
TARGET AUDIENCE:
Existing network engineers expanding their skillbase to include software and automation; Developers expanding their expertise in automation and DevOps; Solution Architects moving to the Cisco ecosystem and Infrastructure developers designing hardened production environments.
COURSE PREREQUISITES:
Attendees should meet the following prerequisites:
• Knowledge of program design and coding with focus on Python
• Familiarity with Ethernet, TCP/IP, and Internet-related networking
• Understand the utilization of APIs
• Understanding of software development and design methodologies
• Hands-on experience with a programming language (specifically Python)
COURSE CONTENT:
Designing for Maintainability (Self-study)
• Functional and Non-Functional Requirements
• Non-Functional Requirements and Application Quality
• Maintainability Through Design
• Maintainability Through Implementation
• Modularity in Application Design
• Dependency Injection
Designing for Serviceability (Self-study)
• Observability in Application Design
• Scalability in Application Design
• High Availability and Resiliency
• Latency and Rate Limiting
• Architectural Patterns
• Sequence Diagrams
Implementing ChatOps Application
• Introducing ChatOps
• ChatOps with Cisco Webex
• API Sequence Diagramming
• ChatOps Application Design
• Managing SSIDs and Retrieving Location Data Using Cisco Meraki API
Describing Advanced REST API Integration
• Consuming Paginated REST API Endpoints
• REST API Network Error Strategies
• REST API Error Control Flow
• Optimizing API Usage
Securing Application Data (Self-study)
• Data Storage and Protecting Data Privacy
• Storing Application Secrets
• Public Key Infrastructure
• Configuring Public Key Certificates for Applications
• Applying End-to-End Encryption for APIs
Securing Web and Mobile Applications (Self-study)
• OWASP Top 10
• Broken Access Control
• Injection Attacks and Data Validation
• XSS and Request Forgery
• OAuth Authorization Framework
• OAuth 2.0 Three-Legged Authorization Flow
Automating Application-Release
• Release Packaging and Dependency Management
• Advanced Version Control with Git
• Branching Strategies
• Continuous Testing and Static Code Analysis in CI Pipeline
• Identifying CI/CD Pipeline Failures
Deploying Applications
• 12-Factor App Methodology
• Containerizing Applications Using Docker
• Kubernetes Introduction
• Integrating Applications into Exisiting CI/CD Environment
• Downloadable Lab Code Reference – Integrate Application into Existing CI/CD Environment
• Hosting Applications on Network Devices
Exploring Distributed Systems
• Distributed Application Concepts
• Custom Dashboard Example
• Event-Driven Architecture Concepts
• Microservice Architecture Concepts
• Effective Distributed Application Logging Strategies
• Using Distributed Logging to Diagnose Problems
• Application Monitoring with Cisco AppDynamics
• Limitations of Distributed Systems and CAP Theorem
• Overcoming Challenges in Distributed Systems
Orchestrating Network and Infrastructure
• Differentiating Configuration Management Solutions
• Terraform Introduction
• Operating Terraform Fundamentals
• Case Study: Deploying Basic Network Configuration to Cisco Routers
• Configuring Network Parameters Using Ansible
• Defining Network Automation Source of Truth
• Creating and Deleting Objects Using Firepower Threat Defense API
• Configuring Servers Using Cisco UCS APIs
Modeling Data with YANG
• YANG Overview
• XPath Query Language
• YANG Language Syntax
• Data Model Modularity
• Network Configuration Using RESTCONF
• Model-Driven Telemetry
• Streaming Telemetry with gNMI
Using Relational and Non-Relational Databases (Self-study)
• Evaluating Database Types to Meet Application Needs
• Relational Database Concepts
• Key-Value Database Concepts
• Document-Based Database Concepts
• Graph-Based Database Concepts
• Columnar-Based Database Concepts
• Time-Series Database Concepts
Labs
• Discovery Lab 1: Construct Sequence Diagram
• Discovery Lab 2: Construct Web Sequence Diagram
• Discovery Lab 3: Use Paginated REST API Endpoint
• Discovery Lab 4: Use REST API Error Control Flow Techniques
• Discovery Lab 5: Evaluate Application for Common Open Web Application Security Project (OWASP) Vulnerabilities
• Discovery Lab 6: Resolve Merge Conflicts with Git
• Discovery Lab 7: Containerize Application Using Docker
• Discovery Lab 8: Integrate Application into Existing CI/CD Environment
• Discovery Lab 9: Diagnose Problems Using Application Logs
• Discovery Lab 10: Automate and Manage Cisco IOS XE Network Infrastructure with Terraform and GitLab CI/CD Pipelines
• Discovery Lab 11: Configure Network Parameters Using Ansible
• Discovery Lab 12: Synchronize Firepower Device Configuration
• Discovery Lab 13: Utilize RESTCONF for Network Configuration
• Discovery Lab 14: Query Relational Database
• Discovery Lab 15: Query Document Store
• Discovery Lab 16: Query Time Series Database
• Discovery Lab 17: Query Graph Database
FOLLOW ON COURSES:
Not available. Please contact.