Architecture best practices for Azure Local

Azure Local is Microsoft’s distributed infrastructure solution that extends Azure capabilities to customer-owned environments. It facilitates the local deployment of both modern and legacy applications across distributed or sovereign locations. Azure Local accelerates cloud and AI innovation by seamlessly delivering new applications, workloads, and services from cloud to edge, using Azure Arc as the unifying control plane.

Use the Azure hybrid options to determine whether Azure Local is appropriate for the workload's hosting and deployment requirements. Azure Local is suited to local AI inferencing, mission-critical operations that must continue during network outages, control systems that need near-real-time responses, and workloads with strict data sovereignty or regulatory requirements. Deploy it on a Premier Solution or Integrated System from the Azure Local catalog with a prescriptive bill of materials and hardware-vendor support.

This article is for enterprise and workload architects who understand hybrid systems and have working knowledge of Azure Local. Use the recommendations to evaluate platform and workload design decisions against the Azure Well-Architected Framework pillars, clarify responsibility boundaries, and identify improvements.

Use the Azure Local Well-Architected assessment to evaluate your design against these recommendations and identify prioritized improvements.

Technology scope

This article primarily applies to connected standard and rack-aware hyperconverged deployments of Azure Local. Guidance that doesn't depend on Storage Spaces Direct (S2D) also applies to connected disaggregated deployments.

This article doesn't apply to integrated multi-rack or small form factor deployments. It also doesn't cover disconnected operations or solution-specific design for Microsoft Sovereign Private Cloud, although Azure Local provides its infrastructure foundation. For help identifying your architecture, see Find your Azure Local deployment type.

The guidance covers two related areas:

  • Azure Local platform architecture
  • Workload architecture, using Azure Local VMs as the primary example

Note

Enterprise architects are responsible for platform architecture, and workload architects are responsible for workload architecture. Platform administrators, workload operators, and application developers implement and operate the resulting designs. Depending on your organization, one team or separate teams might own these responsibilities.

This article doesn't provide implementation guidance for specific workloads, including Azure Local VMs, Azure Kubernetes Service (AKS), Azure Virtual Desktop, Foundry Local on Azure Local (preview), or GitHub Enterprise Local (preview). Use the workload-specific guidance together with the recommendations in this article.

Reliability

The purpose of the Reliability pillar is to provide continued functionality by building enough resilience and the ability to recover fast from failures.

The Reliability design principles provide a high-level design strategy for individual components, workload flows, and the system as a whole.

Azure Local provides platform-level fault tolerance, but end-to-end workload reliability remains a shared design responsibility. Microsoft doesn't provide an SLA for the availability of an Azure Local instance or its workloads. SLAs for dependent Azure services apply only to the service operations, configurations, and failure conditions defined in each agreement. For example, the Azure Storage SLA covers eligible read and write requests to a qualifying storage account. When Azure Storage hosts a cluster cloud witness, that SLA doesn't cover the cluster's connection to the witness through the customer-managed network, firewall and proxy configuration, witness credentials, cluster quorum, physical machines, guest operating systems, applications, or operator actions. An Azure Storage account can therefore meet its SLA while an Azure Local workload is unavailable because of a local power failure, network interruption, platform maintenance, or configuration error. Review the scope, prerequisites, and exclusions of every applicable SLA. Use those commitments as inputs to workload reliability targets, but don't adopt an Azure service's availability percentage as the workload SLO. For more information, see How to read a service-level agreement.

Reliability design checklist

