MPP: DevOps

Enable continuous delivery of value to end users

Log in to Enroll

Ship. Iterate. Repeat.

To support organizations to be more agile, the lines between development and operations are becoming increasingly blurred. Through continuous integration and deployment, students will learn how to react to changing market conditions.

Summary

Who takes this course

Aspiring DevOps professionals

Difficulty

Advanced

Assessment

The courses have a final assessment with re-take restrictions. Successfully completing the final assessment will enable you to redeem your certificate of completion.

Certification

The Microsoft Professional Program is completed by completing the Capstone project. There isn’t an exam to complete this track.

Completion time

72-140 hours

Curriculum

Introduction to DevOps Practices

An introduction to the core values, principles and practices involved in implementing DevOps environments and solutions.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Intermediate
Language
English

About this course

This course provides the fundamental concepts to prepare you for deeper dives into specific DevOps practices.
We will cover deploying and configuring standardized infrastructure, automating builds and deployments using continuous integration and continuous deployment with Visual Studio Team Services (VSTS) and automating testing before release and whilst in production.

The course will also cover continuous learning from production, and how to improve and scale business results based on application monitoring.

After completing this course, you should be able to understand how to begin crafting a release pipeline that includes continuous integration techniques, continuous testing practices, monitoring, treating infrastructure and configuration as code, and deploying frequently and automatically.

It is intended for both Development and Operations professionals, who are interested in learning and adopting DevOps practices.

What you’ll learn

  • DevOps core values, principles and practices
  • How to deploy to IaaS and PaaS environments in Microsoft Azure using ARM templates, Desired State Configuration (DSC) and other deployment tools
  • Build and deploy applications automatically to Dev, Test and Production environments
  • Continuous learning from production to improve and scale business results.
  • Unit tests, Integration tests, load tests, UI tests and test driven-development
  • Data retention strategies, exposure control strategies, and hypothesis-driven development.

Prerequisites

Students who take this training should understand:

  • Experience working in an organization delivering software,either in development or in operations
  • Knowledge and experience working with Cloud based solutions,preferably experience using Microsoft Azure
Infrastructure as Code

This course provides knowledge and skills for automating infrastructure deployment and configuration, by representing your environments as code.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Intermediate
Language
English

About this course

In this course, you will gain the knowledge and skills to be able to deliver stable environments rapidly, reliably and at scale, avoiding manual configuration of environments and enforcing consistency, by representing your environments as code.

The course will cover areas such as:

  • Azure Automation
  • ARM templates
  • Desired State Configuration (DSC)
  • DevTest labs
  • Chef deployments in Azure
  • Puppet deployments in Azure
  • As well as other automation scenarios, tools and options.

What you’ll learn

  • How to configure and implement Azure Automation accounts and security
  • How to create and run an Automation Windows PowerShell workflow-based textual Runbooks to provision and de-provision an environment
  • Understand Desired State Configuration (DSC) and how to create a DSC configuration file, import it into the automation account and compile it.
  • How to onboard Azure VMs for Automation DSC
  • How to generate an Azure Resource Manager (ARM) template based on an existing resource group and apply an ARM template that removes all resources in a resource group
  • How to create an ARM template by using Visual Studio.
  • How to implement Chef and Puppet deployments in Azure
  • How to use Chef to configure Azure DevTest Lab VMs
  • How to configure Continuous Integration and Continuous Deployment of Azure SQL Database using Visual Studio Team Services (VSTS) and Visual Studio.

Prerequisites

Students who take this training should understand:

  • Experience working in an organization delivering software,either in development or in operations.
  • Knowledge and experience working with Cloud based solutions, experience using Microsoft Azure.

Course Syllabus

Students who take this training should understand:

Module 0:

  • Course introduction
  • Introduction to DevOps and Infrastructure as Code (IaC)

Module 1: Azure Automation

  • Objectives:
  • Infrastructure as Code and Automation
  • Automation Accounts
  • Automation Security
  • Runbook Assets
  • Runbook Basics
  • PowerShell Workflows
  • Practical Exercises
  • Review Questions
  • Summary

Module 2: Desired State Configuration (DSC)

  • Objectives
  • DSC in DevOps
  • Automation DSC
  • Implementing Automation DSC
  • Practical Exercises
  • Review Questions
  • Summary

Module 3: ARM Templates

  • Objectives
  • ARM Templates
  • Implementing ARM Templates
  • ARM templates and Visual Studio
  • Logging, Troubleshooting and Diagnostics
  • Provisioning and Configuring Environments with Azure DevTest Labs
  • Practical Exercises
  • Review Questions
  • Summary

