This course runs for a duration of 4 days.
The class will run daily from 9:00 am CST to 5:00 pm CST.
Class Location: Knowledge Transfer - Eagan, MN.
This course provides the knowledge and skills to design and implement DevOps processes and practices. Students will learn how to plan for DevOps, use source control, scale Git for an enterprise, consolidate artifacts, design a dependency management strategy, manage secrets, implement continuous integration, implement a container build strategy, design a release strategy, set up a release management workflow, implement a deployment pattern, and optimize feedback mechanisms
Audience Profile
Students in this course are interested in implementing DevOps processes or in passing the Microsoft Azure DevOps Solutions certification exam.
Objectives:
1 - Introduction to DevOps
What is DevOps?
Explore the DevOps journey
Identify transformation teams
Explore shared goals and define timelines
2 - Choose the right project
Explore greenfield and brownfield projects
Decide when to use greenfield and brownfield projects
Decide when to use systems of record versus systems of engagement
Identify groups to minimize initial resistance
Identify project metrics and key performance indicators (KPIs)
3 - Describe team structures
Explore agile development practices
Explore principles of agile development
Define organization structure for agile practices
Explore ideal DevOps team members
Enable in-team and cross-team collaboration
Select tools and processes for agile practices
4 - Choose the DevOps tools
What is Azure DevOps?
What is GitHub?
Explore an authorization and access strategy
Migrate or integrate existing work management tools
Migrate or integrate existing test management tools
Design a license management strategy
5 - Plan Agile with GitHub Projects and Azure Boards
Introduction to GitHub Projects and Project boards
Introduction to Azure Boards
Link GitHub to Azure Boards
Configure GitHub Projects
Manage work with GitHub Project boards
Customize Project views
Collaborate using team discussions
Agile plan and portfolio management with Azure Boards
6 - Introduction to source control
Explore DevOps foundational practices
What is source control?
Explore benefits of source control
Explore best practices for source control
7 - Describe types of source control systems
Understand centralized source control
Understand distributed source control
Explore Git and Team Foundation Version Control
Examine and choose Git
Understand objections to using Git
Describe working with Git locally
8 - Work with Azure Repos and GitHub
Introduction to Azure Repos
Introduction to GitHub
Migrate from TFVC to Git
Use GIT-TFS
Develop online with GitHub Codespaces
Version Control with Git in Azure Repos
9 - Structure your Git Repo
Explore monorepo versus multiple repos
Implement a change log
10 - Manage Git branches and workflows
Explore branch workflow types
Explore feature branch workflow
Explore Git branch model for continuous delivery
Explore GitHub flow
Explore fork workflow
Version Control with Git in Azure Repos
11 - Collaborate with pull requests in Azure Repos
Collaborate with pull requests
Examine GitHub mobile for pull request approvals
12 - Identify technical debt
Examine code quality
Examine complexity and quality metrics
Introduction to technical debt
Measure and manage technical debt
Integrate other code quality tools
Plan effective code reviews
13 - Explore Git hooks
Introduction to Git hooks
Implement Git hooks
14 - Plan foster inner source
Explore foster inner source
Implement the fork workflow
Describe inner source with forks
15 - Manage Git repositories
Work with large repositories
Purge repository data
Manage releases with GitHub Repos
Automate release notes with GitHub
16 - Explore Azure Pipelines
Explore the concept of pipelines in DevOps
Describe Azure Pipelines
Understand Azure Pipelines key terms
17 - Manage Azure Pipeline agents and pools
Choose between Microsoft-hosted versus self-hosted agents
Explore job types
Introduction to agent pools
Explore predefined agent pool
Understand typical situations for agent pools
Communicate with Azure Pipelines
Communicate to deploy to target servers
Examine other considerations
Describe security of agent pools
Configure agent pools and understanding pipeline styles
18 - Describe pipelines and concurrency
Understand parallel jobs
Estimate parallel jobs
Describe Azure Pipelines and open-source projects
Explore Azure Pipelines and Visual Designer
Describe Azure Pipelines and YAML
19 - Explore continuous integration
Introduction to continuous integration
Learn the four pillars of continuous integration
Explore benefits of continuous integration
Describe build properties
Enable Continuous Integration with Azure Pipelines
20 - Implement a pipeline strategy
Configure agent demands
Implement multi-agent builds
Explore source control types supported by Azure Pipelines
21 - Integrate with Azure Pipelines
Describe the anatomy of a pipeline
Understand the pipeline structure
Detail templates
Explore YAML resources
Use multiple repositories in your pipeline
22 - Introduction to GitHub Actions
What are Actions?
Explore Actions flow
Understand workflows
Describe standard workflow syntax elements
Explore events
Explore jobs
Explore runners
Examine release and test an action
23 - Learn continuous integration with GitHub Actions
Describe continuous integration with actions
Examine environment variables
Share artifacts between jobs
Examine Workflow badges
Describe best practices for creating actions
Mark releases with Git tags
Create encrypted secrets
Use secrets in a workflow
Implement GitHub Actions For CI/CD
24 - Design a container build strategy
Examine structure of containers
Work with Docker containers
Understand Dockerfile core concepts
Examine multi-stage Dockerfiles
Examine considerations for multiple stage builds
Explore Azure container-related services
Deploy Docker containers to Azure App Service web apps
25 - Introduction to continuous delivery
Explore traditional IT development cycle
What is continuous delivery?
Move to continuous delivery
Understand releases and deployments
Understand release process versus release
26 - Create a release pipeline
Describe Azure DevOps release pipeline capabilities
Explore release pipelines
Explore artifact sources
Choose the appropriate artifact source
Examine considerations for deployment to stages
Explore build and release tasks
Explore custom build and release tasks
Explore release jobs
Configure Pipelines as Code with YAML
27 - Explore release recommendations
Understand the delivery cadence and three types of triggers
Explore release approvals
Explore release gates
Use release gates to protect quality
Control deployments using release gates
28 - Provision and test environments
Provision and configure target environments
Configure automated integration and functional test automation
Understand Shift-left
Set up and run availability tests
Explore Azure Load Testing
Set up and run functional tests
29 - Manage and modularize tasks and templates
Examine task groups
Explore variables in release pipelines
Understand variable groups
30 - Automate inspection of health
Automate inspection of health
Explore events and notifications
Explore service hooks
Configure Azure DevOps notifications
Configure GitHub notifications
Explore how to measure quality of your release process
Examine release notes and documentation
Examine considerations for choosing release management tools
Explore common release management tools
31 - Introduction to deployment patterns
Explore microservices architecture
Examine classical deployment patterns
Understand modern deployment patterns
32 - Implement blue-green deployment and feature toggles
What is blue-green deployment?
Explore deployment slots
Introduction to feature toggles
Describe feature toggle maintenance
33 - Implement canary releases and dark launching
Explore canary releases
Examine Traffic Manager
Understand dark launching
34 - Implement A/B testing and progressive exposure deployment
What is A/B testing?
Explore CI-CD with deployment rings
35 - Integrate with identity management systems
Integrate GitHub with single sign-on (SSO)
Explore service principals
Explore Managed Identity
36 - Manage application configuration data
Rethink application configuration data
Explore separation of concerns
Understand external configuration store patterns
Introduction to Azure App Configuration
Examine Key-value pairs
Examine App configuration feature management
Integrate Azure Key Vault with Azure Pipelines
Manage secrets, tokens and certificates
Examine DevOps inner and outer loop
Integrate Azure Key Vault with Azure DevOps
Enable Dynamic Configuration Feature Flags
37 - Explore infrastructure as code and configuration management
Explore environment deployment
Examine environment configuration
Understand imperative versus declarative configuration
Understand idempotent configuration
38 - Create Azure resources using Azure Resource Manager templates
Why use Azure Resource Manager templates?
Explore template components
Manage dependencies
Modularize templates
Manage secrets in templates
Azure deployments using Resource Manager templates
39 - Create Azure resources by using Azure CLI
What is Azure CLI?
Work with Azure CLI
40 - Explore Azure Automation with DevOps
Create automation accounts
What is a runbook?
Understand automation shared resources
Explore runbook gallery
Examine webhooks
Explore source control integration
Explore PowerShell workflows
Create a workflow
Examine checkpoint and parallel processing
41 - Implement Desired State Configuration (DSC)
Understand configuration drift
Explore Desired State Configuration (DSC)
Explore Azure Automation State configuration (DSC)
Examine DSC configuration file
Explore hybrid management
Implement DSC and Linux Automation on Azure
42 - Implement Bicep
What is Bicep?
Install Bicep
Understand Bicep file structure and syntax
43 - Introduction to Secure DevOps
Describe SQL injection attack
Understand DevSecOps
Explore Secure DevOps Pipeline
Explore key validation points
Explore continuous security validation
Understand threat modeling
44 - Implement open-source software
Explore how software is built
What is open-source software
Explore corporate concerns with open-source software components
Introduction to open-source licenses
Explore common open-source licenses
Examine license implications and ratings
45 - Software Composition Analysis
Inspect and validate code bases for compliance
Explore software composition analysis
Integrate WhiteSource with Azure DevOps pipeline
Implement GitHub Dependabot alerts and security updates
Integrate software composition analysis checks into pipelines
Examine tools for assess package security and license rate
Interpret alerts from scanner tools
Implement Security and Compliance in an Azure Pipeline
46 - Static analyzers
Explore SonarCloud
Explore CodeQL in GitHub
Manage technical debt with SonarCloud and Azure DevOps
47 - OWASP and Dynamic Analyzers
Plan Implement OWASP Secure Coding Practices
Explore OWASP ZAP penetration test
Explore OWASP ZAP results and bugs
48 - Security Monitoring and Governance
Implement pipeline security
Explore Microsoft Defender for Cloud
Examine Microsoft Defender for Cloud usage scenarios
Explore Azure Policy
Understand policies
Explore initiatives
Explore resource locks
Explore Azure Blueprints
Understand Microsoft Defender for Identity
49 - Explore package dependencies
What is dependency management?
Describe elements of a dependency management strategy
Identify dependencies
Understand source and package componentization
Decompose your system
Scan your codebase for dependencies
50 - Understand package management
Explore packages
Understand package feeds
Explore package feed managers
Explore common public package sources
Explore self-hosted and SaaS based package sources
Consume packages
Introduction to Azure Artifacts
Publish packages
Package Management with Azure Artifacts
51 - Migrate consolidating and secure artifacts
Identify existing artifact repositories
Migrate and integrating artifact repositories
Secure access to package feeds
Examine roles
Examine permissions
Examine authentication
52 - Implement a versioning strategy
Understand versioning of artifacts
Explore semantic versioning
Examine release views
Promote packages
Exercise - Promote a package
Explore best practices for versioning
53 - Introduction to GitHub Packages
Install a package
Delete and restore a package
Explore package access control and visibility
Publish packages
54 - Implement tools to track usage and flow
Understand the inner loop
Introduction to continuous monitoring
Explore Azure Monitor and Log Analytics
Examine Kusto Query Language (KQL)
Explore Application Insights
Implement Application Insights
Monitor application performance with Application Insights
55 - Develop monitor and status dashboards
Explore Azure Dashboards
Examine view designer in Azure Monitor
Explore Azure Monitor workbooks
Explore Power BI
Build your own custom application
56 - Share knowledge within teams
Share acquired knowledge within development teams
Introduction to Azure DevOps project wikis
Integrate with Azure Boards
Share team knowledge using Azure Project Wiki
57 - Design processes to automate application analytics
Explore rapid responses and augmented search
Integrate telemetry
Examine monitoring tools and technologies
58 - Manage alerts, blameless retrospectives and a just culture
Examine when get a notification
Explore how to fix it
Explore smart detection notifications
Improve performance
Understand server response time degradation
Reduce meaningless and non-actionable alerts
Examine blameless retrospective
Develop a just culture
Successful learners will have prior knowledge and understanding of: