Thursday, January 23, 2020

Learn Azure DevOps for free - and pass the AZ-400 exam!

TL;DR scroll down for a ton of free resources that will enlighten you in the ways of Azure DevOps and will help you prepare for the AZ-400 exam. If you first read on though it will all make a lot more sense.

How is Azure certification different?

Cloud computing is disrupting not just the way companies deal with IT infrastructure but also how we look at IT training and certification. Gone are the days when companies could run the same multiple-choice question exam for 10 years with only slight updates every couple of years - the platforms we use are now changing in front of our very eyes and any material more than a few months old is more likely than not to be at least somewhat out of date. Instead, we are getting innovative exam formats, like the AZ-300 exam where you get an Azure sandbox where you need to get actual work done! That's a breath of fresh air compared to the traditional format, where you are drilled in reciting names of classes from an object model and the like. It comes with a price though - the credential you receive is valid for only 2 years, which (I hope) is quite a bit shorter than the lifetime duration of the older Microsoft certificates.

What about AZ-400 specifically?

The hands-on exam format hasn't made it to AZ-400 (Azure DevOps) yet and this exam and the corresponding course come with their own set of challenges. The syllabus encompasses a vast array of technologies, many of which change quite often and to top it off, the materials that Microsoft offers are particularly disorganized and much more voluminous than other week-long Microsoft courses. If you are taking this course in a one week format you should brace yourself for an intensive experience!

It's not all doom and gloom though - one other unusual thing Microsoft have done is to build the course around a ton of freely available materials. They've indexed YouTube videos that cover a good chunk of the materials, they've provided free exercise guides and the cherry on the cake - a free sandbox, complete with a demo generator to initialize the setup for each lab.

These are awesome resources but apparently keeping it current is a tough order that Microsoft can't keep up with and you can expect a lot of the stuff to not actually work out of the box. You know, like in the real world. In December 2019 I sifted through these materials so that I can select the ones that are usable for my students and it's my pleasure to share these with you - they mostly work at the time of writing and for some I've provided quick hints on getting them to work.

So, behold, a great free companion to your AZ-400 course, or potentially even an alternative in case you have experienced DevOps professionals around you in lieu of an instructor. It's split in 7 "parts", for lack of a better word, which I fit into 5 days of training but that's my own way of doing it, other instructors might organize it differently.

Day 1

Part 1 - Implementing DevOps Development Processes

Module 1 - Getting Started with Source Control
Video: Introduction to DevOps
Video: Introduction to Source Control
Video: Working with Git Locally
Video: Introduction to Azure Repositories
Video: Azure Repositories with VSTS CLI
Video: Migrating from TFVC to Git

Lab: Version Controlling with Git in Azure Repos

 Module 2 - Scaling Git for Enterprise DevOps

Video: Git Branching Workflows
https://www.youtube.com/watch?v=ADIlVkzfo5o
Video: GitFlow Improving the Flow of Code
https://www.youtube.com/embed/T7QYscQZwAM 
Video: Implementing GitFlow
https://www.youtube.com/embed/v3yQcjMYSfI 
Video: Collaborating with Pull Requests
https://www.youtube.com/watch?v=VaOdZlhblZ4 
 
 Lab: Code Review with Pull Requests:
https://www.azuredevopslabs.com/labs/azuredevops/git/ 
Video: GitHooks in Action

Video: Inner Source with Forks
Video: GitVersion
Video: Public Projects

  Module 3: Implement and Manage Build Infrastructure
Video: Azure Pipelines

Lab: Configuring a CD pipeline for your Jenkins CI

Lab: Integrate Your GitHub Projects With Pipelines
Known issues:
  The sample calculator repo missing, use any other repo, most of the lab will work
  The status badge markdown doesn't work in github at the time of writing. It does in Azure repos!

Lab: Deploying a Multi-container Application to AKS



Day 2


  Module 4: Managing Application Config and Secrets
Video: SQL Injection Attack
  https://www.youtube.com/watch?v=b3ODyunzDoQ 
Video: Threat Modeling
  https://www.youtube.com/watch?v=VxmZ-s9Yqs4 
Video: Key Vault
  https://www.youtube.com/watch?v=jvaubI0BccM
Video: Managing Technical Debt
Video: SonarCloud
Lab: SonarCloud: Driving continuous quality of your code with SonarCloud https://www.azuredevopslabs.com/labs/vstsextend/sonarcloud/ 
  Known issues:   SonarCloud service connection needs to be created, it's not explicitly mentioned in the instructions.   On the last step the release gate didn't pick up the quality gate outcome.
 
