The Software Defined Data Center, or SDDC, is the logical endpoint of virtualised compute, storage and networking. When all the key elements of a data centre can be treated as fabrics, where applications get the resources they need when they need them, it's possible to abstract your entire operations model away from a physical data centre. You're still deploying hardware, but it's configured automatically as it's deployed,
The heart of Microsoft's early SDDC approaches was a series of technologies codenamed Whitehorse, that would allow system administrators to build model-driven management for whole sites. The idea was an interesting one, and it drove the development of much of Microsoft's server management tooling, as well as ensuring that Microsoft's focus on the future of the data centre was built around automating as much as possible.
However, much of the current approach builds on two, much later, foundations. One is the work Microsoft has done to build and run Azure, its cloud platform. Designed to run at massive scale, Azure is by definition software-defined. The underlying compute and storage fabric must have the ability to be reconfigured on the fly to support the demands of both its platform-as-a-service and infrastructure-as-a-service users -- as well as the software-as-a-service businesses that run on top of it.
Building and running Azure, Bing, Office 365, and its other cloud properties has given Microsoft an incentive to build key SDDC features into its Windows Server operating system, starting with Windows Server 2012. The second pillar of Microsoft's SDDC, Windows Server has spent its last two releases, Server 2012 and Server 2012 R2 migrating from a typical data centre server running applications to one that's designed to host and run virtual workloads.
Windows Server 2012 was the first release to encompass all the elements needed to build a SDDC. It added an extensible virtual switch to the Hyper-V hypervisor, and brought in new tools to build and manage pools of storage in Storage Spaces. With these three elements, Windows Server now had all the features needed to build and run a completely virtualised infrastructure -- from compute to storage to networking.
PowerShell: Microsoft's SDDC glue
The glue that holds it all together is Microsoft's automation framework, PowerShell. It's fair to say that without PowerShell Microsoft wouldn't have an SDDC strategy. The components that make up an SDDC need to be automated; otherwise you lose the benefits of scale that you get from treating an entire data centre as software. An extensible virtual switch also allows Microsoft and its partners to add additional networking functions, including firewalls and load balancers, to a Hyper-V based virtual network.
It's not easy to build a Windows Server 2012 R2 SDDC. You need to implement a complete management framework, using System Center, before you can even start thinking about how to orchestrate servers or how to give users access to a self-service portal. However, there is an alternative, the Azure Pack, which aims to bring some of the Azure management automation features to Windows Server, with basic infrastructure-as-a-service features as well as high-density web servers.
The Azure Pack formed the basis of Microsoft's collaboration with Dell that delivered its Cloud Platform System. Designed to be a turnkey set of SDDC elements, CPS brought all the key elements of the Windows Server SDDC into one place, using a set of predefined Dell compute and storage hardware. CPS was an interesting approach to SDDC, delivering hardware and software that was ready to go. It also provided important lessons that enabled Microsoft to deliver the next stage of its SDDC strategy.
Launched in early 2016, with a customer preview, the core of Microsoft's SDDC vision is, of course, Azure Stack. While you can use Hyper-V and various components of the System Center management suite to build your own SDDC from scratch, it's a lot easier to use Azure Stack to deploy an entire data centre onto bare-metal servers -- from host OS to software networking to virtual machines, and even to local API-equivalent implementations of Azure PaaS applications.
Once you're running Azure Stack, you've also got access to the Azure Resource Manager (ARM) templating model, allowing you to quickly build, script, and deploy the various components of an application infrastructure on your Azure Stack servers, including a complete virtual network infrastructure. ARM service descriptions are a key element of the Microsoft SDCC, and are key to its current automation approach, allowing operators and developers to collaborate on ARM descriptions of sites and services.
Microservices, containers & Nano Server
ARM is also closely tied to Microsoft's support for microservices -- a key concept in SDDC implementations. Much of Azure Stack is designed to manage the delivery of microservice-based applications, using Docker containers to host application images while running on Hyper-V virtual machines.
Users also get access to a version of the Azure Portal, with support for ARM-based deployments and a library of preconfigured virtual machines. At a lower level there's also access to Microsoft's serverless computing elements, including the Service Fabric microservice framework.
Much of this new functionality relies on the Windows Server 2016 wave of tooling. This provides direct OS support for containers with PowerShell management for Docker, as well as improved storage virtualisation and a new container and microservice-focused deployment model, the Nano Server.
Technologies like Nano Server are key to Microsoft's future SDDC strategies. They allow you to build and encapsulate microservices in containers, deploy them in simplified, easy-to-manage and easy-to-deliver servers. You can use Azure Stack to manage your servers and containers, or you can take advantage of open-source technologies like Kubernetes and Mesosphere to coordinate and manage services across an entire data centre -- technologies that Microsoft is investing in outside of its own SDDC tooling.
Owning and managing a hyperscale cloud is a definite plus for Microsoft's SDDC. It can build and prove new tools on Azure, before bringing them on-premises with Azure Stack. It also means that your ARM definitions of servers and services are able to migrate between your network and Azure, making Microsoft's on-premises private-cloud SDDCs part of an Azure-focused hybrid cloud. It's an interesting approach, and one that means you can quickly transition from your own software-defined data centre to Microsoft's.