During the TechEd conference earlier this month, Microsoft announced what it has been working on with its flagship server product and demonstrated a few of its new features. But there is a larger, more detailed story underneath those keynote sound bites and some things you discover only when you work directly with the code.
Late last Friday, I got my hands on a copy of the beta release for Windows Server Blue, which will be formally known as Windows Server 2012 R2 upon its release later this year, and I spent last weekend exploring the build. Here is a first look at the next version of Windows Server, which should be available as a preview today and, as Microsoft announced at TechEd, generally available by year-end.
The idea of the cloud OS
First, however, it is important to look at what Microsoft is trying to accomplish with this release. Microsoft has long been touting the idea of a cloud operating system; the company sees this as an operating system that pulls together all computing resources -- not just at an individual node level, but across the data center. A related goal is to expose in the same way the pieces that make everything run, no matter where they are physically located.
The overarching design goal for Windows Server 2012 R2, therefore, was to provide an operating system platform that basically lets entire data centers be managed just like individual computers -- which in turn allows the applications and tasks being run within those data centers to shift seamlessly between data centers.
Overall, Windows Server 2012 Release 2 has much to recommend it, our reviewer finds.
According to Microsoft, the goal is one consistent platform between a customer's own data centers, a service provider's private cloud and the public Windows Azure cloud service. The same operating system, Windows Server, should work everywhere in the same way with the same tools no matter where things are hosted.
The most explicit example of a feature designed to make one OS work on premises or in the cloud is the Windows Azure Pack for Windows Server. This takes the management portal and capabilities of the Windows Azure service and puts it into a nice, installable package on top of Windows Server 2012 R2.
With the Azure Pack living in on-premises data centers, you essentially create a private cloud, where users can create websites, virtual machines, SQL Server-based databases -- not MySQL yet -- Active Directory integration modules and more, all from a self-service web portal. Administrators can configure how resources are distributed and which users can ask for what services, and a powerful REST API opens the door for other applications and services to also request services from the private cloud in the same way they do from Windows Azure itself.
To achieve these goals, there is plenty going on under the hood in Windows Server 2012 R2.
Enhanced virtualization with Hyper-V
Hyper-V has been around for a while, but Microsoft shops in particular will surely find some of the improvements to the hypervisor technology compelling. Instead of just enhancing or tweaking the base functionality of the virtualization platform, Microsoft seems to be pushing the envelope in the virtualization industry with a couple of these new features.
Perhaps the most interesting development is what Microsoft calls "Generation 2 virtual machines." Most virtualization solutions on the market today emulate old pieces of hardware for true maximum compatibility, but they do so at a price of efficiency and performance.
Instead, Generation 2 VMs are newly designed to rid themselves of legacy components. They were created in acknowledgment of an era where virtualization is mainstream and operating systems are aware, and in some cases even prefer, being virtualized. This means no devices need to be emulated and the whole virtual machine can be based on the newer Unified Extensible Firmware Interface, and not on old BIOS.
Generation 2 virtual machines can boot off of virtual SCSI and network adapters and also support Secure Boot for maximum protection against malware injecting itself into the boot process.
This Generation 2 VM upgrade also allows for remote desktops to function even when a virtual machine is not connected to a network. The remote desktop protocol (RDP) session transits entirely over the "VMBus," which is simply the internal connections made between the hypervisor and the virtual machine itself.
This gives you out-of-band management, like a Dell DRAC card or an HP iLO device to manage real hardware independent of the hardware itself over an Internet connection. This was not possible in previous versions of Windows Server.
Other interesting virtualization-related improvements of note include:
- Virtual machines that run 2012 R2 and that were created on a Windows Server 2012 R2 Datacenter Edition host will automatically activate themselves with no user intervention. (The license for Windows Server 2012 R2 includes an unlimited number of guest virtual machines running Windows Server.) This saves hosters and other heavy virtualization users from having to build out an activation or key management server infrastructure just for their VMs. At the time of this writing, however, it is unclear how virtual machines activated in this manner can be migrated to hosts running a Standard Edition license, which has more restrictive guest license rights.
- There is complete compatibility between virtual machines on local, on-premises Hyper-V and VMs running on the Windows Azure Infrastructure-as-a-Service model. You can import and export the same VM into either environment and it works just fine, with no changes required. The only possible exceptions: Network settings may -- or may not, depending on whether you have Windows Azure VPN set up and configured -- differ.
- You can perform live migrations of virtual machines from Windows Server 2012 hosts to Windows Server 2012 R2 hosts and vice versa, despite the difference in versions, which means zero downtime.
In Windows Server 2012 R2, the PowerShell command-line scripting language introduces a feature called Desired State Configuration, or DSC. It uses a declarative syntax to define a configuration for a server and then uses PowerShell remoting to apply that desired configuration to a group of servers all at once.
This automated configuration approach goes even further to attempt some repairs when configurations of individual servers drift from the original target. This is great for large farms of servers that all need to be identically configured. Without installing a management layer or other agents, you can initially deploy and then maintain the configuration of a platform of servers right from the command line, all with some easy scripting.