Microsoft announced in a blog post last week, Windows Server and System Center roadmap update, that the updated versions of Windows Server and System Center will now ship in 2016, with the exception of System Center Configuration Manager (SCCM), which is expected to RTM at the same time as Windows 10, to support deployment of the new client OS.
Editor’s Note: The phrases ‘Windows Server 10’ and ‘Windows Server vNext’ have been used interchangeably as the unofficial names for the next release of Windows Server. To standardize until a final official product name is announced by Microsoft, we’ll default to using Windows Server vNext.
In What about Windows Server 10? on the Petri IT Knowledgebase, I anticipated that after Microsoft’s Windows 10 media event on January 21st, which focused exclusively on Windows 10, Surface Hub, and HoloLens, Windows Server vNext and Windows 10 might not be released simultaneously, considering that Server didn’t even get a mention in passing. But for those of us that are familiar with the ‘better together’ slogan, which has historically been used to market Windows Server and the accompanying client OS version, it may come as a surprise that Microsoft has decided to delay the next server version of Windows.
October 2014 saw the release of the Windows Server Technical Preview, which included a limited set of new features, including Storage Replica and new Hyper-V features, all welcome but not revolutionary. Missing in action from this early preview was the Docker support that Microsoft announced at TechEd Europe in Barcelona the same month, and I suspect there lies the key factor for the delay.
Azure has supported Docker in Linux VMs since last summer, but Windows Server 2012 R2 doesn’t currently support it. Microsoft also made available its first Docker image in the Azure marketplace earlier this year. For more information on Docker and the planned support in Windows Server, see the articles What is Docker? and Are Docker Containers Better than VMs? on the Petri IT Knowledgebase.
Docker leverages containers, a technology native to Linux, and union file systems, also available as part of Linux distributions. Windows doesn’t include a union file system or Linux-style containers, so providing Docker support in Windows is going to be a challenge for Microsoft.
Having said that, TechRadar Pro reported that technologies already in Windows will be adapted to provide the functionality required. Automated file system and registry virtualization was introduced in Vista as part of User Account Control (UAC), allowing legacy apps that previously required administrator privileges to access restricted areas of the file system and registry, to run under a standard user account. And Windows also already includes network virtualization, which is provided as part of Hyper-V.
But because Docker uses a stacked image system, the one-level virtualization currently available in Windows needs to be developed to support layered namespace virtualization, so updated Docker images can reference base images. Additionally, the way processes access resources, such as CPU, memory and disk I/O etc., needs to be improved for better isolation and allocation. Elements of Microsoft’s Drawbridge Library OS will also be used with what’s previously been developed, so that Windows containers will work seamlessly with Docker.
With the complexities and dependencies of Windows applications, and Docker’s multi-layered images, engineering Windows containers is likely to take some time. It’s also likely that the process will require a longer gestation period than the evolutionary improvements seen to existing features in October’s technical preview.
Mary Jo Foley at ZDNet reported that Microsoft announced “adequate customer and partner feedback and participation is critical” in developing the next version of Windows Server, without calling out any specific features, but committed to releasing high-quality previews in 2015. The trend of new features arriving in the cloud might also be a factor, and it will be interesting to see if Windows Server 10 or Docker for Windows will be available in Azure before being released as an on-premise product.