Implementing Application Infrastructure in Azure
This course will cover how to implement Infrastructure as Code (IaC) and configuration management. These lesson will also illustraite how to provision Azure infrastructure using common automation tools, and how to deploy an application infrastructure using various Azure services and deployment methodologies.
This Course is intended as a stand-alone course that can also be taken as part of a learning path, in conjunction with other courses, being developed, to work towards the AZ-400 Azure DevOps Expert Exam.
As we start this course, this lesson provides an overview of what we cover in the course and how it can fit in with other courses around Azure DevOps.
About the Training Architect
In this lesson, we have a quick introduction to my background and experience as we move into Implement Application Infrastructure in Azure DevOps. I enjoy chatting with people and helping them study, so please feel free to reach out to me directly via Slack or in the community if you have any questions or thoughts on the course.Email: email@example.com Twitter: @tim_lawless LinkedIn: Tim-Lawless
Design an Infrastructure and Configuration Management Strategy
Analyze Existing and Future Hosting Infrastructure
This lesson looks at considerations around analyzing On-Premises and Azure environments, which is a key aspect to any successful cloud migration and optimized application Infrastructure. The tools looked at include Azure Migrate and Azure Advisor.
Analyze Existing Infrastructure as Code (IaC) Technologies
In this video, we will discuss the various Infrastructure as Code options to deploy resources and the Configuration Management tools available. This helps us understand the different tools and there intended purpose. In the lesson, we will look at both the Microsoft-based options and some of the third-party tools available.
Design a Strategy for Managing Technical Debt on Templates
Here, we look at Technical Debt and how to track and manage it. This is important to the success of any IT project. We will also see an example of an Azure DevOps Extension, NDepend, that can assist in tracking Technical Debt on Azure DevOps Projects.
Design a Strategy for Using Transient Infrastructure for Parts of a Delivery Lifecycle
This looks at the inefficiencies and risks involved with Transient Infrastructure. We will also look at some of the tools and techniques that can help manage track and control these changes over time. This helps us understand some of the tools and techniques covered in the following lessons.
Design a Strategy to Mitigate Infrastructure State Drift
This lesson looks at the problems caused by Configuration Drift and ways of managing it. It's important to understand the issues we're trying to solve and some of the tools and processes that can help mitigate and manage drift.
Implement Infrastructure as Code (IaC)
Create Nested Resource Templates
This looks at the process and structure of using linked and nested ARM Templates in your Azure environment. We also look at the benefits of approaching IaC this way and some examples to understand how it could be used. Azure Traffic Manager Demo Setup
Manage Secrets in Resource Templates
This lesson looks at managing and creating secrets with Azure Key Vault using ARM Templates. This will be the main way of managing security credentials with ARM Template and in Azure, which is featured in this course.
Provision Azure Resources
Here, we look at the structure of ARM Templates and different ways of deploying them. ARM Templates are the core strategy for managing Infrastructure as Code in our environment. Links Mentioned in the Lesson Azure QuickStart Templates: https://github.com/Azure/azure-quickstart-templates
Recommended Infrastructure as Code (IaC) Strategy
This lesson looks further at ARM Templates and reviews some of the best practices to be aware of when managing your Infrastructure as IaC. This allows us to create optimized well-managed Infrastructure and Architecture. Links Mentioned in the Lesson Azure QuickStart Templates: http://download.microsoft.com/download/8/E/1/8E1DBEFA-CECE-4DC9-A813-93520A5D7CFE/World%20Class%20ARM%20Templates%20-%20Considerations%20and%20Proven%20Practices.pdf Best Practices Article has moved to new site: https://thinkrethink.net/2017/12/06/best-practices-using-azure-resource-manager-templates/ Azure QuickStart Templates: https://github.com/Azure/azure-quickstart-templates
Recommended Appropriate Technologies for Configuration Management
This lesson helps compare Third-Party Deployment and Configuration Management tools to help us understand which tools are most appropriate for which types of tasks and environments.
Manage Azure Kubernetes Service Infrastructure
Provision Azure Kubernetes Service
This lesson looks at a number of ways of deploying Docker containers and managing them at scale with Kubernetes. This is done using Azure Kubernetes Services, ARM Templates, and the Azure Portal. This is an important strategy to integrate into Azure DevOps Projects for deployment.
Create a Deployment File for Publishing to Azure Kubernetes Service
This lesson shows an example of creating a Kubernetes cluster via CLI using a YAML deployment file. Microsoft Documentation for Voting App Example: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough Voting App Yaml Git Fork for download if desired: https://github.com/timlawless-la/azure-vote How to Setup the Azure CLI: https://linuxacademy.com/cp/courses/lesson/course/4218/lesson/1/module/345 All commands used if you wish to follow along: Bash:
<!---Check location, in terminal (Must be in a deployment file folder)---> ls <!---Install AKS for CLI---> Az aks install-cli <!---Check Azure CLI version---> az --version <!---Create Resource Group---> az group create --name KubeTestingRg --location eastus <!---Deploy Cluster---> az aks create --resource-group KubeTestingRg --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys <!---Get and set credentials---> az aks get-credentials --resource-group KubeTestingRg --name myAKSCluster <!---Check Nodes---> kubectl get nodes <!---Confirm location for deployment file---> Ls <!---Deploy Yaml file---> kubectl apply -f azure-vote.yaml <!---Watch node to check for External IP---> kubectl get service azure-vote-front --watch <!---Break watch command---> Hold ctrl-C on keyboard
Develop a Scaling Plan
This lesson looks at options and consideration for scaling AKS Clusters in the Azure Portal and via CLI. These methods help harness the power of containers at scale. All commands used if you wish to follow along: Bash:
az aks get-credentials --resource-group KubeTestingRg --name myAKSCluster az aks show --resource-group KubeTestingRg --name myAKSCluster --query kubernetesVersion --output table az aks scale --resource-group KubeTestingRg --name myAKSCluster --node-count 10 kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10 kubectl get hpa
Implement Infrastructure Compliance and Security
Implement Compliance and Security Scanning
This lesson looks at scanning for a security vulnerability in Azure DevOps environments. It's important to build security scanning into your DevOps build process. This example looks at using the Whirtesources Bolt Extension.
Prevent Drift by Using Configuration Management Tools
This lesson looks at ways of Managing Configuration Drift, outside of DSC and Custom Script Extensions, which will be the focus of upcoming lessons. It's important to understand the range of tools available to us to manage configuration and prevent drift, as it takes a combination to maintain a healthy environment.
Automate Configuration Management by Using PowerShell Desired State Configuration (DSC)
This lesson looks at managing Configuration Drift using PowerShell Desired State Configuration (DSC). This is one of the most important tools for configuration management in Azure. This example also shows the execution via Azure Automation Accounts.
Automate Configuration Management by Using a VM Agent With Custom Script Extensions
This lesson looks at an alternative method of managing configuration - Custom Script Extensions and looks at an example of deploying this via an ARM Template. It is important to understand this method as it covers a range of scenarios outside of DSC.
Set up an Automated Pipeline to Inspect Security and Compliance
This lesson looks at a range of security tooling both in Azure and Azure DevOps. It's important for this course to understand the wide range of options available on the platform and when to use them.
Course Wrap Up
Conclusion and Next Steps
In this lesson, we take a look back at the topics and tools covered in this course, and we also recommend some next steps and future courses that will help your Azure DevOps development. I enjoy chatting with people and helping them with their studies, so please do feel free to reach out to me directly via Slack or in the community if you have any questions or thoughts on the course.Email: firstname.lastname@example.org Twitter: @tim_lawless LinkedIn: Tim-Lawless
Take this course and learn a new skill today.
Transform your learning with our all access plan.Start 7-Day Free Trial