Technologies like Azure Stack and Windows Server 2016's containers make Azure's services available on your own hardware, letting you build a new generation of applications and services that can run both on-premises and on Microsoft's public cloud.
Navigating the boundary between on-premises and cloud hasn't been easy for Microsoft. It's got a lot to juggle: a legacy-base of software and services that's almost unmanageable, an ongoing set of licensing revenues from a large (and still growing) customer base, as well as partnerships with server and software vendors. But as its Azure cloud service has grown, Microsoft has had to provide tools and services to help bridge the gap between the cloud and the data centre.
So perhaps it isn't surprising that there have been several false starts along the way, including the failed promise of its cloud-consistent Azure Pack and its on-and-off premises AppFabric platform-as-a-service. While the Azure Pack may have failed to deliver the long-promised 'Azure-in-a-box', it did form the basis for the software elements of the hefty Cloud Platform System preconfigured racks developed in conjunction with Dell.
Azure's initial PaaS offering was quickly superseded by a Hyper-V virtual machine-based IaaS service, linked to various platform services. These replicated on-premises tooling, making it easy to move an existing physical infrastructure to the cloud, in much the same way as deploying on AWS or Rackspace's cloud. VPN support helped link on-premises and cloud infrastructures, while the addition of ExpressRoute's MPLS direct connectivity from Azure to on-premises networks made it easier to deploy Azure services as part of a hybrid infrastructure that could treat Azure as a part of your existing network.
Support for various modern design patterns in Azure made it possible to use its IaaS to burst capacity from local services, or as an extension to local compute when a significant amount of parallel processing capacity was needed. As Azure and Windows evolved, it also became possible to use Azure to host familiar desktop applications via RemoteApps and, with support for Docker containers in Windows Server 2016, as part of a set of compatible host environments for containerized applications -- with little or no difference between on-premises and on-Azure deployments.
A new Azure PaaS model, Service Fabric, has recently been released, which provides support for a range of microservice-based cloud development models -- including the increasingly popular actor/message design pattern and the resulting message-oriented programming model. Service Fabric is key to Microsoft's hybrid cloud development strategy, as a promised on-premises version will support the same code running in your data centre as in the cloud -- with no need to make changes when migrating from one to another, or when using ExpressRoute or VPN connections to link the two. Developers will be able to employ skills developed building apps using node.js and other frameworks to deliver server-less applications via Service Fabric.
Service Fabric is a key component of the biggest part of Microsoft's hybrid cloud vision: Azure Stack. Announced in January, Azure Stack is intended to deliver what Microsoft calls a 'cloud-consistent' private cloud platform. Built on top of the upcoming Windows Server 2016, Azure Stack deploys a data centre-scale platform that offers Azure compatible APIs for management and deployment, as well as a subset of the Azure PaaS storage and database services. Using Azure Stack you'll be able to deploy and manage IaaS servers and virtual networks, using the same resource description language and the same Gallery and Portal as the cloud-hosted Azure.
It's an interesting approach, as while it's designed for businesses that want to take a cloud-like approach to delivering IT inside their organizations (including deploying on cloud-service-like hardware) across multiple servers and racks, it can also be deployed on a single high-end server as a development and test tool -- allowing developers to build cloud apps locally and then deploy them to the cloud.
Azure Stack doesn't replicate all the Azure services locally. Instead it takes a hybrid approach, offering access to Azure cloud services alongside local services. There's no need for Azure Stack to offer a cloud backup service, for example -- it uses Azure's instead. It also takes advantage of Azure's Active Directory tools for single sign-on and account management.
Microsoft's hybrid cloud vision goes beyond its Azure platform into its hardware and its core enterprise applications. One intriguing example is the 2016 release of SQL Server, which adds a new Stretch option for your databases. Here, instead of adding more local storage for data, you use Azure to host a new database shard that's populated with your least-used data. Instead of switching completely to cloud, you retain your on-premises database performance while taking advantage of Azure's low-cost storage option for that 80 percent of your data that doesn't need instant access.
Similarly, Microsoft's storage hardware offerings are focused on a hybrid model. The recently renamed Azure StorSimple storage appliances offer a local tier of flash and spinning disk, as a cache to an Azure-hosted storage blob. StorSimple is an interesting tool, as it offers a bridge between on-premises and cloud storage, with an Azure-hosted virtual appliance giving cloud applications access to data stored by on-premises applications. An iSCSI appliance, StorSimple is a block-level storage system compatible with most applications. Like SQL Server 2016's Stretch mode, StorSimple uses Azure to host least-used data, although there's also the option to store snapshots of all your data as part of a disaster recovery plan.
Cloud services are an ideal platform for disaster recovery, and StorSimple is only part of Azure's role here. Using Azure Site Recovery, virtual machines and data snapshots can be stored in Azure at minimal cost, and activated only when the on-premises systems are out of action. Alternatively, Azure can be used a relay between multiple disaster recovery sites, delivering snapshots on a regular schedule. Site Recovery can also be used to migrate entire sites to the cloud where necessary, allowing physical data centre infrastructure to be upgraded without losing service.
A means to a public cloud end
Microsoft's hybrid cloud strategy is one that's in tune with most businesses' on-premises strategies, supporting them using cloud resources to enhance their existing compute and storage capabilities. However, it has another purpose: to make it easier to migrate those on-premises resources to Azure. And that's the real message in Microsoft's hybrid cloud: that the days of the on-premises data centre are limited, and that the economies of scale in the hybrid cloud are inescapable. More importantly, it's a message that embraces a new set of development methodologies encapsulated in Service Fabric: that the future is serverless, and one where applications are scalable clusters of microservices linked by messaging.
There's another aspect to Microsoft's hybrid cloud that's often overlooked: its participation in the Open Compute Project. By sharing the hardware designs it uses in its Azure data centres with the wider community, Microsoft is helping to move the entire industry in the direction of common hardware platforms that are designed to host virtual infrastructures. It's also investing in software platforms, like Mesosphere, that are designed to help deliver and manage those data-centre-scale infrastructures no matter where they are running -- on-premises or on Azure.
If you listen to the language of Redmond, a new phrase is starting to become a regular part of Microsoft's day-to-day discourse: "planet-scale". It's a phrase that encompasses a belief in hyper-scale platforms and in the new applications and services that they will support. It's also one that drives Microsoft's approach to hybrid cloud -- that it's just a transition between local computing and computing on a planetary scale.
It'll be interesting to see just how this transition plays out. But for now, thanks to technologies like Azure Stack and Windows Server 2016's containers, Azure's services are available on your own hardware, letting you build a new generation of applications and services that can run both on-premises and on Microsoft's increasingly planet-scale cloud.