The public cloud is an excellent enterprise resource, but it has a downside: not everything can run there, even if your code takes advantage of cloud-native features. Sometimes you’re working with regulated data that can’t leave your site. Other times you’re trying to work with data that’s stuck at the end of a very low-bandwidth connection, or one that’s very expensive.

Microsoft’s Azure Stack is one way of squaring that circle, delivering what Microsoft calls an ‘Azure-consistent’ environment. Sat in your data center, Azure Stack runs the same code as Azure, using certified hardware to automate much of the underlying infrastructure. You don’t need to know anything about the systems that make up an Azure Stack stamp — anything from a half-rack of servers to two or four full racks. All you need to know is what services they offer, and what compute and storage is available to your applications.

Buying on-premises like the cloud, with cloud service

Now at just over a year old, with the first systems launching in late 2017, Azure Stack has continued to evolve beyond its initial relatively bare-bones set of capabilities. With each update, Microsoft adds more features, and supports more familiar Azure services. Like the public cloud, there’s a consumption-based pricing model. You pay for the services you use, with an on-Stack portal handling billing. If you’re not willing to make the upfront investment in hardware, some vendors also offer similar pricing models, with per-month charges for the resources you use.

SEE: Top cloud providers 2019: A leader’s guide to the major players (Tech Pro Research)

Since its launch, Azure Stack has added features as part of its regular updates. From a relatively basic start, with some core Azure services and support for virtual machines, it has gained significant functionality — both in programmability and in supported services. If a service isn’t available yet, Microsoft offers a regularly updated roadmap that shows what’s coming and when it’s due. There’s even support for an Azure Stack-focused version of the Azure Marketplace, so you can quickly add third-party software to your system.

Recent updates added more Azure features to Azure Stack. One important new feature, currently in preview, is support for Kubernetes. This allows you to build and deploy Kubernetes clusters, using the same resource manager templates as in Azure. Applications built using containers can be developed on local machines, and deployed both on-premises and in the cloud, making it a lot easier to have the same code running across your various cloud platforms. Developers also get access to Azure’s existing service fabric, making migration to and from the public cloud much simpler.

Azure Stack at the edge

One key scenario for Azure Stack is offering cloud-scale compute at the edge of your network. If you’ve got an oil production platform full of IoT hardware, then support for technologies like Azure Event Hubs is essential. Event Hubs aggregates data from IoT sensors, and pre-processes it before passing it on to machine learning or other analytic tools. With Dell recently announcing its rugged Tactical version of its Azure Stack hardware, there’s now an option for a rapidly-deployed IoT solution. It’s easy to imagine the Tactical Azure Stack set up on pallets and dropped from helicopters, or trucked in in the back of a 4WD, providing on-site IT solutions in emergencies or while new facilities are being commissioned.

Now that Azure Stack doesn’t need a data center, we’re looking at a much more flexible alternative to the cloud. With little or no need for infrastructure, setting up an edge for the cloud is simply a matter of shipping in three or four ruggedised modules, and hooking it up to some bandwidth. It doesn’t matter whether it’s at the end of a satellite link, or hooked up to a mobile phone, or even a white spaces radio system.

Using the Azure Stack development kit

Microsoft learned a lot with its earlier Azure Pack on-premises cloud. By having a white-glove installation, where all you need to provide is power, bandwidth and cooling, it has reduced exposure to the wide variety of hardware that’s out there. Yes, you may have a bunch of spare ProLiants or PowerEdge servers that could make a useful private or hybrid cloud, but the same model numbers harbour many differences.

By ensuring that every Azure Stack install from the same manufacturer has the same processors, the same memory, and the same disks, it’s a lot easier to keep hardware firmware up to date and to also take advantage of public-cloud-like economies of scale. Vendors will need to stockpile hardware for their Azure Stack customers, allowing them to buy in volume and get better prices. With specific support cycles for racks, they can also prepare updates in advance.

SEE: Vendor comparison: Microsoft Azure, Amazon AWS, and Google Cloud (Tech Pro Research)

Older hardware won’t be wasted; it’s still possible to download a free single-server development kit that gives developers a full Azure Stack environment. You can use it to build and test your code, before installing it on a full-blown Azure Stack instance. There’s no incentive to using it for production, for one thing there’s no production licence or support, and any homebrew system will be underpowered compared to a production Azure Stack.

If capacity is an issue, you can now add new nodes to your Azure Stack installs, simplifying the process of bringing in hardware. Instead of having to deploy a full rack of servers, you can add certified hardware one box at a time. Other tooling that’s been added to Azure Stack monitors its software to ensure that it’s not drifting from the Microsoft baseline, providing warnings of tampering and intrusion, as well as automatically remediating problems.

It’s good to see Azure Stack continuing to evolve. Azure keeps adding features, so each update to Azure Stack is an opportunity to catch up. While not every Azure service will make its way on-premises, you can expect to see most core features in Azure Stack’s portal. One change to Azure that may make it easier to bring features to Azure Stack is Microsoft’s continued move to supporting containers, Kubernetes, and serverless. By supporting core technologies that underpin Azure’s current roadmap, Microsoft will be able to speed up the transition from public to private clouds.