Start your design strategy based on the design review checklist for Reliability. Determine how Azure Local supports your workload availability and recovery requirements.

  • (Platform and workload architecture) Define reliability targets and map dependencies. Define an availability service-level objective (SLO), a recovery time objective (RTO), and a recovery point objective (RPO) for each workload flow. When you calculate these targets, include planned maintenance, platform updates, hardware support, Azure connectivity, facility reliability, and operator response time. For more information, see Reliability metrics.

  • (Platform and workload architecture) Analyze and test failure modes. Use failure mode analysis to model failures across facilities, Azure connectivity, machines, storage, networks, VMs, applications, and operations. Identify correlated failures and single points of failure, and assign mitigations and owners. Before production, after material changes, and on a documented schedule based on workload criticality, test failover, failback, and recovery. Record the results and remediate any test that misses the workload SLO, RTO, or RPO target.

  • (Platform architecture) Use Premier Solution hardware for new hyperconverged deployments. Design around and procure an exact Premier Solution SKU and bill of materials from the Azure Local catalog that meets the workload capacity, performance, fault-domain, location, and lifecycle requirements. Premier Solutions provide the highest level of partner integration and validation, arrive preinstalled and preconfigured, and integrate firmware and driver servicing with the Azure Local update process. Use an Integrated System only when no Premier Solution meets a documented requirement, and record the additional deployment, update, and support responsibilities in the architecture decision.

  • (Platform architecture) Select and design a deployment architecture that provides the required fault-domain isolation.

    • A standard hyperconverged deployment can contain 1 to 16 machines. Use a single-machine deployment only when workload interruption during machine failure or maintenance is acceptable. Use two or more machines for host-level high availability, and design redundant power, network adapters, switches, and storage paths to remove single points of failure.
    • A rack-aware cluster distributes a single hyperconverged instance across two local availability zones in separate racks, rooms, or buildings. It can tolerate a rack failure, but it requires a new deployment, equal machine counts in each zone, all-flash storage, a dedicated storage network, and round-trip latency of 1 ms or less. Supported sizes range from 1+1 through 4+4 machines. Rack-aware clusters don't support external SAN storage.
    • A disaggregated deployment separates compute from SAN storage and can scale from 1 to 64 machines. Design redundant Fibre Channel or iSCSI fabrics, multipath connectivity, controllers, and storage fault domains according to the supported disaggregated network reference pattern and SAN vendor guidance.
    • Connected two-machine and rack-aware clusters require a cloud witness, which Azure Local creates in Azure Storage during deployment. Maintain outbound HTTPS connectivity on port 443 from every machine to Azure Storage, monitor the witness resource status, and follow the documented two-key rollover sequence if you rotate the storage account keys. For more information, see Deploy a cloud witness.
  • (Platform architecture) Reserve compute capacity for failures and maintenance. Use the Azure Local sizer to model normal demand, failover demand, update operations, and growth. For highly available workloads, reserve enough capacity to absorb the largest intended machine failure. If workloads must also tolerate a machine failure during maintenance, model the concurrent loss or unavailability of two machines. Validate that the surviving machines can meet workload targets under each intended condition rather than relying only on an N+1 or N+2 label.

  • (Platform architecture) Design storage resiliency for the deployment type.

    • For hyperconverged deployments, select the appropriate Storage Spaces Direct resiliency and capacity efficiency. Three-way mirroring provides high performance and can tolerate two fault domains for standard clusters with enough machines. Rack-aware clusters require rack-level nested mirroring and support only two-way or four-way mirror volumes. For more information, see Fault tolerance and storage efficiency and rack-aware cluster requirements.
    • For disaggregated deployments, align LUN, pool, controller, fabric, and replication design with the SAN failure domains. Test path failure and controller failover, and don't treat SAN redundancy as a substitute for backup.
  • (Platform architecture) Maintain and verify redundant platform dependencies. Use independent power feeds and validated network topologies with redundant physical and logical paths for management, compute, storage, and workload traffic. Before production and after material changes, verify that the loss of one power feed, network adapter, switch, storage path, or SAN controller doesn't exceed the workload SLO. Treat Azure Arc resource bridge as a critical management dependency, include its unavailability in monitoring and recovery planning, and protect it from unsupported deletion through the controls described in Operational Excellence. Keep the Azure Local solution, drivers, and firmware within supported combinations. For more information, see Infrastructure resiliency for Azure Local.

  • (Platform architecture) Keep hardware drivers and firmware in an OEM-supported combination. For Premier Solutions and Integrated Systems, use the OEM-provided Solution Builder Extension (SBE) package through the Azure Local Solution Update workflow when the model supports it. For Validated Nodes, or systems without SBE update integration, follow the OEM compatibility matrix and documented servicing process to apply an equivalent validated driver and firmware bundle. Track the hardware package version on every machine, avoid component-by-component updates outside the OEM process, and verify instance health, redundancy, and workload operation after servicing.

  • (Virtual machine resiliency) Design VMs and applications to survive infrastructure failures. If a surviving machine has sufficient capacity, Azure Local can restart an affected VM on that machine. This restart interrupts service and doesn't make a singleton application highly available. Deploy at least two application instances for each critical workload tier, use health-aware traffic routing, and replicate state. Distribute their VMs across physical machines or local availability zones, and place their VHDs on separate storage paths where possible. On standard clusters, use anti-affinity where supported. On rack-aware clusters, assign redundant VMs to different local availability zones. Use non-strict placement, which is the default, when a VM must fail over to the other zone. Use strict placement only when the VM must remain in its assigned zone, such as for a compliance requirement, because it goes down if that zone fails. Choose the placement when you create the VM because updating the placement configuration of an existing VM isn't supported. Rack-aware clusters don't support VM affinity rules. For more information, see Virtual machine resiliency for Azure Local.

  • (AKS workload resiliency) Spread AKS nodes and workload replicas across rack-aware cluster zones. Configure the AKS control plane and worker nodes to spread across the physical machines and zones. Use more control-plane nodes than the number of physical machines in one zone, and size worker node pools to distribute nodes across all physical machines. Verify the resulting zone distribution because the underlying availability sets aren't zone-aware. Deploy multiple pod replicas with Kubernetes pod anti-affinity. Test rack failure and recovery. Don't treat this design as control-plane high availability because rack-aware clusters have only two zones and a zone failure can affect the control-plane majority.

  • (Workload resiliency) Separate local high availability from disaster recovery. A cluster, including a rack-aware cluster, remains one Azure Local instance and one administrative and storage failure boundary. For highly critical or latency-sensitive workloads, deploy across two or more independent Azure Local instances or locations to mitigate brief performance variations that can occur during VM live migration. Select application-native replication, Hyper-V Replica, or a supported Azure Site Recovery configuration based on the workload RTO, RPO, consistency, and failover requirements. Document target capacity, identity, network and DNS dependencies, startup order, traffic cutover, failback, and Azure management reconnection. Test planned and unplanned failover before relying on the design, and run a nondisruptive test failover at least monthly for critical workloads. For more information, see Workload resiliency for Azure Local and Redundancy recommendations.

  • (Virtual machine and workload resiliency) Implement and test backup and recovery. Storage and cluster redundancy don't protect against data corruption, accidental deletion, ransomware, or site loss. Never store backup data on the same Azure Local instance as the protected workload, and don't host the only backup repository on that instance. Keep backup copies, repository services, and credentials outside the source instance's administrative and storage failure boundary. Maintain an isolated or immutable copy. If you require recovery from a site failure, store a copy in a different physical location. Set backup frequency to meet the workload RPO, and set retention based on recovery and compliance requirements. Regularly test file, application, and full-VM recovery. Evaluate Microsoft Azure Backup Server and supported partner products. The Azure Site Recovery extension for Azure Local VMs (preview) is only for test environments. For production replication from Azure Local to Azure, manually configure the supported Hyper-V-to-Azure architecture. Treat replication as disaster recovery, not as a backup substitute, and review the current recovery and failback limitations before adoption.

Reliability configuration recommendations

