
Aligns course objectives with the AZ-400 exam by exploring DevOps processes, Azure boards for agile planning, Jira, Git and Azure repos, CI/CD pipelines, and security and monitoring.
Align your study with the Az-400 objectives, note prerequisites Az-104 or Az-204, and understand the focus on Azure portal familiarity while using simple .NET programs.
Explore the project lifecycle and why DevOps emerged, comparing the waterfall model’s phases—requirements, analysis, design, coding, testing, deployment—and its advantages and pitfalls.
Contrast waterfall and agile approaches, and show how DevOps bridges development and operations for iterative, secure, tested deployments and faster feature releases.
DevOps unites development and operations across the application life cycle, using automation and agile delivery with Azure DevOps tools to speed deployment.
Discover Azure DevOps tools such as boards, pipelines, repos, test plans, and artifacts. Learn to start an account, sign in with a Microsoft account or GitHub, and navigate the interface.
Explore Azure boards within Azure DevOps as a project management tool to manage agile user stories and create work items for the application life cycle.
The traditional approach starts with budget approval and a high-level plan, forms a project team, and proceeds through requirements, design, coding, and testing before delivery, contrasting with an agile approach.
Explore how the agile methodology drives the scrum process, turning user stories into product and sprint backlogs, with continuous sprint status checks and Azure boards guiding planning.
Visualize and manage Azure DevOps work items with kanban boards, drag cards through new, active, resolved, and closed lanes, and create or edit user stories and features.
Learn how to add tasks to a user story within backlogs and boards, linking tasks to stories and epics to manage backlog work items efficiently.
Create and manage sprints by moving backlog items into iterations, assigning user stories and tasks, and planning two-week work cycles in Azure Boards.
Explore how to use dashboards in Azure Boards to visualize project data with widgets and charts, track remaining work, cycle time, lead time, and velocity across sprints.
Explore Azure Boards queries to filter work items by type, state, and priority, save and run queries, and visualize results with charts.
Discover built-in security groups in Azure DevOps, see how permissions are assigned at organization and project levels, and learn how not set equates to deny within group memberships.
Discover how Azure DevOps dashboard permissions govern who can view, create, edit, and delete dashboards. Admins set default permissions and per-dashboard edit rights using manage dashboard settings.
Learn how to add and manage a project wiki in Azure DevOps, using a Git-backed wiki with Markdown, subpages, drag-and-drop navigation, and user permissions for the Congress Security Group.
Create an Azure DevOps delivery plan to visualize work as a timeline, selecting project, team, backlog, and user stories, then view a Gantt chart style sprint schedule.
Explore the integration of Azure Boards with Microsoft Teams by linking a project to Azure DevOps, installing the Azure Boards app, signing in, and subscribing to work item events.
Create a new Scrum project in an Azure DevOps organization, explore work items such as epics, features, and product backlog items, assign users, and practice deleting the project.
Explore designing and implementing source control with Git, including using GitHub and Azure DevOps with Azure Repos to manage versioning and collaboration.
Understand how a version control system maintains different file versions, enables reverting to prior states, and supports coordinated development with Git as the popular source control tool.
This chapter explains why git is the preferred distributed source control tool, highlighting its distributed copies, performance, and easy branching, compared to centralized Subversion.
Install git on your local machine across Windows, macOS, and Linux, and set Visual Studio Code as editor. Set main as default branch; enable credential manager; verify with git version.
Learn to set up and use git with Visual Studio Code, initialize an empty repository, and track files with version control. Configure global username and email to identify changes.
Learn how to modify a file, track changes with git status, stage updates with git add, and commit them to the repository on the main branch.
Learn essential Git commands and their usage, including commit, via official documentation. Practice running commands in the terminal or VS Code, or Command Prompt, and check Git status.
Discover how git versioning relies on commits, review changes via the staging area, and revert to earlier commits using git log and git checkout.
Learn how to merge a feature branch into main using a simple fast-forward merge, update files like c.txt, and verify synchronization with git status and git log.
Sign up for a GitHub account to host git-based repositories, push local changes to remote, and choose a plan from free to enterprise.
Learn how to commit local changes, push to GitHub, and understand the difference between local and origin main branches, including creating feature branches and using pull requests.
Explore publishing code to a Git repository using Visual Studio 2022 with a simple ASP.NET template, demonstrating Git version control, installing Visual Studio, and Git integration.
Open Visual Studio 2022, create an ASP.NET Core web app, and use the built in git integration to initialize a local repo, commit files, and push to a GitHub repository.
Create a free GitHub organization, publish a web app by creating a repository from within Visual Studio, then commit and push changes to the remote repository, enabling collaboration.
Learn to manage Git workflows from Visual Studio, push and pull changes with GitHub, resolve merge conflicts, and complete a merge to update the main branch with versioned edits.
Understand git merges in the AZ-400 DevOps context, including fast-forward merges from feature to main, conflict resolution, and history visualization with git log graph in VS Code.
Explore an alternative git merge process by making concurrent changes on feature and main branches, and observe how the ORT strategy handles the merge with separate commits.
Create a feature branch from the main branch in GitHub, commit changes, and merge via a pull request with squash or rebase options.
Learn how to protect the main branch with branch protection rules, enforce pull requests and approvals, and manage merges through a structured branch policy.
Learn how Git performs automatic garbage collection and prune to remove unreferenced objects, and apply maintenance steps for data recovery and keeping a clean, version-controlled repository.
Discover how to handle large files in a git repository by using gitignore for binaries and Git LFS to reference large assets stored elsewhere.
Adopt a branching strategy that keeps the main branch stable for production, uses short-lived feature branches merged via pull requests, and maintains release and customer-specific branches with proper tagging.
Learn to protect the main branch in Azure Repos with branch policies, including minimum reviewers and controlled merges, plus creating branches and completing pull requests.
Explore branch security in Azure repos, managing branch permissions, and applying security across branches and all repositories. Learn to define read or rename permissions and enforce branch policies.
Learn to create a gitignore file to exclude build outputs from version control, use patterns, and apply changes with git add and commit.
Publish code from Visual Studio to Azure Repos and set up an Azure Pipelines workflow, then address the hosted parallelism error by submitting a parallelism increase request for private projects.
Receiving the completed support response enables you to run a pipeline in Azure DevOps, establishing the setup needed for the next section on Azure Pipelines.
Integrate Azure Boards with GitHub using the Azure Boards app from the marketplace. Link work items to pull requests for complete tracking across Azure Boards and GitHub.
Azure Bots and Azure Repos integrate with Slack to notify items and pull requests, with commands like AZ Repos sign in and subscribe to all repositories or a specific URL.
Explore cherry-picking changes by transferring a commit from a feature branch to the main branch using git cherry-pick, while switching branches and verifying history with get log.
I explain how this course designs and implements build and release pipelines by breaking a large section into smaller parts, starting with build pipelines.
Automate the building and testing of code every time developers commit changes, supporting continuous integration and incremental feature-branch updates to the main branch for faster deployments.
Create a YAML build pipeline by selecting code from Azure Repos, set the main branch as default, and trigger builds on changes while performing checkout and VS build tasks.
Explore how a simple Azure DevOps build pipeline runs, logs tasks, and uses YAML to define triggers, with NuGet restore and VS build on Microsoft-hosted agents.
Demonstrate triggering the build pipeline on any change to the main branch of the code repository, observing a new pipeline run and the steps executed in the continuous integration process.
Explore microsoft-hosted agents in azure pipelines, using windows or ubuntu images with tools to build your app, and ensure dotnet core is available for builds on windows and linux.
Explore self-hosted agents for Azure DevOps pipelines, learning why you might persist builds, install custom software, or move builds to on-premises, beyond the Microsoft hosted agent.
Run a pipeline with a self-hosted agent by configuring the default pool, granting permissions, and noting slower execution compared to Microsoft hosted agents.
Use Mend Bolt to scan dependencies for security vulnerabilities, licensing issues, and outdated libraries in Azure DevOps pipelines; install the extension, integrate with Azure Active Directory, and create Mend account.
Configure the build pipeline to run unit tests by adding a web test csproj on a Microsoft hosted agent with .NET 6, then push to Azure Repos and view results.
Add a status badge to your GitHub repository to reflect the latest Azure Pipelines run, and enable anonymous access in organization and project settings.
Explore creating an Azure pipeline via the classic editor using a personal access token to access a GitHub repository, including setting up a service connection and enabling continuous integration.
Sign up for SonarCloud and integrate it with Azure DevOps to analyze your source code and deliver feedback on code quality. Configure a service connection to enable analysis and reporting.
Increase build speed by enabling pipeline caching to reuse downloaded NuGet packages across runs. Add a cache task to avoid repeated internet downloads for NuGet packages across the solution.
Provision an Azure Ubuntu virtual machine, configure port 8080 access, install Jenkins and Java Development Kit, unlock with the initial admin password, install plugins, and create the first admin user.
Set up a Linux self-hosted Jenkins agent with Git and the .NET SDK, connect to a GitHub repo, and create a free-style build pipeline that runs a .NET build.
Learn to integrate Azure Repos with Jenkins by configuring a freestyle project, authenticating Git access, and running dotnet build, then set up service hooks to trigger builds on code pushes.
Deploy your app by leveraging continuous delivery with Azure Pipelines, choosing infrastructure options like Azure VM, Azure Web Apps, or Azure Kubernetes, and validating in test and staging before production.
Publish and transfer a .NET build as a zip artifact from the build to the release pipeline, then deploy the content to an Azure web app via continuous deployment.
Add another stage to the release pipeline to deploy the application to both test and staging environments, using Azure Web App and artifact-driven builds triggered by commits.
Learn how to implement automated gates in Azure Pipelines by querying Azure Boards for open tasks, configuring post-deployment checks, and using continuous evaluation to gate promotions between stages.
Discover how to add a manual intervention in an Azure release pipeline, using an agentless task with instructions and a user assignment before deploying an Azure web app.
Register machines as deployment group targets in Azure DevOps with a PowerShell script and deploy to test environments in parallel using a deployment group job, then clean up resources.
Learn to deploy a .NET web app on Azure web app that uses Azure SQL Database, and set up build and release pipelines to provision the database and data.
Enable end-to-end traceability in release pipelines by linking a commit to a corresponding build and release, and report deployment status on Azure Boards work items.
Deploy containerized .NET apps with pipelines to Azure Container Instant Service or Azure Kubernetes, detailing Docker installation, containerization with a Dockerfile and custom image, and pushing to Azure Container Registry.
Build a Docker image for a .NET 6.0 app that uses Azure SQL Database, publishing files to an Ubuntu VM, creating a Dockerfile, and running the container on port 80.
Learn to automate docker image builds and push to Azure Container Registry using Azure Pipelines, including dockerfile inclusion, YAML workflows, and service connections for streamlined devops.
Debug and refine an Azure DevOps pipeline to build the .NET project and push the docker image to the Azure container registry using the correct build context.
Create a release pipeline to deploy an existing image from the Azure container registry to an Azure container instance using an Azure CLI task, with a manual release.
Deploy container images to Azure Kubernetes Service using pipelines, create AKS cluster, and deploy workloads and services via YAML manifests, exposing app with a load balancer and Azure SQL database.
Explore releasing to Kubernetes with a classic release pipeline, publishing app.yaml and service.yaml as artifacts, and deploying manifests via two Kubernetes tasks in Azure DevOps.
Publish pipeline artifacts from build to release, and learn to compare publishing all source files with selecting specific artifacts for reuse.
Manage deployment queue settings to limit deployments when multiple builds run, and decide to deploy all builds sequentially or discard older ones for the latest one.
Revise arm templates for deploying an Azure VM with a virtual network, two subnets, NIC, public IP, storage account for boot diagnostics, data disk, and a network security group.
Explore modularizing Azure ARM templates with nested and linked templates to enhance maintainability, enabling reusable modules across environments, and understand incremental deployment in nested and linked templates.
Configure and deploy multiple Azure resources using linked templates, including an Azure Web App, an App Service plan, and an Azure SQL database, connected via template links and parameter files.
Integrate ARM templates into a release pipeline to deploy an Azure web app and SQL database within a resource group, using main.json and incremental deployment.
Delete test environment resources in a release pipeline using Azure CLI, scripting deletions for SQL database, SQL server, web app, and app service plan, with a post deployment approval.
Deploy to multiple environments—test, staging, and production—using ARM templates and dynamic resource naming. Configure the pipeline to set SQL server name, web app name, and connection strings for staging database.
Propagate ARM template outputs into release pipelines by extracting web app and sql server names with a PowerShell script, then map them to release variables for dynamic deployments.
Use Azure CLI to build resources by creating an app service plan, an Azure BeBop web app, and an Azure SQL database server in a guided Cloud Shell workflow.
Download Terraform for Windows, add it to PATH, verify with terraform version, then use VS Code with HashiCorp Terraform and Azure Terraform extensions to build main.tf with providers and modules.
Extend a yaml build pipeline into a release pipeline. Deploy to Azure web app and Azure sql database using yaml tasks and artifacts.
Learn to deploy Azure resources with YAML pipelines by calling ARM templates, publishing and downloading artifacts, and using the ARM template deployment task for incremental deployments.
Demonstrate using PowerShell desired state configuration with Azure Automation to install IIS on an Azure VM, compile and deploy configuration, onboard the VM, and enforce drift correction.
Understand how the file resource in DSC copies a full directory from a source to a destination path using the file construct.
Automate Azure VM deployment by using a Team Services agent extension to join deployment groups, and implement custom script extensions to install IIS and the ASP.NET hosting bundle.
Deploy a virtual machine scale set with an ARM template that provisions a load balancer, front-end IP, backend pool, port 80 probe, and two instances.
Deploy the team services agent and a custom script extension to a VM scale set via ARM template, enabling deployment groups, hosting internet information services, and a shared access signature.
Explore deployment strategies for updating an Azure web app connected to an Azure SQL database, addressing the fear of changes and promoting code updates to Azure DevOps for seamless releases.
Demonstrates blue-green deployment by running production in the blue environment while testing a newer version in the green environment, then switching traffic with minimal downtime.
Azure Traffic Manager acts as a DNS-based load balancer, routing traffic across Azure regions with priority and weighted routing for active-passive failover and canary deployments.
Configure Azure Traffic Manager with weighted routing across two web apps in different locations. Manage endpoints, health checks, and host headers to enable canary deployments and production-staging traffic routing.
Implement traffic routing with Azure Pipelines by creating a staging endpoint in a Traffic Manager profile and configuring weightage between staging and production using PowerShell scripts.
Implement rolling deployments across Azure virtual machines, using deployment groups or VM scale sets to update in phases and batches, gradually replacing older versions with newer ones.
Learn how to use Azure load balancer to manage blue-green deployments, including configuring a backend pool, health probe, and load balancing rules, and switching traffic to the green environment.
Execute a release pipeline task using Azure PowerShell to switch the load balancer backend pool from production to staging and verify the change.
Publish and consume packages with Azure Artifacts, including NuGet, npm, Maven, and Python, via private repositories and public feeds, enabling developers to use Newtonsoft.Json for JSON data.
Explore the Azure App Config service to centralize key-value settings and feature flags for multiple Azure web apps. Use configuration explorer and feature manager to define and toggle features.
Use selenium to run UI tests for a web app in a C# MS Test project, with chrome driver, asserting page titles, and integrate tests into an Azure DevOps pipeline.
Explore how the test and feedback extension enables stakeholders to request and provide feedback on a feature, using notes, screen capture, and a session timeline within a project.
Explore the security perspective in Azure DevOps, revisiting service connections and personal access tokens, and master secrets management with variables, Azure Key Vault, and code scanning with SonarQube and OVAs.
Set and seal variables directly in the release pipeline, including the Azure SQL Server fully qualified domain name and a secret password, noting values are not settable at release time.
Learn how to create and configure an Azure Key Vault to securely store secrets, certificates, and encryption keys, and prepare for integrating it with Azure pipelines.
Define a db password secret in Azure key vault and access it from a yaml pipeline using the Azure key vault secrets task, with service principal permissions and artifact publishing.
Integrate Azure Key Vault secrets into an ARM template using a static reference to securely deploy an Azure SQL database via Cloud Shell, with proper access policies and parameter handling.
Integrate the OWASP Zap scanner into your release pipeline to scan an Azure web app, using a Docker image in an Azure container instance, and publish results to storage.
See how to integrate the OWASP ZAP scanner into an Azure release pipeline, including creating a storage account and file share, deploying a container instance, and provisioning access keys.
Create and reference service connections in your project settings to connect Azure DevOps to external services like an Azure subscription, GitHub, or an Azure Kubernetes cluster, keeping credentials secure.
Review the instrumentation strategy using Azure Monitor and Application Insights to monitor Azure resources and web applications' performance. Focus on exam-relevant monitoring concepts for AZ-400.
Learn to set up alerts in Azure Monitor by defining resource scope, conditions on metrics like CPU percentage, and actions via an action group to notify teams or trigger runbooks.
Explore how Azure Monitor uses machine learning on historical metrics to set dynamic thresholds, detecting patterns and anomalies and triggering alerts on deviations.
Explore how the Log Analytics workspace centralizes logs from Azure VMs, on-prem servers, and Azure SQL database, enables connections via diagnostic settings, and supports query-driven insights with solutions and visualizations.
Connect the Azure VM to a Log Analytics workspace, install the dependency agent via an ARM template, and deploy the Service Map solution to discover components, connections, and latency.
Create an Azure web app and an Application Insights resource, link them, and deploy an ASP.NET Core project from Visual Studio to monitor live telemetry and metrics using Application Insights.
Explore Application Insights features like live telemetry, users, sessions, events, funnels, cohorts, and performance. Learn how smart detection enables real-time failure alerts and how to configure alerts and action groups.
learn how application insights stores data in a log analytics workspace by default, link resources to an existing workspace, and query and visualize app request data.
Configure azure container instances probes in yaml deployment via container groups to enable liveness and readiness checks, automatically restarting unhealthy containers and delaying startup until dependencies like databases are ready.
Explore how to manage Azure DevOps notifications by using user settings to view and create subscriptions, receive email alerts for builds and pull requests, and tailor alerts for your pipeline.
Right here! Avail special discount coupon links for all of my Al Azure and AWS Courses
Version 2.0 July 2022
Completed a major refresh of the AZ-400 course. This is to align with the major changes made to the AZ-400 exam by Microsoft on the 13th of July.
All sections are being refreshed. Sections are being added as NEW and will contain a refresh of all key concepts and demos.
The course now aligns with the new exam objectives
Configure processes and communications
Design and implement source control
Design and implement build and release pipelines
Develop a security and compliance plan
Implement an instrumentation strategy
Version 1.1 Mar 2021
Updated chapters on working with GitHub - This is to reflect the changes made to the naming convention of the main branch. GitHub now refers to the master branch as the main branch.
Updated the chapters on working with Git repositories from Visual Studio 2019 - With the newer version of Visual Studio 2019, the way on working with Git Repositories has changed.
This course is designed for students who want to attempt the Exam AZ-400: Designing and Implementing Microsoft DevOps Solutions
This course has contents for the Exam AZ-400
The objectives covered in this course are
Develop an instrumentation strategy (5-10%)
Develop a Site Reliability Engineering (SRE) strategy (5-10%)
Develop a security and compliance plan (10-15%)
Manage source control (10-15%)
Facilitate communication and collaboration (10-15%)
Define and implement continuous integration (20-25%)
Define and implement a continuous delivery and release management strategy (10-15%)
In this course , you will learn aspects which includes the following
Working with Azure Boards
How to work with Git - Here there are extensive labs on working with Git repositories. Here you will also learn how to work with Azure Repos
How to create and implement Build pipelines using Azure Pipelines
How to use Jenkins for configuration management
Implementing security in your continuous pipeline
Building your infrastructure with ARM templates. There are also chapters on how to work with Terraform
Releasing your applications with Azure Release Pipelines