Module 4:Azure IaaS and PaaS, Environment Configuration and

  • Deployment, and Optimization
  • Objectives
  • Environments in IaaS, PaaS and Containers
  • Environment and Configuration Deployment Pipelines
  • Environment and Configuration Deployment Pipelines with OSS
  • Practical Exercises
  • Review Questions
  • Summary

Module 5: Final Exam

  • Validated Lab
  • Final Exam (Graded)
  • Post Course Survey
  • Post-Course Survey
Continuous Integration and Continuous Deployment

Learn how to implement the DevOps practices of Continuous Integration and Continuous Deployment with Visual Studio Team Services (VSTS) and Microsoft Azure.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

This course provides knowledge and skills to implement the DevOps practices of Continuous Integration and Continuous Deployment with Visual Studio Team Services (VSTS) and Microsoft Azure.
The course will provide knowledge of continuous integration builds, automated testing and continuous delivery and deployment build, test, and release to the next level by understanding how they function within a DevOps development environment.

The course will also cover how VSTS integrates with third party and OSS tools, such as Git and Jenkins,
The course is intended for IT Professionals who are interested in crossing over into development territory towards the goal of establishing a DevOps culture, and Developers who want to learn more about the development processes of DevOps in order to extend upon Agile processes for rapid delivery.

Students curious about DevOps practices as a culture shift, but do not have extensive experience with VSTS or Microsoft Azure, should be able to follow the procedural and expository explanations of continuous integration and continuous delivery.

What you’ll learn

  • Configure Git and TFVC version control options for Continuous Integration
  • How to manage Technical Debt and the sources and impact of it.
  • How to create a continuous integration build using VSTS
  • Package Management Integration options such as NuGet, SemVer, GitVersion and others.
  • Agents and Pipelines, including how to release pipelines
  • Continuous Delivery and Release Management strategies
  • Integrating automated testing into your release pipelines using Selenium, Coded UI Testing, Microsoft Test Manager
  • Understand the various availability and performance testing options
  • Automated provisioning and de-provisioning of infrastructure and databases D
  • Deployment groups, feature flags and recovery automation
  • Database deployment in release pipelines
  • Continuous deployment with Jenkins and VSTS

Prerequisites

Students who take this training should understand:

  • Experience working in an organization delivering software,either in development or in operations
  • Knowledge and experience working with Cloud based solutions,experience using Microsoft Azure.
Configuration Management for Containerized Delivery

Gain the skills and knowledge to create, deliver and configure containerized applications in DevOps environments.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

Containers can run on your local machine but the real power lies in the fact that these exact same containers can also run in production, giving you a very nice and consistent way of bringing software to production.
In production environments containers run on a set of machines managed by cluster orchestration software, and this course will show you how you can create, deploy and configure your containerized applications on Microsoft Azure using Azure Container Service (ACS) and Azure Service Fabric. (ASF)

The course will cover management and operation of your container cluster, teaching how to configure the cluster, and how to manage them so that you have constant insights into how your application is doing in production, and how you can scale up and down based on demand, and deploy containers without having any downtime.
You will learn how a cluster works, how to set it up and how you can manage your production environments. Then you will learn how to deploy your containers in a cluster using continuous delivery infrastructure like Visual Studio Team Services (VSTS).

What you’ll learn

  • Create container images
  • Manage multiple containers using tools like Docker
  • How to set up a production cluster to host your containers
  • Deploy containerized applications to different orchestrators that are available in Azure Container Service (ACS) i.e. DC/OS, Docker swarm and Kubernetes
  • How to scale up the clusters, manage data and set up monitoring to proactively keep track of the clusters health and its deployed applications
  • Create, monitor and manage a Service Fabric cluster.
  • Manage and maintain Azure hosted clusters and containers in a better way.
  • Deploy containerized applications to one of the available cluster container solutions, using continuous delivery pipelines.
  • Manage these clusters in production scenarios.

Prerequisites

Students who take this training should understand:

  • Good working Knowledge of Microsoft Azure
  • Knowledge of Azure Resource Manager (ARM) and Templatization
  • Knowledge of general application development and deployment processes
DevOps Testing

This course provides you with an overview of core testing concepts and best practices and guides you to implementing various testing types in DevOps environments.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

In this course, you will learn about different test types, usage scenarios and the benefits of a Test-Driven development approach.

We will cover best practices around the usage of Unit, API (Integration), Performance, Functional, Acceptance, Automated (Coded) UI and Exploratory testing.

You will learn how to create and analyze these tests using various tools such as Visual Studio Team Services (VSTS), Visual Studio, Application Insights and third-party frameworks such as Selenium.

What you’ll learn

  • Understand various testing types and usage scenarios
  • Test-Driven development and it’s benefits
  • How to create and implement Unit tests and the elements of a good test
  • How to create basic API tests (or Integration tests)
  • Performance testing and how to create a performance test using
  • Visual Studio and Visual Studio team services (VSTS)
  • How to analyze performance test results using Application Insights
  • Exploratory testing in the context of visual Studio and Microsoft Test Manager

