Start course

Microsoft Azure offers services for a wide variety of compute-related needs, including traditional compute resources like virtual machines, as well as serverless and container-based services. In this course, you will learn how to design a compute infrastructure using the appropriate Azure services.

Some of the highlights include:

  • Designing highly available implementations using fault domains, update domains, availability sets, scale sets, availability zones, and multi-region deployments
  • Creating event-driven functions in a serverless environment using Azure Functions and Azure Log Apps
  • Learning how Azure Kubernetes Service and Azure Service Fabric can enable microservices-based applications
  • Deploying high-performance web applications with autoscaling using Azure App Service

Learning Objectives

  • Design Azure solutions using virtual machines, serverless computing, microservices, and Azure App Service

Intended Audience

  • People who want to learn Azure fundamentals


  • General knowledge of IT architecture

I hope you enjoyed learning about Azure’s compute services. Let’s do a quick review of what you learned.

You can put an application’s VMs into availability sets to help it survive both planned and unplanned outages. An availability set lets you configure the number of update domains and fault domains.

Update domains put virtual machines into groups where the VMs will be rebooted at the same time. By default, your VMs will be put into 5 update domains, but you can set it to anything between 2 and 20.

To survive unplanned outages, put VMs into fault domains. The maximum number of fault domains is either 2 or 3, depending on the region. Fault domains are physically isolated from each other, but they’re still within the same datacenter, so they won’t protect you against a data center failure.

Availability zones are an alternative to availability sets. An availability zone is a physically separate zone within an Azure region. Putting VMs in separate availability zones will protect you against a data center failure.

To protect against a regional failure, you need to deploy your VMs in multiple regions, using an active/active or active/passive model.

To scale an application, you can use vertical scaling, which means to use bigger VMs, or horizontal scaling, which means to use more VMs. With a scale set, you can set metrics to autoscale the number of VMs in the set. 

Microsoft’s primary serverless offering is Azure Functions. It’s event-driven and it’s invoked using a trigger that you specify. Inputs and outputs are configured with bindings. 

Azure Logic Apps is simpler than Azure Functions and it doesn’t require you to write any code. It’s also invoked using triggers.

To implement a microservices architecture, you need to use containers. Azure Container Instances is not really suitable unless you have very simple requirements. Instead, you should use either Azure Kubernetes Service or Azure Service Fabric.

To deploy a web application that doesn’t have a microservices architecture, Azure App Service Web Apps is usually the best choice. 

Three typical ways to increase the performance of a web app are scaling, caching, and using an edge network. You can configure App Service to autoscale based on metrics and schedules. For caching, you can use Azure Redis Cache. To serve static content to users in different geographic regions, you can use a content delivery network.

To make a web app highly available, deploy a standby copy in the paired region. Use Azure Traffic Manager to handle routing during a failover.

Now you know how to design Azure solutions using virtual machines, serverless computing, microservices, and Azure App Service.

To learn more about Azure’s compute services, you can read Microsoft’s documentation. Also, watch for new Microsoft Azure courses on Cloud Academy because we’re always publishing new courses. Please give this course a rating, and if you have any questions or comments, please let us know. Thanks and keep on learning!


About the Author
Learning Paths

Guy launched his first training website in 1995 and he's been helping people learn IT technologies ever since. He has been a sysadmin, instructor, sales engineer, IT manager, and entrepreneur. In his most recent venture, he founded and led a cloud-based training infrastructure company that provided virtual labs for some of the largest software vendors in the world. Guy’s passion is making complex technology easy to understand. His activities outside of work have included riding an elephant and skydiving (although not at the same time).