Recommendation Benefit
For a new hyperconverged deployment, procure the exact Premier Solution SKU and bill of materials selected during architecture design. Confirm the vendor support agreement and SBE lifecycle before purchase. The highest level of integration and validation, preconfigured delivery, automated firmware and driver servicing, and a direct OEM support path reduce deployment and lifecycle risk.
Keep every machine on an OEM-supported driver and firmware bundle. Use SBE packages through Solution Updates where supported, or the OEM-documented equivalent process for Validated Nodes and systems without SBE update integration. Validated hardware and software combinations reduce failure risk and configuration differences between machines.
For highly critical or latency-sensitive workloads, deploy across two or more independent Azure Local instances or locations and test workload failover before using it for planned maintenance or an outage. A proven alternate instance preserves service while one instance is serviced and reduces risk from instance-wide or site-wide failures.
For hyperconverged deployments, reserve the recommended Storage Spaces Direct capacity. Free capacity allows Storage Spaces Direct to perform in-place repair after a drive failure without waiting for replacement media.
Ensure that all physical machines can reach the required outbound HTTPS endpoints for Azure Local and Azure Arc. Access can be direct or through a proxy server. A temporary interruption doesn't stop running workloads, but it can affect management and monitoring.
For standard hyperconverged deployments with three or more machines, use three-way mirrored volumes on all-flash storage devices to provide the best performance and resiliency levels. For two-machine deployments, the Express Storage configuration in the Azure Local cloud deployment process creates two-way-mirrored thin (dynamically expanding) volumes. For separately designed, supported workload volumes that must remain online during a machine failure plus a drive failure, consider nested two-way mirror for the best performance or nested mirror-accelerated parity for better capacity efficiency. For rack-aware clusters, use the required Rack Level Nested Mirror: a two-way mirror for 1+1 configurations and a four-way mirror for 2+2 or larger configurations. For disaggregated deployments, use redundant SAN fabrics and validate end-to-end failover. Three-way mirroring and all-flash storage provide high performance and protection against concurrent hardware failures. Matching resiliency to the deployment architecture avoids unsupported storage changes and makes the fault-tolerance and capacity tradeoff explicit.
Deploy at least two instances of each critical workload tier. Place their VMs on separate machines or local availability zones and their VHDs on separate storage paths where possible. On standard clusters, use VM anti-affinity rules where supported. On rack-aware clusters, assign redundant VMs to separate local availability zones and use non-strict placement when cross-zone failover is required. Use strict placement only when a VM must remain in its assigned zone, and don't apply VM affinity rules. Application redundancy and independent compute and storage placement reduce the chance that one failure interrupts the workload tier. Non-strict placement allows a VM to fail over to the other zone during a rack failure, while strict placement preserves locality at the cost of cross-zone failover.
For AKS on a rack-aware cluster, spread control-plane and worker nodes across all physical machines, verify their zone distribution, deploy multiple workload replicas with pod anti-affinity, and test rack failure and recovery. Node and pod distribution reduces the chance that a rack failure interrupts every instance of a workload. Verification and testing are required because availability sets aren't zone-aware and the two-zone design doesn't provide AKS control-plane high availability.
As part of the disaster recovery strategy, store backup data outside the source Azure Local instance and regularly exercise recovery from that external copy. A backup on the source instance shares its storage and administrative failure boundary and can be lost with the workload it is intended to protect.

Security

The purpose of the Security pillar is to provide confidentiality, integrity, and availability guarantees to the workload.

The Security design principles provide a high-level design strategy for achieving those goals by applying approaches to the technical design of Azure Local.

Treat the Azure Local security defaults as the minimum platform posture. Preserve the baseline and drift controls, and require every exception to have an owner, compensating control, and expiration date. Apply equivalent risk-based controls to workload VMs and external dependencies, which aren't protected by the platform baseline.

Security design checklist

