Description
Microsoft Azure is one of the most popular cloud services platforms used by businesses, making it an important tool for cloud computing professionals to have. The Cloud DevOps using Microsoft Azure Nanodegree programme teaches students how to deploy, test, and monitor cloud applications on Azure, preparing them for the AZ-400 DevOps Engineer Expert certification exam.
Syllabus:
Course 1: Azure Infrastructure Operations
Introduction to DevOps & Infrastructure
- Identify the motivation and benefits of using a DevOps model
- Identify stakeholders for your work
- Create documentation to enable reusability of work
Azure Infrastructure Fundamentals
- Create and manage resources in Microsoft Azure using the portal and the Command Line Interface
- Optimize virtual machine performance using Azure Monitor
- Assign and manage user roles in Azure Active Directory
Azure Security Best Practices
- Identify security risks using Azure Security Center
- Manage Network Security groups to ensure secure infrastructure access
- Write, deploy, and manage Azure Policies LESSON FOUR HTML Basics
- Deploy infrastructure as code using Terraform
- Use variables, loops, and conditionals to improve deployment automation
- Create reusable virtual machine images with Packer
Project: Deploying a Web Server in Azure
The load-balanced web server is one of the most common objects on the modern internet. In this project, you will manage cloud infrastructure by writing infrastructure as code with Terraform and Packer. You will first create a policy that ensures all indexed resources are tagged using these infrastructure as code tools. Then, for deploying a custom web server image, you will create a reusable Terraform module and Packer template. Finally, you will use Packer to deploy your VM image and Terraform to create an infrastructure configuration that will use this image to create a set of load balanced web servers.
Course 2: Agile Development with Azure
Introduction to Agile Development with Azure
- Use modern Agile project management methodologies
- Implement Kaizen, or continuous improvement in their organization
- Understand how to use five why’s methodological to perform root cause analysis of process inefficiencies
Agile Planning and Communication
- Use Trello and Spreadsheets to manage projects
- Build and participate in effective technical teams
- Use weekly demos to create effective technical communication and accountability
Continuous Integration
- Build continuous integration using Github Actions
- Master the use of Makefiles for automation
- Use pylint and pytest to increase the quality of Python projects
Continuous Delivery
- Build continuous delivery pipelines using Azure Pipelines
- Use Azure App Services to deploy PaaS (Platform as a Service) applications
- Understand the concepts involving GitOps in production systems
Project: Building a CI/CD Pipeline
In today's digital world, establishing a Continuous Integration/Continuous Delivery (CI/ CD) pipeline is critical for enabling high-quality customer service experiences. In this project, you will create a Continuous Delivery pipeline that uses Azure Pipelines to deploy a Flask Machine Learning application to Azure App Services. To begin, you'll use Github Actions, a.txt file, and application code to run an initial lint, test, and instal cycle on a machine learning application running in Flask in Azure App Services. Then, using Azure Pipelines, you'll integrate Continuous Delivery to automatically deploy tested application changes to production. Finally, you will test the prediction capability of your machine learning application that has been deployed into production and create a demo screencast that demonstrates your expertise in Azure Continuous Delivery.
Course 3: Ensuring Quality Releases (Quality Assurance)
Creating and Deploying Azure Cloud Infrastructure
- Use terraform and IaC concepts to standardize the creation and configuration of a test environment.
- Understand the importance of consistent test environments so that the only thing to change is the version of the application.
- Use a CI/CD pipeline to execute automated testing tasks to test an application after its built and after its deployed to a test environment.
Performance Testing
- Learn about the different types of performance testing
- Use Apache JMeter to create performance test suites
- Understand when to use each type of performance test
- Generate a report which shows the results of the performance tests
Functional UI Testing with Selenium
- Learn about how functional testing is different than other types of testing
- Use selenium to create functional UI tests
- Quickly find and use CSS Selectors on a page in a functional test
- Understand the importance of creating strong test cases in Selenium
Integration Testing with Postman
- Learn about integration testing and when it is used
- Use Postman to create an integration test suite
- Understand the importance of data validation and the benefits it provides to stakeholders
Azure Observability
- Used Azure Monitor to create alerts
- Learned about creating only alerts that you trust
- Used Azure Log Analytics to ingest a custom log file
- Created queries in Azure Log Analytics so the root cause of a failure may be found quickly
Project: Ensuring Quality Releases
In this project, you will use Microsoft Azure's industry-leading DevOps tools to create disposable test environments and run a variety of automated tests with the click of a button. You'll also monitor and provide insight into your application's behaviour, as well as identify root causes by querying the application's custom log files. By the end of this project, you will have built a CI/CD pipeline capable of deploying an application to a test environment, automatically running load, integration, and functional tests, and ingesting logs and data from those tests to determine where failures may have occurred.