Lessons learned
This is the place for concise, opinionated guidance shaped by real implementation experience.
SQL Server failover cluster migration to Azure
Migrating a SQL Server Failover Cluster Instance (FCI) or Always-On Availability Group to Azure VMs is one of those tasks that sounds straightforward but has specific Azure platform constraints that don't exist on-premises.
Windows Server features required for clustering
Before anything else, the following Windows Server features need to be enabled on every node that will participate in the cluster:
- Failover Clustering -- the obvious one
- Multipath I/O -- required for shared disks to work in the cluster

Why Azure requires a load balancer (but on-prem doesn't)
This is the gotcha that isn't obvious until you've debugged it. On-premises, the ARP table maps directly to the actual MAC address of the machine, so Layer 2 failover works natively -- when the active node goes down, the cluster IP floats to the standby node's MAC address.
In Azure, the MAC address is never exposed to the guest OS. L2 failover cannot happen because it relies on physical address resolution. The load balancer acts as a proxy for the cluster IP, health-probing the nodes and routing traffic to whichever one is active.


The load balancer is only needed in a single-subnet configuration. If I deploy the AG across multiple subnets, each node gets its own listener IP in its own subnet, and the client connects to whichever is active via DNS -- no load balancer required.
Multi-subnet is the simpler path
I've moved to preferring multi-subnet AG configurations in Azure whenever possible. It avoids the load balancer complexity entirely and behaves more predictably. The tradeoff is that the application connection string needs MultiSubnetFailover=True, but most modern SQL drivers handle this natively.
Migration scripts
Microsoft provides PowerShell scripts for SQL migration scenarios in azure-docs-powershell-samples. I've used these as a starting point but always ended up customizing them for the specific environment.