Start your design strategy based on the design review checklist for Security. Identify vulnerabilities and controls to improve the security posture. Extend the strategy to include more approaches as needed.

  • (Platform architecture) Preserve the security baseline and drift protection. Azure Local automatically applies the security baseline during deployment and assigns the AzureWindowsBaseline Azure Policy Machine Configuration to each physical machine in Audit mode to report compliance with the Azure compute security baseline. This assignment doesn't configure or remediate settings. Keep drift control enabled through the deployment-installed AzureStackOSConfigAgent PowerShell module, which refreshes protected security settings every 90 minutes. View and download the security settings for the deployed Azure Local solution version, OS build, and identity model. The expected Audit compliance score can be less than 100% by design because settings such as minimum password length are customer-defined and aren't protected by drift control. Configure these settings according to your organization's requirements, investigate other noncompliance, and permit exceptions only when they have an owner, compensating control, and expiration date.

  • (Platform and workload architecture) Map regulatory requirements to assurance evidence. For hyperconverged deployments, review Azure Local and security standards for certifications, evaluation status, and implementation guidance that apply to the deployed version. Map each required control to the platform, workload VMs and applications, external dependencies, and operational processes. Don't treat platform certification or baseline compliance as proof that the workload meets its regulatory obligations. Retain the supporting evidence, and assign an owner to each gap or exception.

  • (Platform architecture) Remediate hardware firmware and driver vulnerabilities. Monitor security advisories from Microsoft and your hardware OEM for the exact deployed hardware SKU. Apply security fixes by using the OEM SBE package through Azure Local Solution Updates where supported, or the OEM-documented equivalent process for Validated Nodes and systems without SBE update integration. Prioritize actively exploited and high-impact vulnerabilities, record any deferred update with an owner and compensating controls, and verify Secure Boot, Trusted Platform Module, BitLocker, network, and storage operation after servicing.

  • (Platform and workload architecture) Centralize security posture and threat detection. For hyperconverged deployments, use Azure Local syslog forwarding to send infrastructure security events from every physical machine to a customer-managed SIEM. In production, use TCP with server authentication and TLS; use mutual certificate authentication where possible. Don't use unencrypted TCP, UDP, or skipped certificate validation. Verify the configuration on every machine, test event delivery, correlate platform and workload events with identity and network signals, and define an owned response process.

  • (Workload architecture) Protect workload operating systems and applications. Platform security controls don't protect the guest operating system or applications. Apply endpoint detection and response, vulnerability management, antimalware, secure configuration, data backup and recovery processes and timely guest patching to Azure Local VMs. Use Microsoft Defender for Servers and Azure Update Manager, or equivalent controls, based on workload risk and support requirements. Monitor coverage and remediation, and include workload findings in the owned incident-response process.

  • (Platform and workload architecture) Use segmentation to limit the impact of a compromise. Apply the following segmentation strategies.

    • Identity. Separate platform administration, workload operation, security monitoring, and backup duties. Use built-in Azure RBAC roles for Azure Local VMs, grant access at the narrowest practical scope, and regularly review privileged assignments. Use Conditional Access and time-bound elevation for privileged Azure operations. Protect emergency and local administrative identities separately from daily operator accounts.

    • Network. Separate workload tiers and trust boundaries into Azure-managed logical networks. Apply network security groups (NSGs) to logical networks for a shared baseline and to Azure Local VM network interfaces for workload-specific controls. Start with deny-by-default inbound access, add only required flows, and preserve required platform management and monitoring paths. Manage these controls through Azure rather than local SDN tooling. For more information, see Network security groups for Azure Local.

    • Review Recommendations for building a segmentation strategy for additional information.

  • (Platform architecture) Protect every platform administration identity. Azure RBAC controls Azure operations but doesn't replace controls for administration of the physical machines and cluster.

    • For Active Directory-based deployments, restrict the domain users and groups that can administer the physical machines or cluster. Use a dedicated Lifecycle Manager (LCM) deployment account with a unique password for each instance, scope its delegated permissions to that instance's dedicated organizational unit (OU), and tightly control and monitor access to the account. Treat the OU as an Azure Local platform boundary, not as a conventional Windows Server OU: block Group Policy inheritance to prevent inherited policies from conflicting with the platform configuration. Use the Active Directory preparation PowerShell module to automate this configuration, or meet the same requirements through your existing AD process. The LCM account is a local administrator on every physical machine and is used for servicing, repair, scale-out, and domain-join operations. For routine physical-machine administration, nest a dedicated AD operator group in the local Administrators group on each machine. Limit membership to approved, trained operators, monitor changes, and regularly review access.
    • For local identity with Azure Key Vault deployments, maintain the non-built-in local administrator account used across the physical machines, use one Key Vault per instance, and restrict who can retrieve local administrator, RecoveryAdmin, and BitLocker recovery secrets. Limit vault role assignments to approved operators and the required Azure Local managed identities, and alert on Key Vault access or backup failures.
  • (Platform architecture) Secure every customer-owned infrastructure management plane. Isolate and restrict administrative access to baseboard management controllers, network switches, SAN controllers, backup systems, and facility-management interfaces. Use a segmentation strategy with dedicated management networks and privileged identities, protect credentials in an approved secrets system, disable unused services, control vendor remote access, and collect security logs where supported. Assign owners for firmware and certificate lifecycle, vulnerability remediation, and periodic access review.

  • (Platform and workload architecture) Manage the identity and credential lifecycle. Use Microsoft Entra ID for Azure control-plane access and a trusted identity provider for workload access. Require multifactor authentication for privileged operations, avoid shared accounts, and store credentials in an approved secrets system. For hyperconverged deployments, use the supported Azure Local secret rotation workflows for the Lifecycle Manager (LCM) deployment user password, cloud witness keys, applicable service principal secrets, and internal infrastructure secrets so that dependent secret stores remain synchronized. Respond to expiration and suspected-compromise alerts, use the procedure for the deployed software version, and verify platform operations after rotation.

  • (Platform and workload architecture) Classify and protect data. Use workload data classification to set segmentation, encryption, key-management, backup, retention, and recovery requirements. Keep BitLocker enabled for Azure Local boot and locally managed data volumes, and export recovery material to an access-controlled location outside the instance. For disaggregated deployments, require SAN encryption at rest and resilient external key management. Encrypt application traffic across workload and management trust boundaries.

  • (Workload architecture) Use trusted launch for supported Azure Local VMs. Require generation 2 images, Secure Boot, and virtual Trusted Platform Module protections unless a documented workload constraint prevents the use of these protections. For more information, see Trusted launch for Azure Local VMs.

  • (Platform and workload architecture) Continuously verify security controls. Use Azure Policy at the management-group or subscription scope to report platform and workload compliance. Apply deny, modify, or deploy effects only to supported resource types after testing their operational impact. Don't treat an AzureWindowsBaseline Audit result as enforcement or remediation. Use exemptions only with an owner, compensating control, and expiration date. For examples, see Azure policies.

Security configuration recommendations

Recommendation Benefit
Keep the security baseline and drift controls enabled. Monitor AzureWindowsBaseline Audit results on the Machine configuration page in the Azure portal or through automated compliance queries to identify deviations from the security baseline. Separately verify that local drift control is enabled and healthy on every physical machine. Configure customer-defined settings according to your organization's requirements, and document and regularly review exceptions. Audit reporting exposes noncompliance, while the local OS configuration agent restores protected settings to the intended posture every 90 minutes. Some customer-defined settings aren't drift-controlled, so reaching 100% compliance requires configuring them separately.
Monitor hardware security advisories and apply firmware and driver fixes through the supported Solution Builder Extension (SBE) or OEM servicing process. Track and review any deferred remediation. Supported security updates close vulnerabilities without introducing unvalidated component combinations that can destabilize the platform.
Keep Application Control in Enforced mode. For required third-party software, obtain a supplemental policy XML file from the independent software vendor (ISV), or create and deploy one through the supported workflow. Include the supplemental policy in the controlled application installation process. If installation, testing, or policy creation requires a temporary switch to Audit mode, return every machine to Enforced mode after validation. Don't leave Application Control in Audit mode as a compatibility workaround. Supplemental allowlisting permits approved third-party software to run without leaving the platform unprotected in Audit mode.
Keep BitLocker enabled for Azure Local-managed volumes and store recovery material outside the instance. Require equivalent encryption and external key protection from the SAN in disaggregated deployments. Encryption protects data at rest, and externally held recovery material remains available if the instance or storage system is unavailable.
Apply NSGs to Azure-managed logical networks and use VM network-interface rules only for justified workload exceptions. A shared deny-by-default policy reduces inconsistent per-VM rules while preserving finer control where required.
Configure syslog forwarding to send security events from every physical machine to a centralized SIEM over authenticated TLS, and verify per-machine configuration and event delivery. Encrypted, authenticated forwarding and delivery checks provide a reliable external audit trail for platform security events.
For Active Directory-based deployments, use the supported Active Directory preparation process to create a dedicated OU with Group Policy inheritance blocked and a unique LCM account for each instance. For local identity with Key Vault deployments, use a dedicated vault for each instance. Restrict and monitor access to these identities, credentials, and recovery secrets. Separating each instance's privileged identity and policy boundary limits the impact of credential compromise and prevents inherited policies from conflicting with the platform configuration.
Rotate deployment and infrastructure secrets only through supported Azure Local workflows, and verify platform operations afterward. Supported rotation updates dependent secret stores and avoids outages caused by inconsistent credentials.

Cost Optimization

Cost Optimization focuses on detecting spend patterns, prioritizing investments in critical areas, and optimizing in others to meet the organization's budget while meeting business requirements.