Prerequisites

Students who take this training should understand:

  • Experience working in an organization delivering software.
  • Basic understanding of DevOps or completion of the Introduction to DevOps Practices.
DevOps for Databases

Learn about the challenges and uncover the solutions for incorporating your database into a DevOps software development process.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

This course examines the challenges and solutions of incorporating your database into a DevOps software development process. This course will help you understand the challenges of working with various data stores while developing and changing your software at a rapid pace.

You will learn where and how databases can fit into DevOps processes.

The course will cover:

  • Committing database code to a version control system (VCS), Continuous Integration and unit testing database code.
  • Release management for databases, in areas such as release gates, deploying releases to multiple environments, validating deployments with smoke tests and rolling back deployments.
  • Monitoring database code, branching and merging database code, cross databases dependencies, upgrading multiple databases, federated databases, dark launching, error handling and cleaning up technical debt with databases.

Finally, while the course will primarily use Microsoft SQL Server (and tailor our examples for it), other relational or non-relational database platforms have similar concepts that can be applied.

What you’ll learn

  • Define DevOps and understand DevOps in relation to Databases
  • Identify the challenges of using databases that are separate from other software languages and platforms
  • Include your database code alongside other application code in a version control system (VCS)
  • Set up a Continuous Integration (CI) platform for your database code
    Write and include automated unit tests for your database code
  • Develop an automated release process that deploys database changes to both on premise and cloud databases
  • Implement branching and merging for your database code
  • Instrument and monitor the database after deployment

Prerequisites

Students who take this training should understand:

  • Understand basic database development
  • Understand relational database development
  • Knowledge and experience using basic version control
  • Knowledge how to execute scripts against a database platform
Application Monitoring and Feedback Loops

Learn about general application monitoring and feedback loops practices and principles, to ensure your software applications perform in the expected manner and scope.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

This course will cover general application monitoring and feedback loop practices and principles, including different kinds of feedback. You will learn how feedback is used in different stages of the value stream, and its benefits. You will learn about the different kinds of telemetry, who can benefit from it and how it is used to collect data from monitoring.

You will be introduced to Application Performance Management, the monitoring and management of performance and availability of software applications.

We will also cover Health and Performance Monitoring with Application Insights, including which features it contains, how to use it to monitor your application availability, usage, and performance and diagnostics.

The course also covers Log Analytics, including Operations Management Suite (OMS) Log Analytics. It will cover how to setup and configure Log Analytics for data collection and how to use Log Analytics to search and analyze data. It also covers OMS solutions as well as how to configure visualizations and how to configure alerts.
Finally, the course will cover Third-Party Monitoring Tools, including New Relic, Loggly and Nagios Core.

What you’ll learn

  • Understand general application monitoring and feedback loop practices and principles.
  • The different kinds of feedback and how they are used in different stages of the value stream, and their benefits.
  • How to set up up monitoring with Azure Application Insights
  • Monitor web application availability
  • Search and analyze monitoring data in Application Insights
  • How to use and query Application Insights data and Application Maps
  • How to set up, configure, query and analyze data collection on Operations Management Suite (OMS) Log Analytics
  • How to set up alerts in OMS and integrate Application Insights
  • Configure and monitor a web application with New Relic
  • Configure and use Loggly

Prerequisites

Students who take this training should understand:

  • Experience working in an organization delivering software
  • Knowledge and experience of Microsoft Azure
Architecting Apps (2 training options available)

DevOps for Mobile Apps ( Option 1 )

This course will cover how to build, test, and deploy mobile apps in a DevOps environment using Visual Studio App Center (VSAC).

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

Build, test, and deploy mobile apps in a DevOps environment using Visual Studio App Center (VSAC). In this course you will learn how to set up and manage multiple applications, organizations, testers, and teams using App Center Build, App Center Test, and App Center Distribute.

DevOps practices using VSAC help development teams keep builds and releases organized as they are distributed to collaborators, teams of testers, customer beta testers, all the way into app stores like Google Play and iTunes. This course covers the automation of time-consuming tasks such as builds and build signing within a streamlined workflow. Learn how to test on multiple physical devices by creating device sets and choosing from over twenty-five hundred devices and over four hundred configurations of iOS and Android versions.

What you’ll learn

  • How to sign up and get started with Visual Studio App Center (VSAC)
  • How to connect to repositories and build applications in VSAC
  • How to test applications using VSAC
  • How to build and deploy applications using VSAC

Prerequisites

  • Basic knowledge of application development process and practices
  • Basic understanding of mobile app development on iOS and/or
  • Android platforms
  • Understanding of general DevOps practices

Course Syllabus

