Microsoft hasn't released as many details about the next version of Windows Server, which it now says will be available in 2016, as it has about Windows 10. Windows Server architect and creator of PowerShell, Jeffrey Snover, gave more details in a recent Microsoft UK event, noting how Azure initially used a version of Windows Server that had been rewritten to suit the very different needs of running a cloud.
Since then, Windows Server has itself been reworked to support running cloud services like Azure better, and if you want a private cloud, Microsoft offers both the Windows Azure Pack to give you IaaS hosting with cloud-style subscriptions and fast VM deployment, and the cloud-in-a-box Cloud Platform System which gives you an "Azure-consistent" mix of Window Server, System Centre and the WAP portal all preconfigured on Dell hardware – everything from the servers to the SSDs to the network cables are set up and ready to go.
PowerShell and DSC
That's all done with PowerShell scripts and Desired State Configuration (DSC), a PowerShell system that lets you write configurations once and have them automatically deploy and stay consistent across multiple machines.
With the next version of Windows Server, DSC scales up to running an entire cloud data centre with software-defined networking features that go from discovering and managing the new topology, to monitoring the network and guaranteeing network Quality of Service. Not to mention the kind of fabric network management that you usually buy expensive network hardware to achieve – but you'll be able to do it all with commodity network hardware (as long as it supports current standards like RDMA and SMB 3).
Because Azure runs on Windows Server, Microsoft can use Azure for prototyping new features for Windows Server. That's what's happening with Docker support and Microsoft is doubtless prototyping the software-defined networking improvements there too.
But not everyone wants to run a cloud, so the "deep refactoring" that Snover says has gone on for Windows Server vNext (which we expect will be called Windows Server 2016) is delivering a layered architecture that takes the current concept of server roles right down into the OS itself, making it more modular. (This is also an extension of the refactoring that's been happening in the Windows client under names like MinWin, organising the spaghetti of API calls into more logical layers that are easier to isolate and update.)
At the lowest layer is a cloud-optimised server that Azure (and private cloud systems) will run on. On top of that is the 'full' server that you'll use for an on-premise Windows Server system. "There will be two APIs, for server and for the cloud-optimised server," he explained. You'll be able to "just take the components you need."
Container support is at this level, with two containers: one container system for the cloud-optimised server (which we expect includes the Docker engine support that will be native in the kernel) and another container for the 'full' version of Windows Server. "We will have two flavours of compute containers – one for application compatibility," Snover said, as well as "containers optimised for the cloud".
The Windows client team has already talked about using containers in Windows 10 as Virtual Security Modules to make sure the user authentication service runs in a separate VM. Snover didn't go into details about similar security features in Windows Server for "assurance," but he did suggest preparing by buying servers that have the same Trusted Protection Module all PCs now include.
"With TPMs we're not quite there yet," he said. "Some vendors have them and some don't. You should be demanding them, because a bunch of assurance investments going forward are going to require TPM on the server."
Snover also showed another layer in Windows Server, for situations when you're running a client experience on a server, which has stopped some server applications being fully automated. Automation is key for running a cloud and it makes running any server far simpler and more reliable – that's why it's such a big focus for Microsoft in Windows Server now. "For a modern data centre," Snover points out, "remote management is non-negotiable."
"People who wrote server applications wrote a local GUI for admin tools," he explains. "But they would put a bunch of business logic in the GUI and call private APIs because that's easier [for them to build], but then they didn't have formal remote management APIs so you couldn't automate things."
So the next version of Windows Server will let them write a client that runs on the server, so it's possible to work with it in the Windows shell, and see it alongside the browser they're looking at documentation in or logging into Azure with – but that uses Windows Server APIs that can be automated and managed remotely. "You can put a client on top of a server, but use the server APIs." That way, the applications you run on a server won't stop you being able to manage that server without ever going near it.