The Cost Optimization design principles provide a high-level design strategy for achieving those goals and making tradeoffs as necessary in the technical design related to Azure Local and its environment.

Cost Optimization design checklist

Start your design strategy based on the design review checklist for Cost Optimization for investments. Fine-tune the design so that the workload is aligned with the budget that's allocated for the workload. Your design should use the right Azure capabilities, monitor investments, and find opportunities to optimize over time.

Model the full lifecycle cost of Azure Local, including facilities, validated hardware and support, networking, storage, platform and guest licensing, Azure services, backup and disaster recovery, operations, and eventual hardware refresh. Assign an owner to the model, define its review cadence, and reconcile forecasts with actual usage and support costs.

  • (Platform and workload architecture) Build a lifecycle cost model. Include acquisition, facilities, support, software, Azure services, workload migration, backup, recovery, operations, and refresh costs. Allocate shared platform costs to workload owners and review estimates against actual usage.

  • (Platform architecture) Choose the lowest-cost architecture that meets the reliability and performance targets. Compare standard hyperconverged, rack-aware hyperconverged, and disaggregated designs by their licensing tier, usable storage, reserved failover capacity, network fabric, support, and operational complexity. For a supported small standard hyperconverged deployment, compare switched and switchless storage-network patterns. A switchless pattern can avoid dedicated storage switches, but include its adapter and cabling requirements, topology constraints, operational complexity, and future scale-out path in the decision. Include the cost of duplicated rack infrastructure for rack-aware clusters and the SAN, redundant fabrics, and specialist skills for disaggregated deployments. Use the Azure Local sizer and validated Azure Local catalog, but validate the model with the hardware and storage vendors.

  • (Platform architecture) Select the Azure Local licensing tier before finalizing the architecture. Azure Local has two service tiers: L1 and L2. Connected hyperconverged deployments without SAN-attached disks use L1. Any cluster with SAN-attached disks uses L2, including a hyperconverged cluster that also uses external SAN storage. The Azure Hybrid Benefit for Azure Local, based on eligible Windows Server Datacenter licenses with active Software Assurance, applies to L1 but not L2. Include the higher L2 service fee and separate SAN, fabric, support, and skills costs in the disaggregated business case. For current terms, see Azure Local pricing.

  • (Platform and workload architecture) Govern metered Azure service costs. Set budgets and ownership for monitoring ingestion and retention, Defender plans, backup storage, replication, and recovery testing. Collect the minimum telemetry that supports security, reliability, and operations, and review cost per workload alongside service health. For more information, see Cost Optimization guidance for Log Analytics.

  • (Workload architecture) Optimize utilization without consuming resiliency headroom. Consolidate compatible workloads and use the right execution model, including VMs or AKS enabled by Azure Arc, based on operational maturity, isolation, and performance requirements. Don't place steady-state demand into compute or storage capacity reserved for failures, updates, repair, and growth.

  • (Platform and workload architecture) Reconcile forecast cost with measured demand. On a defined schedule, compare the lifecycle cost model with actual workload CPU, memory, storage, network, licensing, support, and metered Azure service consumption. Right-size or retire unused resources, consolidate compatible workloads, and tune data collection before procuring more capacity. Reforecast growth and update showback or chargeback so that workload owners understand both allocated platform cost and variable Azure service cost.

Cost Optimization configuration recommendations

Recommendation Benefit
Use the Azure hybrid options to evaluate workload placement before selecting Azure Local. Compare the Azure Local lifecycle cost, including hardware acquisition and refresh, vendor support, facilities, power, networking, licensing, Azure services, and ongoing operations, with an equivalent Azure-hosted design. Use the Azure pricing calculator for applicable Azure services. Prefer Azure hosting when it meets the workload's placement and service requirements at better value. Use Azure Local when requirements such as latency, operation during connectivity interruptions, data locality, sovereignty, regulation, or infrastructure control justify local placement. A requirements-based placement decision avoids customer-owned hardware and operating costs when an Azure service can meet the workload requirements more efficiently, while preserving local deployment where it provides necessary business value.
Validate whether the design uses the L1 or L2 Azure Local pricing tier before procurement. Treat any SAN-attached cluster as L2 and exclude Azure Hybrid Benefit for Azure Local from its cost model. The storage architecture changes both platform cost and benefit eligibility, so a late change can invalidate the business case.
Choose the Windows Server subscription add-on or eligible existing licenses after modeling the physical core count and Windows Server VM estate. For more information, see License Windows Server VMs on Azure Local. A fleet-level comparison avoids paying for overlapping entitlements or optimizing one VM while increasing host-wide cost.
Use cost data and allocation practices to assign budgets, tags, and owners to platform support, monitoring, security, backup, and disaster recovery services. Cost ownership exposes growth early and prevents shared platform charges from becoming ungoverned spend.
On a defined schedule, compare forecast and actual costs, platform utilization, licensing, and metered Azure service costs, and record right-sizing, consolidation, or procurement decisions. A recurring evidence-based review corrects stale assumptions before unused capacity or service consumption becomes long-term spend.

Operational Excellence

Operational Excellence primarily focuses on procedures for development practices, observability, and release management.

The Operational Excellence design principles provide a high-level design strategy for achieving those goals for the operational requirements of the workload.

Operate Azure Local as an Azure-managed platform with standardized deployment, monitoring, updates, incident response, and support processes. Apply the same operating model to platform dependencies and workloads so that ownership and escalation paths remain clear.

Operational Excellence design checklist

