Microsoft has long promised that it would deliver "Azure in a box" to customers who wanted access to cloud services but were unable to move workloads off-premises. Although Azure's cloud services comply with many key business regulations, there are still companies that need to keep tight control of their data, whether for data sovereignty or for compliance with industry-specific regulations.
Microsoft will soon release its third "Azure in a box" iteration to satisfy those companies. First there was Azure Pack, then came CPS (Cloud Platform System), and now it's the Azure Stack. With the release of a third technical preview and general availability sometime later this year, Azure Stack will replace CPS, bringing together an Azure-consistent software platform with managed third-party hardware.
The journey from Azure Pack to Azure Stack
CPS and Azure Pack offered a limited set of Azure features, mainly to deliver high-density web applications and to host virtual infrastructure. (Azure Pack was especially limited.) In addition, CPS had licensing issues. Also, neither was easy to run, with a separate set of administrator tools that were focused on building and offering service plans -- an approach that was often at odds with how most organizations operate IT.
Azure Pack could be downloaded and set up on any hardware, which caused more problems. That's why the CPS offering combined software with hardware: There were only two preconfigured racks, one from Dell and one from HPE. That preconfiguration approach simplified updating, workload movement, and support considerably -- all critical for cloud systems, so it allowed both vendors to offer cloudlike operations. But it came at a price that many companies couldn't afford.
The new Azure Stack (the similarity of the names is annoying!) is very close in terms of functionality and APIs to the current versions of Azure, unlike its predecessors. This time, it really is Azure in a box. Like CPS, Azure Stack combines preconfigured hardware and software, for the same assured operation for any workload and for any updates that CPS offered. But Azure Stack will be available as a pay-as-you-go service, using the same metering and billing mechanisms as public Azure does, to address that sticker-shock issue in CPS. (The hardware too will be pay as you go.)
Azure Stack is a subset of the public Azure cloud
Once up and running, Azure Stack gives you access to a substantial subset of the public Azure cloud's IaaS and PaaS features. But be clear that Azure Stack will not offer everything the public Azure does, and Azure Stack may not gain Azure features well after they are available via the public Azure. That's the same approach Microsoft is taking on all its hybrid and on-premises offerings: The public cloud version comes first and is a superset.
Still, you can do a lot with Azure Stack. It gives you the same market model for services and VMs, along with an identical portal experience. Applications and VMs use the same Azure Resource Manager model on Azure Stack and Azure, so you can quickly migrate them between the two services.
Application developers can take advantage of PaaS services like storage, Azure's app back-end tools, and its serverless Azure Functions, as well as tools for building scalable web applications and managing APIs. Businesses also get access to IaaS management tools like Mesos and Cloud Foundry's services. There's even support for cloud-optimized blockchain services, making Azure Stack an attractive approach for financial industries wanting to experiment with the latest finance-tech tools. Key services that won't arrive until after Azure Stack is launched include container services and the Service Fabric PaaS environment.
Where to use Azure Stack
Azure Stack is intended for mainly hybrid applications, used as part of a distributed application platform where regulated or sensitive data is held on premises and processed locally, while the cloud is employed for the bulk of the application, working with unregulated data. Azure Stack can also function as part of a mainframe replacement program, hosting workloads while applications are re-architected either to run on-premises or in the public cloud.
One interesting use of Azure Stack is where there's critical data but limited bandwidth. Data can be processed locally and the results delivered to the public cloud. It's an approach that works particularly well on ships, where modern control systems capture significant amounts of telemetry that's needed to manage engines and cargo. Data can be processed and utilized on-board, while exceptions can be sent to the head office over expensive low-bandwidth satellite data connections. Similarly, an Azure Stack install on a cruise liner could run CRM and entertainment systems for a ship carrying thousands of passengers.
The pay-as-you-go nature of Azure Stack (both hardware and software) could also work well where capacity is only required temporarily or where it must be portable. A containerized Azure Stack stamp can be delivered where and when it's needed, bringing a new dimension to the idea of an on-demand cloud. It's an idea that works well for many different scenarios: big sports events, IoT pilot projects, even disaster recovery as an endpoint for Microsoft's Azure-based business recovery services.
For systems that carry production workloads, you'll have to invest in a section of your datacenter dedicated to Azure Stack. With pay-as-you-go hardware and software, it won't be as large a capital investment as you might have expected. Of course, you'll need power and networking, but everything else becomes an operational expense, so you even get the advantage of the cloud's pricing model.
For developers who want to learn about, and experiment with, key cloud concepts, Microsoft will continue to make available the single-server Azure Stack that's been the basis of the technical previews. Renamed the Azure Stack Development Kit, it should help bootstrap cloud development, while also giving businesses the tools they need to evaluate key Azure Stack services before making the investment in a full stamp of servers.