Lab: WhiteSource: Managing Open-source security and license with WhiteSource (featured also in Part 4) https://azuredevopslabs.com//labs/vstsextend/whitesource/ 



Video: Implement Continuous Security Validation
https://www.youtube.com/embed/PLC2WhCW7wA
Video: Securing Infrastructure with AzSK
https://www.youtube.com/watch?v=BkvA58vHuNU 
Video: Azure Policy Management Pipelines
https://www.youtube.com/embed/OiOXlgFNgDo 

Part 2: Implementing Continuous Integration


  Module 1: Implementing Continuous Integration in an Azure DevOps Pipeline
Video: Introduction to Continuous Integration
Video: Implementing Continuous Integration in Azure DevOps
Video: Using Variables to Avoid Hard-coded Values
Video: Configuring Build Retention
Video: Automated Build Workflows
Video: Implementing Build Triggers
Video: Working with Hosted Agents
Video: Implementing a Hybrid Build Process

Lab: Deploy existing .NET apps as Windows containers (Modernizing .NET apps) Lab: Integrating Jenkins CI with Azure Pipelines

  Module 2: Managing Code Quality and Security Policies
Video: Code Quality Defined
Video: Configuring SonarCloud in a Build Pipeline
Video: Reviewing SonarCloud Results and Resolving Issues

Lab: Managing Technical Debt with Azure DevOps and SonarCloud

  Module 3: Implementing a Container Build Strategy

Video: Overview of Containers
Video: Create an Azure Container Registry
Video: Add Docker Support to an Existing Application

Lab: Deploy existing .NET apps as Windows containers (Modernizing .NET apps)

Part 3: Implementing Continuous Delivery

  Module 1: Design a Release Strategy
 Video: Artifact Source
 Video: Deployment Stages
 Video: Build Cadence
 Video: Manual Approval
 Video: Release Gates

  Module 2: Set Up a Release Management Workflow
 Video: Service Connection
 Video: Task groups
 Video: Variable Groups

 Lab: Deploying to Azure VM using Deployment Groups

 Lab: Using Azure Monitor as Release Gate
Known issues

 Lab: Setting up secrets in the pipeline with Azure Key vault

 Video: Secrets

Day 3

  Module 3: Implement an Appropriate Deployment Pattern
Video: Setting up a Blue-Green deployment
Video: Setting up a Ring Based Deployment with Traffic Manager

Part 4: Implementing Dependency Management

  Module 1: Designing a Dependency Management Strategy
Video: Creating an Azure Artifacts feed
Video: Push packages to feed
Video: Consume packages from a feed
Video: Pushing package from a pipeline
Video: Promoting packages

Lab: Package management
    Known issue: The instructions are missing some steps but with a bit of improvisation can be made to work.
 In Task 3 just create a new VS solution, or grab one from another Repo.
  Module 2: Manage Security and Compliance
Video: Scanning with WhiteSource Bolt

Day 4

Part 5: Implementing Application Infrastructure

  Module 1: Infrastructure and Configuration Azure Tools
 Video: Architecting Automation
 Video: ARM templates
 Video: Azure CLI
 Video: PowerShell
 Video: Other automation tools
 Video: Version control

 Lab: Azure Deployments using Resource Manager templates


  Module 2: Azure Automation
Lab: Azure Automation Runbook Deployments
Lab: Azure Automation State configuration DSC
  Module 3: Azure Compute Services
Lab: Deploy Application to Azure Kubernetes Service Lab: Deploy Application to Azure App Services using Azure DevOps

Day 5

  Module 4: Third Party and Open Source Tool Integration with Azure
Lab: Deploy app with Puppet on Azure
Lab: Ansible with Azure

  Module 5: Compliance and Security
Lab: Implement Security and Compliance in Azure DevOps pipelines

Part 6: Implementing Continuous Feedback

  Module 1: Recommend and Design System Feedback Mechanisms
Lab: Feature Flag Management with LaunchDarkly and AzureDevOps
Lab: Microsoft Teams integration

  Module 2: Implement Process for Routing System Feedback to Development Teams
Video: Application Insights

Part 7: Designing a DevOps Strategy

  Module 1: Planning for DevOps
Video: Goals
Video: Greenfield and brownfield
Video: Systems of records vs Systems of engagement
Video: Agile Development Practices Defined
Video: Mentoring Team Members on Agile Practices

Lab: Agile Boards

  Module 2: Planning for Quality and Security
Video: Secure development

  Module 3: Migrating and Consolidating Artifacts and Tools
Video: Artifact Repositories
Video: Authorization and access strategy
Video: Azure Devops licensing

Lab: Eclipse Integration

1 comment:

Vangi said...

Thank you for sharing such outstanding information.