Start your design strategy based on the design review checklist for Operational Excellence for defining processes for observability, testing, and deployment related to Azure Local.

  • (Platform architecture) Use Azure as the management plane. Organize instances and workload resources into a consistent resource hierarchy, apply Azure RBAC, Policy, tags, and locks at scale, and monitor Azure connectivity as a platform dependency. Don't update or reconfigure individual machines outside supported Azure Local workflows.

  • (Platform architecture) Protect Azure Arc resource bridge from unsupported deletion. Don't manually delete the Azure Arc resource bridge appliance VM or its Azure resource. An appliance VM has a generated name, for example, b87c0800d573287d885ab2021e127c340ca56772d6c9c-control-plane-0-355435a4; the name varies by deployment. For Azure Local, manually deleting the Azure Arc resource bridge appliance VM or its Azure resource can leave stale service-side registrations and associations between Azure and the Azure Local instance. These inconsistencies can cause subsequent workload deployment, update, or management operations to fail. Deleting the Azure Arc resource bridge appliance without Microsoft guidance can disrupt management of the Azure Local environment and require assistance from Microsoft Support to restore management operations. For more information, see Azure Arc resource bridge maintenance operations.

  • (Platform and workload architecture) Use reviewed automation for repeatable changes. Apply infrastructure as code design to Azure Local workload resources, policy assignments, monitoring, alerts, and network controls. For Azure Local VMs in hyperconverged deployments, use the supported Azure Resource Manager, Bicep, or Terraform deployment methods documented in Azure Local VM management. Keep environment-specific values separate, validate changes in a representative nonproduction environment, and retain a tested rollback or recovery path. Roll out fleet-wide changes in stages, starting with representative lower-risk instances. Stop and investigate if health or performance degrades.

  • (Platform and workload architecture) Plan address space and network dependencies before deployment. Reserve nonoverlapping IP address ranges for platform and workload growth. Document ownership for routing, DNS, proxy, firewall, and NSG configuration. Include address exhaustion and connectivity failures in change reviews. Azure Arc Private Link isn't supported for Azure Local infrastructure or Azure Local VMs, so Arc endpoints must resolve to public IP addresses. Allow the required outbound endpoints and disable HTTPS inspection for Azure Local traffic. For new deployments, consider Azure Arc gateway to significantly reduce, but not eliminate, the endpoints that your firewall or proxy must allow. You can't enable Arc gateway after deployment. Support for Azure Local infrastructure and Azure Local VMs is generally available, but support for AKS on Azure Local is preview. For more information, see Azure Local network deployment considerations and logical networks.

  • (Platform and workload architecture) Implement end-to-end observability. Define a health model that maps facilities, hardware, Azure connectivity, platform, VM, and application dependencies to workload service-level indicators. Use Azure Monitor Agent and data collection rules for required logs. Add VM insights and application telemetry for VM workloads, and use Container insights, managed service for Prometheus, and workload telemetry for AKS enabled by Azure Arc where supported. Set Azure Monitor retention based on operational and compliance requirements, and route actionable alerts to an owned response process. Test that an application failure produces the expected signal and response. Avoid collecting telemetry that has no owner or response action.

  • (Platform architecture) Operationalize platform security-event forwarding. For hyperconverged deployments, enable Azure Local syslog forwarding as part of the platform monitoring baseline. Verify that events arrive from every physical machine, alert on collection gaps, assign owners for retention and detection rules, and retest delivery after deployment and material changes. Follow the authenticated and encrypted transport guidance in the Security section.

  • (Platform architecture) Use built-in cluster performance metrics. For hyperconverged deployments, use cluster performance history to query curated Health Service metrics that are dynamically aggregated across machines. Use these point-in-time metrics to investigate current cluster, machine, and volume performance and capacity. Use Azure Monitor for retained trends and alerts.

  • (Platform architecture) Use Azure Local LENS for supplementary fleet-level visibility. After you establish Azure Local Insights and owned alerting as the monitoring baseline, import the Azure Local LENS workbook into Azure Monitor to compare instance health, update status, capacity, machines, VMs, and AKS Arc clusters across subscriptions. Use its System Health tab to aggregate the latest system health-check results that Azure Local publishes to Azure Resource Manager and identify issues across the subscriptions you can access. The workbook and its Azure Resource Graph-based views have no additional charge. Optional Log Analytics-based performance and forecasting views incur data ingestion and retention costs. This community-driven workbook isn't officially supported by Microsoft, so don't make it the only monitoring or incident-detection path.

  • (Platform architecture) Operationalize daily system health checks. Review the system health checks that Azure Local runs every 24 hours, even when no update is pending. Review results for an individual instance in the Azure portal or locally by using PowerShell, and use the Azure Resource Manager results for centralized fleet review. Route Critical and Warning results to an owned response process, review the affected machines and remediation guidance, resolve the underlying issues, and rerun the checks to verify recovery. Treat these results as continuous platform-health signals and as an input to update planning. Critical results block solution updates, and Warning results require remediation or an explicit decision to bypass. After update content is downloaded, review the update readiness checks separately because they use validation logic from the target release and can produce different results.

  • (Platform architecture) Validate before deployment and after material changes. Run the Azure Local environment checker before deployment and use supported validation checks before updates, hardware expansion, network changes, and storage changes. Resolve failures rather than bypassing them, and retain results with the change record.

  • (Platform architecture) Manage the Azure Local solution lifecycle through supported orchestration. Azure Local identifies releases by year and month (YYMM). Assess each release promptly and schedule updates so every instance remains within six months of the most recent release. Before rollout, review known issues, the hardware vendor's Solution Builder Extension (SBE) release information, and the AKS versions supported by the target Azure Local release. Test and validate the target solution update and SBE package, including firmware and driver content, on a representative nonproduction instance that matches the production hardware model and configuration. Use the validation results as a quality gate, and then follow safe deployment practices to roll out the update to production instances in stages, starting with a representative lower-risk instance. If the target release doesn't support a deployed workload-cluster version, upgrade that AKS cluster through each required Kubernetes minor version before updating the platform. Apply Azure Local and available SBE content through the Solution Update workflow; don't update individual physical machines. Plan for reduced capacity while workloads are moved off each machine, pause when health checks fail, and verify platform and workload health after every update.

  • (Platform architecture) Use the supported lifecycle for extensions on physical machines. Keep automatic upgrade enabled for extensions that support it. Extensions that don't support automatic upgrade are updated through the Solution Update process. Monitor extension health and version consistency across the instance, and use manual extension upgrade only when the Azure Local extension-management guidance supports it. Don't manually update platform-managed extensions that the guidance excludes from manual upgrade.

  • (Workload architecture) Manage workload updates independently from the platform. Define update rings and maintenance windows for VM guest operating systems, applications, and AKS workload clusters. Use Azure Update Manager or an equivalent supported process for guest patching. Before an Azure Local update, inventory every AKS workload-cluster version and review What's new in AKS Hybrid and Edge on Azure Local for the versions supported by the target release, deprecations, security notices, and release-specific changes. Use the supported cluster upgrade process to complete required sequential Kubernetes upgrades before the platform update. Validate updates on representative lower-risk workloads, monitor compliance and application health, and retain a tested rollback or recovery path.

  • (Platform and workload architecture) Prepare support and incident response. Define health-alert ownership, escalation paths, vendor contracts, diagnostic-data handling, and runbooks for loss of Azure connectivity, hardware failure, update failure, capacity pressure, and workload recovery. Regularly exercise the runbooks and incorporate findings into automation and monitoring.