Students who take this training should understand:

  • Module 0: Course Introduction

    • Course Overview
    • Scope
    • Prerequisites
    • Overview of Hands-on labs
    • Pre-course Survey
  • Module 1: Intro to Visual Studio App Center (VSAC)

    • What is Visual Studio App Center (VSAC)
    • Manage Apps
    • Manage Organizations
    • Lab: Getting Started
    • Module Review Questions
  • Module 2: Building Apps with VSAC

    • Overview
    • Configure a Build
    • Sign a Build
    • Test App on Real Device
    • Lab: Connect, Configure, and Test a Build
    • Module Review Questions
  • Module 3: Testing Apps with VSAC

    • Overview
    • Getting Started
    • Prepare Tests for Upload
    • Submit Tests
    • Review Test Results
    • Lab: Create Tests and Run on Devices
    • Module Review Questions
  • Module 4: Distributing Apps with VSAC

    • Overview
    • Release a Build
    • Manage/Distribution Groups
    • Install a Build
    • Distribute to Stores
    • Lab: Distribute
    • Module Review Questions
    • Course Ending
  • Final Exam
  • Post Course Survey
Architecting Distributed Cloud Applications ( Option 2 )

This technology agnostic course will provide you with knowledge and skills for architecting distributed cloud applications, taking DevOps practices and principles into consideration.

Summary

Length
4 weeks (2 to 4 hours per week)
Level
Advanced
Language
English

About this course

This technology-agnostic course begins by explaining the benefits of distributed cloud applications with an emphasis on maintaining high-availability and scalability in a cost-effective way while also dealing with inevitable hardware and software failures.

The course also cover, Microservices and containers, Networking communication, Messaging communication, Versioning, upgrading and configuration, Data storage services and Disaster recovery.
This course is for anyone considering or actively working on a distributed cloud application. It is designed to provide you with a thorough understanding of these concepts, the various pros and cons of specific technologies, and the resilient patterns that are heavily used by distributed cloud applications. This knowledge will help you to easily build cost-efficient and fault-tolerant systems.

The course contains labs to practice your learning, review questions for self-assessment, and a final exam to validate learning. A score of 70% is required to pass the final exam and receive a certificate for the course.

What you’ll learn

  • Distributed cloud application fundamentals, including Why Cloud Apps? embracing failure, orchestrators, when to split a monolith into microservices, 12-factor services, and when and how to use Containers.
  • Networking communication, including service scalability and availability, how to define/manage/version service endpoint APIs, and how to perform fault-tolerant network communication.
  • Messaging communication, including the benefits of messaging with queues and fault-tolerant message processing.
  • Versioning, Upgrading, and Configuration, including various ways to version your service’s code, how to shut down a service instance gracefully, and how to configure and share secrets with a running service.
  • Data storage services, including storage service considerations, object/file storage services, relational and non-relational databases, partitioning, replicas, eventual consistency patterns (CQRS, Event sourcing, Saga), concurrency patterns, and data schema versioning.
  • Disaster recovery, including backup/restore, recovery point and time objectives, as well as Active/Passive and Active/Active architectures.

Prerequisites

  • Cloud Computing
  • System architecture and design
  • A language, such as C# or C++

Course Syllabus

Students who take this training should understand:

Welcome to Architecting Distributed Cloud Applications

  • Before You Start current section
  • Course Overview
  • Pre-Course Survey
  • Distributed Cloud Application Fundamentals
  • Microservices
  • Containers
  • Module 1 Review Questions

Module 2 | Networking Communication

  • Networking Communication
  • Service APIs
  • Fault-Tolerant Network Communication
  • Module 2 Review Questions

Module 3 | Messaging Communication

  • Messaging Communication
  • Module 3 Review Questions

Module 4 | Upgrading, and Configuration

  • Versioning Service Code
  • Shutting Down and Reconfiguring Services
  • Module 4 Review Questions

Module 5 | Leader Election

  • Leader Election
  • Module 5 Review Questions

Module 6 | Storage Services

  • Introduction to Data Storage Services
  • Object Storage Services
  • Database Storage Services
  • Data Consistency
  • Versioning Data Schemas
  • Backup, Restore and Disaster recovery
  • Module 6 Review Questions

Module 7 | Final Exam

  • Final Exam
  • Post-Course Survey
Microsoft Professional Capstone: DevOps

The capstone project is offered directly by Microsoft and can only be done once per quarter: in January, April, July and October.

Enroll for the full MPP track here in the month prior to the one the capstone starts in, using the Microsoft account you used to register on Azure Academy so that your progress is synced.

To have your progress synced with Azure Academy and to be eligible for the capstone project you have to have a Certificate of Completion for each one of 8 required courses from Azure Academy.

Need help?

If you have questions about our courses, check our FAQs or get in touch with us here.