1 Introduction
Microsoft is a multinational technology company headquartered in Redmond, Washington, USA. Founded in 1975, it has risen to dominate the personal computer software market with MS DOS and Microsoft Windows operating systems. Since then, the company has expanded into multiple markets like desktop and server software, consumer electronics and computer hardware, mobile devices, digital services and, of course, the cloud. Microsoft is the world’s largest software company and one of the top corporations by market capitalization.
In 2008, the company entered the cloud computing market with their Azure platform, and since then cloud services have been one of the primary drivers in Microsoft’s own digital transition from manufacturing towards becoming a global digital service provider. Currently, Microsoft’s cloud platform provides a full stack of services ranging from compute and infrastructure to data storage, mobile and IoT device management, and, last but not least, identity. Microsoft Azure is one of the global leaders in the cloud service provider market, second only to AWS.
However, despite multiple advantages of moving business apps to the cloud, a 100% migration to the public cloud is still not a feasible option for the foreseeable future. For many reasons, including technical challenges, regulatory compliance or the need to maintain legacy applications, companies have to opt for hybrid deployments, facing the burden of maintaining on-premises and cloud infrastructures in parallel. This does not just lead to a massive maintenance overhead; a bigger problem is that traditional on-premises applications and apps developed for the cloud are designed, developed and operated in fundamentally different ways, with different architectural patterns and largely incompatible development tools.
Implementing the same DevOps practices across hybrid environment has been every developer’s dream since the early years of cloud computing and various vendors have tried to come up with different solutions for this challenge. Unfortunately, most of those are focusing on extending on-premises infrastructures to the public cloud, essentially by treating the cloud just as an extension of a corporate datacenter. This approach solves quite a few technological challenges, but does not let developers take advantage of any higher-level PaaS services from a cloud provider’s portfolio.
The opposite approach – designing apps “cloud-first” but being able to deploy them on premises as well – looks much more promising, at least in theory. A number of solutions following this approach already exist on the market, but they usually involve a lot of design and integration effort of bridging fundamentally incompatible on-premises and public cloud infrastructures. The complexity of deploying such a hybrid cloud platform can be overwhelming even for large enterprises.
With Azure Stack, Microsoft is joining the competition in this market with an impressive turn-key solution, which is delivered as a fully integrated hardware, software and service package directly from one of its hardware partners. Azure Stack is a native extension of Microsoft’s Azure public cloud, providing the same core IaaS and PaaS services, implementing the same application model and supporting the same APIs, management and development tools. Even billing and technical support are fully integrated into Azure. Can this be every DevOps team’s dream come true? Let’s find out.