Operational Excellence configuration recommendations

Recommendation Benefit
Enable Azure Local Insights for every production instance and manage its data collection rules, workspace placement, access, and retention as a fleet standard. Retain the default Health Service settings unless a documented operational requirement justifies a change, and test changes to fault thresholds or automated actions before fleet rollout. A consistent monitoring baseline enables cross-instance health and capacity views while controlling access and ingestion cost. Controlled settings changes preserve meaningful fault detection and avoid unintended platform behavior.
For hyperconverged deployments that don't have equivalent managed alerts, enable the recommended alert rules as an initial metric-monitoring baseline. Confirm that the telemetry and diagnostics extension is healthy, review the default Informational severity and thresholds, route notifications through an owned action group, and test delivery. Tune the rules against observed workload behavior and supplement them with workload-specific alerts. Predefined CPU, memory, volume-latency, and network alerts provide immediate coverage while validation and tuning keep the baseline actionable.
Configure health and capacity alerts with an owner, severity, notification route, and tested runbook. Actionable alerts shorten response time; ownership and runbooks prevent alert accumulation without remediation.
Track the YYMM release, SBE version, and physical-machine extension health for every production instance. Follow the Azure Local lifecycle cadence, assess new releases and known issues promptly, and stay within six months of the most recent Azure Local release. A fleet-level compliance view prevents instances from silently leaving support and gives teams time to validate and schedule solution and vendor updates through supported orchestration.
Use Azure Update Manager, or an equivalent supported process, to track guest operating system and applicable package update compliance. Follow the AKS lifecycle guidance to distinguish infrastructure components serviced through Azure Local solution updates from workload-cluster Kubernetes and node updates. Before updating Azure Local, review What's new in AKS Hybrid and Edge on Azure Local and upgrade any workload cluster whose Kubernetes version isn't supported by the target platform release by using the supported cluster upgrade process. Coordinated lifecycle planning prevents a platform update from leaving AKS workload clusters on unsupported Kubernetes versions or without a supported sequential upgrade path.
For machines with more than 768 GB of physical memory, use OS disks with at least 400 GB of capacity as recommended in the Azure Local support and diagnosability requirements. Treat 400 GB as a baseline and prefer larger OS disks when available. Validate that each machine's supported crash-dump configuration provides an adequately sized page file or dedicated dump file. Windows first captures crash data in that file and, after restart, extracts the data to Memory.dmp. Size the affected volumes so the capture file and Memory.dmp can coexist while the running system retains adequate page-file capacity and free space for normal operation and growth. Don't change platform-managed settings outside supported Azure Local or hardware-vendor guidance. Adequate crash-dump capacity preserves the diagnostic evidence that Microsoft Support and the hardware vendor might need to investigate hardware, driver, or platform failures on large-memory systems.
For hyperconverged deployments, include the Azure Local Support Diagnostic Tool in platform troubleshooting runbooks. Install or update the Microsoft.AzLocal.CSSTools module, keep the same module version on every machine, and run Invoke-AzsSupportInsight -ComputerName (Get-ClusterNode).Name from an administrative PowerShell session with PowerShell remoting configured. Use the results to investigate common known issues and prepare diagnostic evidence, but don't treat the tool as a substitute for Microsoft Support. Repeatable cluster-wide checks produce a report and data bundle that can shorten incident triage and support escalation.
Test collection of Azure Local diagnostic logs, vendor escalation, and incident runbooks before production onboarding. Prepared evidence and escalation paths reduce diagnosis time during platform, hardware, storage, or network incidents.

Performance Efficiency

Performance Efficiency is about maintaining user experience even when there's an increase in load by managing capacity. The strategy includes scaling resources, identifying and optimizing potential bottlenecks, and optimizing for peak performance.

The Performance Efficiency design principles provide a high-level design strategy for achieving those capacity goals against the expected usage.

Performance Efficiency design checklist

