DevOps Practices and Principles Infrastructure as Code Continuous Integration and Continuous Deployment Configuration Management Testing in Continuous Delivery Pipelines Database Integration in Continuous Delivery Environments Application Monitoring Architecting Apps
Course 1: DevOps Practices and Principles
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.
Course Syllabus Skip Syllabus Description This course contains the following content
Module 0: Course Overview:
Welcome
Course Overview
Pre-Course Survey
Module 1: DevOps Fundamentals
Overview
Why DevOps
Sustainable DevOps
Compliance and security in DevOps
Change Agents and the DevOps Journey
Supplemental learning
Review Questions
Module 2: Deploy and Configure Standardized Environments
Overview
Environments in IaaS/PaaS and with Containers
ARM Templates and Desired State Configuration
Supplemental learning
Review Questions
Module 3: Build and Deploy Automatically to Production Often and Consistently
Overview
Automated Builds
Automated Deployments
Package Management and Containers
Lab: Continuous Integration and Continuous Deployment
Supplemental learning
Review Questions
Module 4: Test Automatically Before and In Production
Overview
DevOps Testing Concepts
Continuous Testing
Lab: Testing in Production
Supplemental learning
Review Questions
Module 5:Continuous Learning from Production to Improve and Scale Business results
Overview
Application Performance Monitoring
Exposure Strategies
Hypothesis-Driven Development
Lab: Application Performance Monitoring
Supplemental learning
Review Questions
Final Exam
Introduction to DevOps Practices: Final Exam
Post-Course Survey
Course 2: Infrastructure as Code
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.
Hide Course Syllabus Course Syllabus Skip Syllabus Description
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
Course 3: Continuous Integration and Continuous Deployment
This course is part of the Microsoft Professional Program in DevOps.
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
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Module 0: Welcome to Continuous Integration and Continuous Deployment
Course Overview
Before Starting This Course
Pre-Course Survey
Module 1 | Continuous Integration
Continuous Integration
Pipelines and Agents
Technical Debt
Module 1 Review Questions (Ungraded)
Module 2 | Package Management
Package Management
Module 2 Review Questions (Ungraded) current section
Module 3 | Continuous Delivery
Release Pipelines
Environments and Tasks
Test Automation
Advanced Delivery
Module 3 Review Questions (Ungraded)
Module 4 | Continuous Deployment
Continuous Deployment
Advanced Continuous Deployment
Module 4 Review Questions (Ungraded)
Module 5 | Practice Labs
Practice Labs
Final Exam (Graded)
Final Exam(Graded)
Post-Course Survey
Course 4: Configuration Management for Containerized Delivery
This course is part of the Microsoft Professional Program in DevOps.
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.
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Module 0 | Course Introduction
Welcome current section
Course Resources
Module 1 | Containerization
What is Containerization
Containers and Docker
Linux and Windows Containers
Where can you host containers?
DevOps and Containers
Continuous Delivery Pipeline and Containers
Module Summary
Review Questions
Practical Exercises
Module 2 | Azure Container Services
Introduction to Azure Container Services (ACS)
Creating and configuring ACS clusters
Running Multiple Containers
Configuring monitoring and logging
Scaling
Deployment
Module Summary
Review Questions
Practical EXercises
Module 3 | Service Fabric
Introduction to Azure Service Fabric (ASF)
Creating a Cluster
Programming Models
Configure monitoring and logging
Scaling
Deployment
Dealing with Data
Module Summary
Review Questions
Practical Exercises
Module 4 | Cross cutting concerns
Introduction
Patch Management
Security Concerns
Design for Failure
Review Questions
Practical Exercises
Final Exam
Final Exam
Post-Course Survey
Post-Course Survey
Course 5: DevOps Testing
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
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Module 0: Start Here
Welcome to the course!
Course Overview
Pre-Course Survey
Module 1: Testing Overview
Introduction
Types of Tests
Value of Automated Testing in DevOps
Test-Driven Development and its Benefits
Assessments
Supplemental Learning
Module 2: Unit Tests
Introduction
What is Unit Testing?
Elements of Unit Test
Techniques for Advanced Unit Testing
Create good unit tests using Visual Studio
Hands-on Lab: Creating Unit Tests
Assessments
Supplemental Learning
Module 3: Integration Testing
Introduction
Testing Overview
Integration Test in a standard development environment
Assessments
Module 4: Web Performance Tests and Load Tests
Introduction
Performance Testing
Create Web Performance Test Scripts
Run Load Tests
Analyze Performance Test Results
Hands-on Lab 1: Application Performance Monitoring
Hands-on Lab 2: Load Testing
Assessments
Supplemental Learning
Module 5: Functional Testing – Acceptance, UI, and Exploratory Tests
Introduction
Introduction to Functional Testing
Manual Acceptance Testing
Automated UI testing
Exploratory testing with Microsoft Test Manager
Hands-On Lab: Create a coded UI test
Assessments
Supplemental Learning
Module 6: Final Exam
Final Exam
Post-Course Survey
Course 6: DevOps for Databases
This course is part of the Microsoft Professional Program in DevOps.
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
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Module 0 | Welcome to DevOps for Databases
Course Overview
Microsoft Learning
Pre-Course Survey
Module 1 | Overview of DevOps
Module 1 Overview
Overview of DevOps
Database Development Issues in a DevOps Process
Database Development Paradigms
Collaboration
Module 1 Labs
Module 1 Review Questions
Database Development
Module 2 | Overview
Overview of DevOps for Databases
Committing Database Code to a VCS
Continuous Integration for Databases
Unit Testing Database Code
Module 2 Labs
Module 2 Review Questions
Module 3 | Releasing Database Changes
Module 3 Overview
Overview of Release Management
Deploying Releases
Release Gates
Release Details
Rollbacks
Module 3 Labs
Module 3 Review Questions
Module 4 | Advanced Topics
Module 4 Overview
Monitoring Your Systems
Branching and Merging Database Code
Provisioning
Best Practices
Advanced Customer Scenarios current Section
Module 4 Labs
Module 4 Review Questions
Final Exam
Final Exam(Graded)
Post-Course Survey
Course 7: Application Monitoring and Feedback Loops
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 set up 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
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Module 0 | Course Introduction
Course Overview
Module 1 | Application Monitoring Practices and Principles
Module 1 Objectives
General App Monitoring and Feedback Loop Practices and Principles
Application Performance Management
Module 1 Review Questions
Module 2 | Health and Performance Monitoring with Application Insights
Module 2 Objectives
Application Insights
Configuration
Search and Analysis
Analytics
Integration
Developer Tools
Module 2 Review Questions
Module 3 | Log Analytics
Module 3 Objectives
Log Analytics
Connected Sources
Data Sources
Log Search
Data Visualization
Alerts
Log Analytics REST API
Module 3 Review Questions
Module 4 | Integrating Third-Party Monitoring Tools
Module 4 Objectives
New Relic
Loggly
Nagios Core current section
Module 4 Review Questions
Final Exam
Final Exam
Post-Course Survey
Post-Course Survey
Course 8a: DevOps for Mobile Apps
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
Hide Course Syllabus Course Syllabus Skip Syllabus Description
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
Course 8b: Architecting Distributed Cloud Applications
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.
Hide Course Syllabus Course Syllabus Skip Syllabus Description
Welcome to Architecting Distributed Cloud Applications
Before You Start current section
Course Overview
Pre-Course Survey
Module 1 | Distributed Cloud Applications
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
Course 9: Microsoft Professional Capstone: DevOps
The DevOps capstone project will provide a hands on lab environment which will validate the skills and knowledge you have learned by taking the DevOps course series.
You will be provided with a series of tasks based around core subject areas covered in the Microsoft Professional Program, that you must build out and complete.
The tasks will cover areas such as automating infrastructure deployment using Azure Resource Manager (ARM) Templates, configuring and implementing continuous integration and continuous deployment scenarios in Visual Studio Team Services (VSTS), as well as implementing testing and application monitoring approaches and solutions.
Successful completion of the tasks will result in a pass grade in the validated labs. What you'll learn Learning Objectives:
Automating Infrastructure using Azure Resource Manager (ARM) Templates Implementing Continuous Integration solutions Implementing continuous delivery and continuous deployment solutions with Visual Studio Team Services (VSTS) Implementing Testing solutions such as Unit Tests and Testing in Production Implementing Application Monitoring solutions using Application Insights
Hide Course Syllabus Course Syllabus Skip Syllabus Description The DevOps Capstone Project contains:
Automation
Use ARM templates to deploy and configure Infrastructure in Azure
Continuous Integration
Implement Continuous Integration solution using Visual Studio Team services (VSTS)
Continuous deployment
Implement Continuous Deployment solution using Visual Studio Team Services (VSTS)
Testing
Implement Unit tests
Implement Testing in Production
Application Monitoring
Implement application monitoring solution using Application Insights