I have been lucky enough to working on a new platform at UKCloud, Azure Stack. It’s a very compelling proposition for many of our customers who want the benefits of public cloud but struggle to conform to the regulatory requirements placed against certain workloads. This is tough on them, they have invested heavily in Microsoft, have many great skills which have transitioned well to Azure, offering them far more agility, only to fall short when it comes to compliance for some of their workloads. This puts them in a difficult position, usually resulting in maintaining two streams of code for deployment against smaller regulated clouds at great cost and complexity to them.
Enter Azure Stack! Azure Stack is a on-premise extension to Azure. Sure it won’t have some of the features a public cloud can offer like limitless scale, AI and rapid such innovation but it does offer a huge number of features that allow for consistent operations between public cloud and specialist cloud. UKCloud will be able to offer compliant, connected Azure services to support workloads that just can’t be deployed to public Azure, with the same operational benefits to the customer.
Over the next couple of posts we will be following our journey, deploying and understanding Azure Stack. This first post will cover the Azure Stack Development Kit and the benefits it brings to customers, later posts will cover some of the differences between Azure Stack and Azure and some best practices that can be adopted to maximum effectiveness when operating both platforms.
Azure Stack Development Kit
ASDK is a great single node demonstrator that allows Azure Stack adopters to cut their teeth on Azure Stack with minimal investment. There are a few caveats that are probably worth pointing out.
- ASDK currently only supports physical servers. In this post we’ll show the deployment on a virtual machine and actually the community support has been really good.
- ASDK runs all the networking locally to the box. There are a few workarounds that will allow you explore proper external connectivity but again they are not official.
- ASDK does not generate any billing data so it is not possible to use it to test billing integration.
- ASDK does not allow you to associate tenants outside of the domain that you link during the setup, making true multi-tenancy impossible to test
- ASDK does not allow you to perform some of the error remediation like restarting roles
- ASDK does NOT like being rebooted
Other than these minor niggles the ASDK really does help get quick and easy exposure to many of the Azure Stack features. A lot of effort has been made to aid adoption of “add on” services like SQL database or “app services” with ARM templates to deploy the necessary services like SQL servers and file servers which speeds up functionality testing no end.
Theres are great repo of resources here.
We have a number of labs up and running with different features being explored by different teams. To reduce operating costs we have deployed the ASDK virtually to VMware. Whilst not officially supported it works well
- 12 vCPUs (add more if you intend to enable lots of features)
- 96GB RAM (add more if you intend to enable lots of features)
- VMWare HW version 11 or higher
- Windows 2012 R2 or higher
- 1 OS disk, 140GB or higher
- 4 data disks, 250GB or higher (if you plan to enable lots of services definitely add bigger disks!)
I am not going to rewrite the installation docs here but more share our experience of the installer. Follow this link to get the deploy notes.
It takes patience to install the ASDK. The average non-failing deployment takes around 3 hours, but the reality is more like 6-8 after a bit of troubleshooting or a re-run.
Whilst the developers have made an effort to write code that can pick up after a failure it isn’t actually idempotent. We have experienced tasks timing out, the install scripts exits and upon a rerun tries to picks up on the task it failed to complete. Rather than checking if the task actually completed it dumbly attempts to retry the step again, whilst in reality the task just took a little longer to run and it eventually completed successfully. This cause instead failure because it cannot redo the action and you’re into the realms of a redeployment.
It might be worth looking at this post which explains the steps the installer picks up from and how to reset them if you’re feeling brave
The docs are more of a pointer, they can be ambiguous between Azure Stack proper and the ASDK and they are not always comprehensive, but hey it’s early doors so we forgive them
The MSDN Azure Stack community forum have been great at answering our queries so I’d recommend people to engage.
I’d encourage any customers looking at Azure Stack with UKCloud to have a punt at running the ASDK. It will help you work out how it can support your business and what changes you may need to think about making to enable the most effective management of your cloud workloads.