Note: This is an opinion piece, representing my personal views.
Today, Microsoft announced an exciting new addition to the Azure Stack brand - Azure Stack HCI! This announcement enhances the Azure Stack portfolio in a few important ways, evolving the WSSD program into the 2019 ecosystem, and reaffirming the importance of understanding the best place to run your workloads, as well as the differences between Infrastructure as a Service (IaaS) and Virtualization.
To briefly recap…
Infrastructure as a Service (IaaS) provides a self-serve environment to deploy and run VM workloads on top of a software defined infrastructure, following the NIST principals of cloud computing, abstracting and removing the need to manage the underlying physical and software-defined infrastructure, and providing an API surface for management. IaaS removes the need to manage much of the traditional hardware and software stack, allowing admins to focus their time and energies on their workloads. Application availability is generally managed and delivered at the application layer, and this is the typical pattern used in public cloud environments.
Modern virtualization provides a software-defined environment, predominantly running traditional VM workloads, and typically with some additional enhancements like containerization. The hardware and software defined infrastructure are managed by a team of IT Pros, with application availability typically managed and delivered at the infrastructure layer, with robust infrastructure backup, DR, and replication technologies available for deployment. Virtualization remains the best solution for deployment of many traditional datacentre applications.
This is consistent with my previous opines on the subject, with this blog specifically concluding that 'Azure Stack doesn't replace virtualization'.
What is Azure Stack?
Azure Stack is an extension of Azure which runs in your datacentre, or with the Dell EMC Tactical Azure Stack, at edge locations without traditional datacentre facilities. Azure Stack provides Azure-consistent IaaS and PaaS capabilities, including an appliance-based hardware, software defined infrastructure, and Azure Services experience. Patch and Update, infrastructure, and software defined infrastructure management are handled by the Azure Stack appliance, delivering a true IaaS experience to the tenant and operator. On top of these strong IaaS foundations, Azure PaaS services can be deployed to provide features like Azure App Service,Azure Functions, IoT Hub, Event Hubs, and more.
What is Azure Stack HCI?
Azure Stack HCI is an evolution of the Windows Server Software Defined (WSSD) program, in which hardware OEM vendors provide tested and validated Hyper-V 2019 and S2D reference architectures to customers, to avoid the pain that comes from rolling your own hardware. Azure Stack HCI is built on the same software defined constructs as Azure Stack, and shares many of the same hardware design patterns.
Microsoft's announcement provides the following diagram covering the use cases and common elements of Azure, Azure Stack, and Azure Stack HCI. Azure Stack is designed to be consistent with Azure, while Azure Stack HCI delivers its best when connected to Azure, and this is a key differentiation and delineation.
In the diagram below, I've made an effort to show the common layers, the overlaps, and the differences in the management and admin space between Azure Stack and Azure Stack HCI.
From the bottom, Azure Stack HCI and Azure Stack hardware follow a common approach of rigorous validation. There is overlap in the exact hardware used, however there are also unique Azure Stack hardware SKUs (e.g. the Dell EMC Tactical Azure Stack), and a broad and rich set of Azure Stack HCI SKUs not available in Azure Stack, to provide additional infrastructure flexibility.
Each are built on a common foundation of Hyper-V, Storage Spaces Direct, and Hyper-V Software Defined Networking. In Azure Stack HCI this is Hyper-V 2019, in Azure Stack it's... internal :) In terms of admin management, in Azure Stack HCI you use Windows Admin Center which is free and provides some fantastic extensibility to make use of Public Azure services to enhance the platform's capabilities.
In Azure Stack, management services are consistent with those in Azure, with portal, PowerShell, API, and CLI options available as you would expect in Public Azure. On top of the software defined infrastructure constructs, Azure IaaS and Azure PaaS services are delivered to provide a cloud-consistent experience to tenants.
Azure Stack HCI is deployed and managed end to end by a team of IT Pros, who deliver highly available infrastructure to allow the running of traditional virtual machine based applications with high availability and infrastructure resiliency. Management and protection of Azure Stack HCI can additionally be enhanced with cloud services such as Azure Update Management, Azure Backup, and Azure Site Recovery running from Public Azure. This is pretty awesome.
Azure Stack is managed almost end to end by Azure Stack itself. This provides additional benefits such as enhanced security posture, and out of the box infrastructure audit documentation for certifications such as PCI DSS and ISO27001:2013. Microsoft and your OEM vendor take on responsibility for the ongoing lifecycle management, update, maintenance, and hardware replacement elements of the solution, again freeing up your time to focus higher up the stack.
You'll note that the braces in the above image don't stretch fully top to bottom though. This is intentional, because there are still some admin tasks to perform, carried out by the Azure Stack Operator. These include supply of power and cooling, initiation of fully automated patch and update, management of tenant plans and offers, and overall capacity management.
Azure Stack IaaS abstracts you away from the management of underlying infrastructure constructs, allowing you to focus your time and efforts where you can deliver the most value to your business. Azure Stack PaaS abstracts you a level even higher, with features like IoT Hub removing the need to do even IaaS VM management or updates to make use of the service.
Both Azure Stack and Azure Stack HCI are designed to complement and enhance Azure, and this is the critical piece for me.
Azure Stack extends Azure to where it cannot otherwise go, by providing Azure consistent services.
Azure extends Azure Stack HCI capabilities, by enhancing it with Azure connected services.
Whether Azure Stack or Azure Stack HCI is the best solution for a specific workload will depend on both that workload itself, and where you want to focus your time and energies. As has ever been the case in IT, there is no single best fit solution for all workloads. Through Azure Stack and Azure Stack HCI though, you can have the best of both consistent and connected hybrid cloud solutions, to meet most workload requirements.
Each of Azure, Azure Stack, and Azure Stack HCI provides capabilities the others cannot, while at the same time extending and enhancing the others to provide unique capabilities not otherwise possible. The Azure and Azure Stack brands have expanded and been enhanced today, and for me that makes this a pretty exciting time.
Hopefully this provides a good overview of how I see Azure Stack HCI fitting into the broader Azure and Azure Stack story, and in a future blog I'll explore how to make use of each in practice to complement and enhance the others as part of one harmonious and integrated story.
One question I've received several times so far is around Windows Server 2008 and SQL 2008 extended support, so will append the answer here. Windows Server 2008 and SQL 2008 benefit from 3 years of free extended security updates when running on Azure or Azure Stack. This benefit does not currently extend to Azure Stack HCI.