Easily Deploy SQL Managed Instance On-Prem with Azure Arc
Tom Fenton, StorageReview
When most people think of Azure, the two things that usually come to mind are Microsoft’s large public cloud and running virtual machines (VMs). The reality is that Azure is a cloud platform that runs over 200 products and services. It was developed over a decade and a half ago and has matured over that timeframe. Currently, its capabilities include software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS).
We need to think of Azure not as a public cloud—but as a platform for various cloud services that can be deployed either in Microsoft Azure public cloud or locally on customer hardware. We just posted a podcast that goes deep on Azure Arc. If you want information on running Azure locally on hyperconverged infrastructure (HCI), you can read on that topic.
In this article, we look at how to use Azure Kubernetes Service (AKS) hybrid with Azure Arc and on-premises Azure Stack HCI as a stepping stone to deploying, managing, maintaining, and monitoring a production SQL Managed Instance on a Kubernetes (K8s) cluster.
Azure Arc is the brand that Microsoft has designated for its multi-cloud and hybrid solutions. It is a control plane capable of managing existing non-Azure resources, on-premises resources, or both—using Azure Resource Manager. This includes managing Windows and Linux physical servers and virtual machines hosted outside of Azure. In other words, Azure Resource Manager extends Azure services to SQL Server instances hosted outside of Azure, managing and monitoring Kubernetes (K8s) clusters regardless of where they are running, and support for multiple K8s distributions.
This includes managing Windows and Linux physical servers and virtual machines hosted outside of Azure, extending Azure services to SQL Server instances hosted outside of Azure, managing and monitoring Kubernetes (K8s) clusters regardless of where they are running, and support for multiple K8s distributions. These include VMware Tanzu, Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), OpenShift Container Platform (OCP), Azure Red Hat OpenShift, AKS Engine on Azure Stack / Azure Stack HCI, and standalone upstream K8s clusters.
The diagram below shows how Azure Arc can manage on-premises and other cloud-provider AKS-managed instances from a central portal.
This paper focuses on Azure Arc on-premises deployment with AKS hybrid with SQL Managed Instance.
Azure Kubernetes Service (AKS)
Early on, Microsoft saw the value of K8s, but recognized the complexity of deployment. Thus Microsoft developed AKS, which simplifies the process of deploying and managing K8s on Azure. When you create an AKS cluster, a K8s control plane is automatically created and configured. Azure also handles management tasks like health monitoring and maintenance.
One of AKS’s benefits is that it allows the AKS cluster to be deployed from a GUI in the Azure portal. Or, for those who want to deploy a cluster programmatically, it’s possible to use Azure Resource Manager templates (Bicep or Terraform) from the command line using PowerShell.
Since networking is a key part of K8s, AKS on Azure Stack HCI supports software-defined networking (SDN) integration (currently in preview). This integration allows you to bring in your networks and attach the AKS-HCI nodes to them. Additionally, you can use the SDN Software Load Balancer for load balancer services.
GPUs have become a necessity for many containerized applications. Microsoft recognizes this and supports deploying GPU-enabled node pools on top of NVIDIA Tesla T4 GPUs using Discrete Device Assignment (DDA) mode (aka GPU Passthrough). Using DDA, one or more physical GPUs are dedicated to a single worker node which gets full access and can leverage the benefits of the GPU.
The AKS hybrid deployment option is an on-premises implementation of the AKS orchestrator. This option automates the process of running containerized applications at scale, while also operating consistent cloud-native applications regardless of where they are deployed. It is available on Azure Stack HCI on Windows Server 2019 and 2022 Datacenter. AKS hybrid supports both Linux and Windows-based containers.
AKS hybrid makes the transition from using AKS in Azure to running it on-premises easy, as it uses the same toolset (including a wizard) to create and set up K8s and add essential add-ons. It currently supports using both PowerShell and Windows Admin Center (WAC). Azure CLI, portal, and Resource Manager templates are in preview.
Azure Arc-Enabled Data Services
Azure Arc-Enabled Data Services is a managed offering under the Azure Arc brand that allows customers to deploy managed instances of SQL and PostgreSQL (in preview).
An Arc-enabled SQL Managed Instance allows SQL Server customers to lift and shift their applications to Azure Arc data services with minimal application and database changes while maintaining data sovereignty. It includes built-in management capabilities that dramatically reduce management overhead.
Arc-enabled PostgreSQL is the community version of the PostgreSQL 14 server that simplifies PostgreSQL management, monitoring, backup, patching, upgrading, access control, and more.
Azure Arc-enabled Azure SQL Managed Instance and PostgreSQL can be deployed on any Kubernetes distribution, on any cloud, and at the edge using K8s. Azure Arc-enabled data services have a web-based, unified management portal that provides alternatives to command-line tools. The centralized portal allows you to monitor and view logs related to an instance’s health, capacity, and performance, regardless of location or hardware.
Data services can be scaled up or down dynamically as business requirements dictate. This structure allows customers to choose the best mixture of OpEx and CapEx models to meet their company’s needs. It’s worth noting that the CapEx model only comes into play when using Software Assurance via Azure Hybrid Benefits.
Azure Hybrid Benefit is a licensing benefit that lets you bring your on-premises core-based Windows Server and SQL Server licenses with active Software Assurance (or subscription) to Azure. It allows you to significantly reduce the costs of running your workloads in the cloud.
Why Deploy Azure Arc-Enabled Data Services On-Premises?
Presenting a unified, consistent workflow for each of a company’s SQL Managed Instances will significantly decrease the cost of deploying them. Furthermore, it will greatly simplify the deployment of additional instances when required. Azure Arc allows this to be done whether they are deployed in on-premises data centers or at the edge.
SQL MI is a unique offering by Microsoft that can run on Azure public cloud as well as a company’s on-premises Azure Stack HCI. Microsoft states “SQL Managed Instance has near 100% compatibility with the latest SQL Server (Enterprise Edition) database engine.” It also has a native virtual networking scheme that addresses common security concerns. Due to its compatibility with SQL Server and Azure SQL database, migrating an existing SQL Server implementation requires minimal changes to their existing database and applications. SQL MI greatly decreases and eases the workload and burden on a company’s existing staff as patching, version updates, and backups are done automatically, and it is designed with high availability in mind.
Regardless of whether you are migrating an on-premises or IaaS, self-built, or ISV-provided environment to SQL MI, you can use Microsoft’s fully automated Azure Data Migration Service to move them to an SQL MI. This tool has a wizard that uses guided questions to walk you through the process of migrating from an existing database to SQL MI.
Of course, running SQL MI on Azure Stack HCI on-premises gives you all the benefits you would expect of an Azure Stack HCI as outlined in this article.
Azure Arc-enabled Azure Stack HCI for Data That Must Stay On-Premises
What differentiates Azure Stack HCI from other HCI implementations is that it combines an HCI solution with Azure Cloud Services. Even though it can be installed on commodity hardware, most enterprises take Microsoft’s suggestion and choose a Microsoft-validated solution, such as DataON, which is designed, assembled, and verified against reference architecture to ensure compatibility and reliability.
DataON offers a variety of Intel®-based Azure Stack HCI nodes that include 1U and 2U all-flash nodes for a range of performance needs and a 2U hybrid node that’s more value-centric. And because the Azure Stack HCI solution can be deployed on a pretty lightly configured 2-node cluster, these HCI clusters are great for the edge where cost, ease of use, and resiliency are important.
DataON routinely supports edge deployments with a reference Azure Stack HCI cluster consisting of 2x DataON AZS-6112, a 1U 12-bay system. Each node is configured with 2x 3rd Gen Intel® Xeon® Scalable 6336Y 2.4GHz, 24-core, and 36MB cache CPUs. These nodes have 256GB memory (8x 32GB), 4x Solidigm P5520 1.92TB SSDs, 2x NVIDIA ConnectX-6 Dx Dual-port 100GbE, and storage configured for 2-way mirror.
This stack provides an excellent blend of performance, cost, and resiliency. That said, Azure Stack HCI scales nicely, so if an organization has a larger use case, then DataON can meet that as well with the larger, more robust 2U all-flash nodes. In either case, in the context of Azure Arc-enabled SQL Managed Instance and PostgreSQL, there’s plenty of horsepower in this cluster to enable either use case. DataON also plans to support the latest 4th Gen Intel® Xeon® Scalable CPUs soon, which unlocks even more performance through PCIe Gen5 and DDR5 DRAM technologies.
One characteristic that separates Azure Stack HCI from other HCI solutions is that it is licensed per CPU core, and the billing for the license goes through an Azure subscription. Azure Stack HCI allows you to extend your data center to the cloud with capabilities such as Backup, Azure Monitor, and Microsoft Defender for Cloud. The HCI VM layer is licensed separately from the guest VM operating system. Therefore, any Windows or Linux licenses must be purchased separately.
Azure Stack HCI gives you a unified and federated management plane for your environment.
Azure Stack HCI has many uses, including branch offices, edge devices, disaster recovery sites, and even hosting virtual desktop infrastructure (VDI).
Using Arc to Deploy and Manage SQL Managed Instance
Running SQL MI and other Arc-enabled features on-premises using Azure Stack HCI allows you to leverage your existing skill sets and knowledge and stay in compliance with corporate and governmental guidelines and regulations. But, most importantly, it allows you to deploy a cost-effective solution that meets the needs of your company.
An Arc-enabled SQL Managed Instance is a containerized deployment of SQL that can be created and run on any infrastructure, including an AKS cluster hosted on an on-premises Azure Stack HCI cluster. Azure Arc-enabled SQL Managed Instance offers nearly 100% compatibility with the latest SQL Server database engine, making it extremely easy to migrate an existing stand-alone SQL Server’s deployment with minimal changes to the application and database. The Azure Arc data controller establishes and maintains the logical connection for the SQL instance to the Azure Resource Manager control plane.
In this article, we looked at how Azure Arc provides a single control plane for deploying and managing an SQL instance and AKS hybrid. Having a single, centralized management plane allows companies to use a common set of tools, whether on-premises or at the edge.
Azure Stack HCI’s on-premises solution has many benefits. For example, it allows companies that are bound by either corporate or company requirements to have data contained within a geocentric location use the same Azure features and workflows that they use with the rest of their workloads.
Companies that save and process data in geographically dispersed locations (think factories and retail stores) can implement a PaaS-like solution using Azure Arc as a central portal. Many companies are looking to prevent cloud lock-in, and Azure Arc’s multi-cloud management capabilities enable this strategy.
Whatever the scenario, Azure Arc provides a single portal for controlling and managing SQL servers and AKS hybrid. We look forward to seeing how this plays out as we explore more of the operational benefits of the combination of on-prem Azure Stack HCI paired with an Azure Arc-enabled SQL Managed Instance. To learn more about the promise of SQL Managed Instance, check out this deep-dive podcast we recorded with Microsoft MVP Ernie Costa.