Start your design strategy based on the design review checklist for Performance Efficiency. Define a baseline that's based on key indicators for Azure Local.

  • (Platform and workload architecture) Define performance targets for critical workload flows. Establish targets for latency, throughput, input/output operations per second (IOPS), concurrency, and completion time. Define these targets for normal demand, peak demand, maintenance, and intended failure conditions. Include the application, VM, compute, memory, network, and storage path in the measurement boundary.

  • (Platform architecture) Select a balanced, validated architecture. Use the Azure Local catalog and vendor sizing guidance to match processor, memory, adapters, switches, drives or SAN, and support limits to the workload profile. Avoid optimizing one subsystem while another remains the bottleneck.

  • (Platform and workload architecture) Size compute, memory, and accelerators from measured workload demand. Profile representative workloads to determine processor architecture, physical core count, clock speed, memory capacity and bandwidth, and GPU model or partitioning requirements. Validate VM vCPU, memory, and GPU allocations under production-like concurrency, including workloads with overlapping peaks. Use workload placement to limit contention and preserve the capacity reserved for failures and updates. Don't rely on aggregate core and memory capacity alone.

  • (Platform architecture) Size for degraded conditions and growth. Use the Azure Local sizer as an input, then verify that compute, memory, network, and storage targets remain achievable during peak demand, an intended machine or rack failure, rolling updates, storage repair, backup, and forecast growth. Define thresholds and procurement lead time for scale-out or refresh.

  • (Platform architecture) Design network performance for the deployment type.

    • For switched standard hyperconverged deployments, use at least two dedicated RDMA-capable physical adapter ports for the storage intent, with each path connected to a different switch in the validated top-of-rack pair. Configure the intent through Network ATC, use SMB Multichannel for path resiliency and bandwidth aggregation, and configure Data Center Bridging end to end when you use RDMA over Converged Ethernet (RoCE). Use a supported fully converged intent only when reducing adapter and cabling cost outweighs traffic isolation, and validate that compute, live migration, repair, backup, and path-failure traffic don't cause workload contention.
    • For rack-aware clusters, use the required dedicated storage network and validate bandwidth and latency across both local availability zones during repair and zone failure.
    • For disaggregated deployments, size Fibre Channel or iSCSI paths for workload and recovery traffic, and validate multipath behavior during adapter, fabric, controller, and path failure. Don't apply S2D RDMA guidance to SAN storage paths.
  • (Platform architecture) Design storage performance for the deployment type.

    • For standard hyperconverged deployments, use measured workload latency and throughput to select the storage media, volume resiliency, and capacity efficiency. Include repair traffic and data-efficiency processing in the model.
    • For rack-aware clusters, use the required all-flash design and account for nested-mirror write amplification, dedicated storage-network capacity, and inter-zone latency.
    • For disaggregated deployments, validate the complete path through host bus adapters or network adapters, redundant fabrics, SAN controllers, cache, pools, and LUNs. Size for controller or path failover, not only the aggregate SAN specification.
  • (Platform and workload architecture) Baseline and load-test the complete workload path. Test from representative VMs with production-like concurrency and data. Measure normal, peak, update, failover, repair, backup, and recovery conditions before production and after material hardware, firmware, network, storage, or workload changes. Use synthetic tools to isolate component limits, but use workload-level tests to determine whether the end-to-end performance targets are met.

  • (Platform and workload architecture) Monitor saturation and scale before targets are breached. For hyperconverged deployments, use Azure Local Insights to collect platform performance and health signals using Azure Monitor. Correlate workload service-level indicators with CPU scheduling, memory pressure, network latency and drops, storage latency and throughput, path health, and remaining usable capacity. Define scale or optimization triggers that account for procurement and change lead time.

Performance Efficiency configuration recommendations

Recommendation Benefit
For latency-sensitive workloads on standard hyperconverged clusters with three or more machines, use three-way mirrored volumes on all-flash storage. Use the required nested-mirror volumes in rack-aware clusters, or a SAN service level validated for the workload in disaggregated deployments. Mirroring and all-flash storage maximize performance for demanding workloads. Matching placement to the storage architecture avoids applying S2D tuning to SAN-backed workloads.
For switched standard hyperconverged deployments, use at least two dedicated RDMA-capable storage adapter ports configured through Network ATC. Validate bandwidth, latency, and path failover with concurrent compute, migration, repair, and backup traffic. Dedicated RDMA paths reduce contention and CPU overhead, while SMB Multichannel preserves storage bandwidth when a path fails.
Use DiskSpd, application benchmarks, or SAN vendor tools from representative VMs to validate latency, throughput, and IOPS under normal and intended failure conditions. Testing the complete workload path exposes compute, network, fabric, controller, and storage bottlenecks that component specifications don't reveal.

Tradeoffs

There are design tradeoffs across the five pillar checklists. Evaluate each tradeoff against workload SLO, RTO, RPO, security, performance, operational complexity, and lifecycle cost rather than optimizing one pillar in isolation. The following examples illustrate common advantages and drawbacks.

Fault-domain isolation and recovery increase cost

Reserve compute and storage capacity for failures, updates, and repair rather than using it for steady-state demand. Rack-aware clusters add duplicated rack infrastructure and nested-mirror capacity overhead. Disaggregated deployments add the L2 service tier, SAN, redundant fabrics, and specialist operations. Recovery across independent instances adds duplicate workload capacity, replication, traffic management, and testing. Select these investments from workload SLO, RTO, and RPO targets instead of applying one topology to every workload.

Capacity headroom can reduce utilization

Under-sizing can breach performance and reliability targets before additional validated hardware is procured and deployed. Over-sizing can strand licensed cores, support, facilities, and storage capacity for the hardware lifecycle. Model growth and procurement lead time, then reassess placement and scale triggers from observed demand. Treat a change between hyperconverged and SAN-attached architecture as a redesign because it can change licensing, failure domains, and operating skills.

Azure policies

Use Azure Policy to govern Azure Local platform and workload properties that are exposed through Azure Resource Manager. Azure Policy supplements, but doesn't replace, Azure Local security baseline drift control, environment validation, health checks, Solution Updates, or workload testing.

  • Azure Local assigns the AzureWindowsBaseline Machine Configuration to each physical machine in Audit mode. Use its compliance results for reporting and investigation, but don't treat the assignment as enforcement. The expected score can be less than 100% by design because some customer-defined settings aren't protected by drift control. The deployment-installed AzureStackOSConfigAgent PowerShell module enforces protected baseline settings locally through drift control and refreshes them every 90 minutes.
  • For the Azure Local platform, start with the built-in policies in the Stack HCI category. The current definitions audit consistent Application Control enforcement, secured-core compliance, encrypted volumes, and protection of host and VM networking. These definitions are in preview and provide audit effects, so evaluate their preview status and available effects before assignment. Don't rely on them to configure or remediate the platform.
  • For Azure Local VMs and other Arc-enabled workloads, select applicable built-ins from categories such as Azure Arc, Monitoring, and Azure Update Manager. Confirm that each definition supports the workload resource type and intended effect before assignment.
  • Create custom definitions only when no suitable built-in exists and the required property is exposed to Azure Policy. Examples include Azure Local registration, solution-version compliance, required extensions, and deployment-specific integration requirements.

Group the selected definitions into a version-controlled initiative and assign it at the highest appropriate management-group or subscription scope. Start with audit effects, review false positives and operational impact, and use deny, modify, or deploy effects only after testing them on representative resources. Require every exemption to have an owner, justification, compensating control, and expiration date.

Azure Advisor recommendations

Review Azure Advisor recommendations as an additional signal and route each accepted recommendation through normal change control. Don't treat Advisor as a substitute for architecture review, vendor guidance, capacity analysis, or workload testing.

Example architecture

The Azure Local baseline reference architecture demonstrates a foundational implementation of many recommendations in this guide. Use it as a starting point, then adapt the design to the current Azure Local product documentation, the selected deployment type, and the workload's reliability, security, cost, operational, and performance requirements.

Next steps