Microsoft this week announced Azure Stack HCI, describing it essentially as a way to deploy Azure Stack, the on-prem version of its public Azure cloud, on familiar virtualized infrastructure in enterprise data centers. If you look closer, however, the two have more differences than commonalities.
Azure Stack HCI is basically a rebranding of Windows Server 2019 configured on a minimum of two systems running Storage Spaces Direct (S2D). S2D is software-defined storage Microsoft first introduced with Windows Server 2016.
S2D relies on fast network connections to replicate data between nodes that are clustered together. The writing of data blocks to disk is done completely in software, as opposed to other storage architectures, which rely on hardware to build a RAID volume for data protection. Storage Spaces has been around since Windows Server 2012 and has matured through two additional releases of that operating system.
Microsoft's first attempt at offering highly-available storage depended on dual-ported SAS disks connected to controllers on separate servers. The disks were configured to form Cluster Shared Volumes (CSVs) providing a redundant path to the data, so that a single host failure wouldn't take a volume offline. S2D takes advantage of directly attached disks using SATA, SSD, or NVMe in lieu of the more expensive SAS devices.
The Scant Similarities
Both Azure Stack and Azure Stack HCI are built on top of server systems from a range of partners. The Azure Stack HCI catalog page lists fifteen OEM partners selling "certified" solutions. Some of those partners provide hardware for both. An Azure Stack system comes pre-configured with a specific list of hardware, including network switches – in most cases a rack system plus a top-of-rack switch. Azure Stack HCI systems consist of a server system meeting minimum requirements for CPU, disk, memory, and network.
It is possible to connect an Azure Stack HCI solution to Azure using a VPN connection or Microsoft's ExpressRoute, which provides a private network. You can even manage those systems from Azure and handle authentication using Azure Active Directory. Another thing you can do is migrate virtual machines running on-premises to public Azure and back. Azure provides a full disaster recovery service for such scenarios and Azure backup for off-site backup.
The Big Differences
Hardware and some of the software components are about the only things the two offerings have in common. Azure Stack is an on-premises implementation of the core software that makes up the public Microsoft Azure cloud. While some of the plumbing might be the same, there really is no comparison beyond that. Azure Stack is a totally managed environment, meaning you really can't get at the lower-level virtualization tools.
The biggest missing piece is the services provided by Azure Stack. You can't develop a software application based on Azure services and deploy those to Azure Stack HCI. You could conceivably develop container-based applications and integrate those into a large Azure-based solution, but that would be a complicated endeavor. In the end, you really just get traditional VM-based applications with Azure Stack HCI. That's not to say Azure Stack HCI doesn't have its place for meeting any number of different use cases. If you're paying big money for traditional storage, you could realize significant savings moving to an Azure Stack HCI solution.
The Bottom Line
Microsoft is clearly trying to put the Azure brand stamp on their traditional server-based product line. It fits with the focus on all things Azure but might cause some confusion early on. Azure Stack HCI is a great product on its own and can connect with the Azure cloud, but don't expect it to be a lower-cost Azure Stack.