Objective 2.1 – Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)


Today’s 70-533 goal is to talk about -- Objective 2.1 -- Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs). 70-533 -- Implementing Microsoft Azure Infrastructure Solutions is one of the exams that you need to take in order to achieve the MCSE status in the Cloud Platform pillar.

In this post, we will be looking at the first part of the objective under Create and Manage Compute Resources and we will be covering the below objectives:

Identify workloads that can and cannot be deployed

This is a very generic objective that’s listed here. The idea is that Microsoft wants you to know what types of workloads are supported/unsupported on the Azure platform.

Now there is a lot that needs to be covered for this section, so I will just guide to a page maintained and updated by Microsoft regularly that applies to Microsoft Azure Virtual Machine running Windows, Microsoft Azure Cloud Services.

Microsoft server software support for Microsoft Azure virtual machines

All of us know that the technology world went crazy when Satya Nadella mentioned Microsoft Loves Linux a few years and looks like Microsoft really does.

Microsoft Azure has an Endorsed Distribution list for Linux VMs where the Linux image is provided by the vendor in the Azure Marketplace and looks like Microsoft is working with various other vendors to keep that list growing.

And these vendors include CentOS, CoreOS, Debian, Oracle Linux, RedHat Enterprise Linux, SUSE Linux Enterprise, openSUSE, and Ubuntu.

If you wish to use any other distribution of Linux not listed above, you could always create a new VM in Azure with that Linux OS.

For more information on supported distributions and version, refer to the below document from Microsoft.

Linux on distributions endorsed by Azure

Along with this, there are certain types of workloads that are a better fit for hosting in an Azure IaaS environment than others. Here are some examples:

  • Highly available service workloads such as commercial online stores.
  • Unpredictable growth workloads like those experienced by small, but rapidly expanding organizations or short-term increased sales of fad items.
  • Spiking workloads, such as those experienced by sites providing news services.
  • Steady workload scenarios where organizations simply want to offload their infrastructure to the cloud.
  • Periodic workloads such as retail sales spurts during holidays.

Run workloads including Microsoft/Linux

I have combined the two subtopics together because we will be looking a lot more into the different types of VMs in the future articles and since this topic here again just to keep you appraised of what are the reasons that you would want to run Azure VMs.

Azure Virtual Machines (VM) is one of the several types of on-demand, scalable computing resources that Azure offers. An Azure VM from IaaS perspective gives you the flexibility of virtualization without having to buy and maintain the physical hardware that runs it.

Similar to on-premises VMs, you still need to maintain the Azure VM by performing tasks, such as configuring, patching and installing the application software that runs on it.

Below are the most common reasons as to why you would want to use Azure VMs:

  • Development and test – Azure VMs offer a quick and easy way to create a computer with specific configurations required to code and test an application.
  • Applications in the cloud – Because demand for your application can fluctuate, it might make economic sense to run it on a VM in Azure. You pay for extra VMs when you need them and shut them down when you don’t.
  • Extended datacenter – Virtual machines in an Azure virtual network can easily be connected to your organization’s network.

You would like to make sure that there are other things that you consider when using Azure VMs such as:

  • Name: Each VM gets a name up to 15 characters.
  • Location: Region in which VHD’s are stored. You can read my article on regions here.
  • Size: There are various sizes of VMs available. This will eventually come down what computing resources you need and cost that is associated with it.
  • VM Quota Limits: For example, you can only have 10000 VMs per region.
  • Disk and Images: From the marketplace or your own image.
  • Extensions: Additional capabilities such as automation and diagnostics.
  • Availability: Uptime requirements, geo-distribution, service level agreements, and accessibility.
  • Backup: How would you want to backup the VM. For e.g.: Recovery Services Vault is provided by Microsoft.

Create VMs

Microsoft Azure provides you different ways to create a virtual machine. Below are the various ways that you could create a VM depending on the use case:

Azure portal

Using the Azure portal is a simple way to try out a virtual machine, especially if you’re just starting out with Azure. Below article explains how to create a virtual machine running Windows by using the portal, connect to the virtual machine, and then stop the virtual machine.

