5.1. Virtual Machines (VMs)
Understanding Azure Virtual Machines
A Virtual Machine in Azure is a software-based emulation of a physical computer. It provides the functionality of a physical server, but it is hosted and managed within Microsoft’s Azure cloud infrastructure. Each VM includes a virtual processor, memory, storage, and networking capabilities, and it allows you to run an operating system (OS) and applications without the need to invest in physical hardware.
The beauty of Azure VMs lies in their agility and versatility. You can create a new VM within minutes, configure its hardware and software to suit your needs, and scale your resources up or down as your requirements change.
Types of Azure VMs
Azure offers a variety of VM sizes and types, each optimized for different workloads:
● General Purpose VMs: Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.
● Compute Optimized VMs: High CPU-to-memory ratio. Suitable for medium traffic web servers, network appliances, batch processes, and application servers.
● Memory Optimized VMs: High memory-to-CPU ratio. Designed for relational database servers, medium to large caches, and in-memory analytics.
● Storage Optimized VMs: High disk throughput and IO, and are ideal for Big Data, SQL, and NoSQL databases.
● GPU VMs: Specialized VMs targeted for heavy graphics rendering and video editing, as well as model training and inferencing (ND, NC, and NV series).
● High Performance Compute VMs: The fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).
Deploying Azure VMs
Deploying a VM in Azure is a straightforward process that involves selecting the desired OS, choosing a VM size, configuring settings, and defining the network and storage components. The Azure portal, PowerShell, Azure CLI, and ARM templates are all available to help deploy VMs.
Operating Systems and Software
Azure supports a wide range of operating systems, including multiple versions of Windows Server, Ubuntu, Red Hat Enterprise Linux, CentOS, Debian, and even specialized OS types like Oracle Linux. In addition to the OS, you can deploy a wide array of software environments and applications.
Networking and Connectivity
Each VM must be associated with an Azure Virtual Network, allowing it to communicate with other VMs, Azure services, and the internet. Networking tools such as VPN Gateway and Azure ExpressRoute facilitate secure and reliable cross-premises connectivity.
Storage Options
Azure VMs use virtual hard disks (VHDs) for storage, which are stored in Azure Blob storage. You can choose between standard HDDs, standard SSDs, and premium SSDs, depending on your performance and throughput needs.