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