Azure Stack - What, why, and, how?

You may well have heard that there is a way of running Microsoft's Azure public cloud service in your own datacenter. You may have paid it lip service and not believed such propaganda.

Well - folk It is here it works and it provides an opportunity to do so much more with your own hardware on site and provide a number of Azure services to your own employees and customers.

This post is aimed at explaining what Azure Stack is, what it does and how you can go about learning how to use it.

What Azure Stack is

First the facts. Microsoft Azure Stack, according to the Azure Stack Operator Documentation is

"Microsoft Azure Stack is a hybrid cloud platform that lets you provide Azure services from your datacenter. "

Now as you probably know Microsoft Azure now has over 50 regions made up of 100's of datacenter buildings spread across the face of the globe. There are millions of compute cores providing services as diverse as Traffic Manager, Content Delivery Networks, Machine Learning, HDInsight, SQL Data Warehouse and many more. There is no way that a normal or even a large datacenter can house all these services for you and Azure Stack is not designed to do so. Azure Stack will provide a growing sub set of the Azure services for use in a hybrid (connected) or even a disconnected scenario.

Azure Stack is available now in two deployments. There is the Azure Stack licensed for use in production. This is provided as the Azure Stack Integrated System.  

The integrated system is available through a small number of  hardware partners, (currently just four Cisco, Dell EMC, HPE and, Lenovo). This allows the hardware vendors to offer a combined system of hardware and software to provide just the flexibility and control you need over your system. The integrated system is available in configurations for 4 nodes to 12 nodes. Support is provided jointly through the hardware partner and Microsoft. This is intended for the deployment of production workloads in a new and innovative manner.

Licensing the Azure Stack integrated system is dependent upon the method you use to deploy and can be varied in several ways from Pay as you go (just like Azure) to a consumption model for the disconnected scenario. A later post will cover these in detail.

The alternative to the integrated system is the Azure Stack Development Kit (ASDK). ASDK can only be deployed on a single node and is intended to allow you to evaluate and learn all about the platform and its services. ASDK can be provided  within your organization as a developer platform completely consistent with the Azure APIs and tooling. ASDK is not licensed for production workloads. For this reason it comes with the following limitations.

  • ASDK is associated with a single Azure Active Directory (Azure AD) or Active Directory Federation Services (AD FS) identity provider. You can create multiple users in this directory and assign subscriptions to each user.
  • With all components deployed on the single machine, there are limited physical resources available for tenant resources. This configuration is not intended for scale or performance evaluation.
  • Networking scenarios are limited due to the single host/NIC requirement.

Indeed to make sure it is of no practical use in production the ASDK will disable all except for one NIC on the host machine during install.

The host machine for the ASDK requires the following specification.

The many and complex PowerShell scripts used to install the ASDK check for all of these and will  not allow installation unless you amend those script tests. To be brutally honest doing so is counter-productive since these hardware specs are definitely the minimum to run the ASDK effectively.

Deploying the ASDK

This is not a trivial enterprise! I have installed ASDK several times (it will only work for 180 days each time you install it). The exercise took me between 7 and 10 hours each time. It is however not a complex job. (If you know PowerShell)

First you download the Development Kit package. You need to register first. Having downloaded and extracted the files, you need to copy the cloudbuilder.vhdx file to the host machine.

Set the host to boot from this VHD and you are good to go. There is now a GUI installer or the PowerShell option. At this point you can choose to use Azure AD or AFDS to provide the identity solution for your deployment. I use Azure AD. Once you have run the InstallAzureStackPOC.ps1 PowerShell script and waited the requisite time. You will be left with a Hyper-V server joined to a domain with the following Virtual Machines (VMs) which form the infrastructure of your Azure Stack Dev Kit. The below diagram shows the logical architecture of the ASDK.

The VMs are listed in the table below with their function.

Notice there are VMs for Software Load-balancing and Network Controller, services which appear in Windows Server 2016 but originated as Azure services and are used to manage the full Azure public cloud.

Interesting note: Any VMs you create in Azure Stack will appear in the Hyper-v host, as shown below

Here you can see the VMs alongside two additional VMs with long GUID names one is a Windows Server VM with 28 GB RAM and the other is an Ubuntu VM (cos I love Linux too) with 56 GB RAM.

What azure stack does.

Azure Stack provides a subset of Azure services. There are foundational services which are deployed when you deploy your ASDK, these are;

Compute

Storage

Networking

Key Vault

There are also additional Platform-as-a-service (PaaS) services which can be configured and installed by an ASDK administrator.

App Service

Azure Functions

SQL and MySQL databases

Azure Stack will keep on adding services to this list. The Azure Stack Roadmap is here

Learning How to use Azure Stack

Nowadays this section is always very short and very easy, even if the learning is not.

Pluralsight are offering free training for Azure Stack.

Microsoft Virtual Academy has some Azure Stack content

Channel9 has some great content here

Finally the docs.microsoft.com site has all of the Azure Stack documentation in.

BUT the very best way to learn is to dive in and understand the differences between Azure and Azure stack operation by deploying it yourself. it can even be deployed on an Azure VM is you like!

The Concept of an administrator portal doesn't really exist in Azure, but in Azure stack you have both an Admin portal and an operator portal as shown below.

The administrator portal allows you to create your very own marketplace as shown in the first graphic of the post. It also allows the administrator to create plans of resources to then offer out to users who can then create or accept subscriptions based on those offers.

Once a user has a subscription he can then deploy resources in exactly the same fashion and methods as Azure. The portal, the PowerShell and the resource manager templates.

You can see above the Ubuntu VM I showed in the Hyper-v manager graphic.

I have to thank Lenovo UK for the loan of the hardware to deploy my ASDK, it is a Lenovo 9650 with 20 cores and 265GB RAM.

More in the next post on Azure Stack, dive in and enjoy.