Create a virtual machine running Windows using the portal

Or if you want a good introduction to Azure Virtual Machines, you can refer to my article here.


Virtual machines require a combination of resources (such as an availability sets and storage accounts). Rather than deploying and managing each resource separately, you can create an Azure Resource Manager template that deploys and provisions all of the resources in a single, coordinated operation.

Create a Windows virtual machine with a Resource Manager template

We will be dealing more with the Azure Resource Manager template in other articles.

Azure PowerShell

If you prefer working in a command shell, you can use Azure PowerShell to perform many of the same tasks in Azure as you would with the portal. Azure PowerShell is a set of modules that provide cmdlets to manage Azure with Windows PowerShell, providing you with a lot more power and flexibility to test, deploy, and manage solutions and services delivered through the Azure platform.

Create a Windows VM using PowerShell

You can also refer to this article wherein I explain how to install Azure Powershell.

Visual Studio

Developers often need a way to quickly set up a development machine with a particular configuration in order to build, manage, and deploy cloud apps and services. Azure now provides a series of preloaded VM images with Visual Studio, Azure SDK, and tools, Windows Server, or Windows client (MSDN only). This saves a lot of time because the developer doesn’t need to spend hours setting up a lab environment and just uses the virtual machine or machines as long as is needed.

Azure Tools for Visual Studio

Azure CLI

The Azure CLI 2.0 is Azure’s new command-line experience for managing Azure resources. It can be used on macOS, Linux, and Windows. Azure CLI 2.0 is optimized for managing and administering Azure resources from the command line, and for building automation scripts that work against the Azure Resource Manager.

Create a VM using Azure CLI

You can refer to this article on how to get started with Azure CLI 2.0

Connect to a Windows/Linux VM

There are several ways that you can connect to both Windows and Linux Virtual Machines in Azure.

To connect to a Windows Virtual Machine, you could perform either of the two.

  • Remote Desktop Protocol (RDP) -- Port 3389
  • Windows Remoting (WinRM) -- Port 5985/5986

To connect using RDP, just click Connect as seen below and a Windows RDP Client can be used to connect to the VM.Objective 2.1 - Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)

To connect using WinRM, you need first add a firewall rule in the Network Security Group (NSG) of the Windows VM and going to the Networking settings.

Objective 2.1 - Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)

Apart from this, you will have to enable the WinRM service within the Guest OS and also make sure firewall rules are added so that we can access the VM.

Refer to the below article to enable WinRM within the Guest OS.

Setup WinRM Access for Azure VM

Linux VMs can be connected typically using SSH using keys or password. In the below example, I am using putty to connect to the Linux VM that I have created.

Grab the public IP address of the VM and use the username and password that was provided at the time of VM creation.

Objective 2.1 - Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)

Another way to connect would be using SSH keys which we will discuss later.

You can also connect to a Linux VM over RDP. In my case, I have installed an application called xrdp on my Ubuntu VM by running the following command.

sudo apt-get install xrdp

Next step is to add an inbound Firewall rule on the NSG of the Linux VM for port 3389 and you can get an RDP session to your Linux VM.

Objective 2.1 - Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)

Deploy Workloads

This is what we have been discussing above, so this section ambiguous and I have not been able to find anything else that fills this category.

Deploy Bring Your Own License (BYOL) Image

Azure now has Bring Your Own Licenses (BYOL) images of Windows Server and Windows 10 directly in the marketplace.

All you need to do is create a VM (by template or script) using the new marketplace BYOL image.

As seen in the below image, Microsoft will ask you if you have your own License that you can apply and you just have to select Yes.

Objective 2.1 - Deploy workloads on Azure Resource Manager (ARM) virtual machines (VMs)

Once the VM is created and you can try to RDP into it, you will be presented with the screen to insert the license key.

I hope this has been informative and thank you for reading!


About Author

I am Adil Arif, working as a Senior Technical Support Engineer at Rubrik as well as an independent blogger and founder of Enterprise Daddy. In my current role, I am supporting infrastructure related to Windows and VMware datacenters.

1 Comment

Leave A Reply