At this point the writing is on the wall: Windows Server is on the road to a headless future. This is not a new development, but it is accelerating with the current state of cloud computing. Let’s look into the history of this progression and some of the reasons this is a good thing for the IT community.
The Shrinking Windows Server
With the release of Server 2008, Microsoft debuted a new edition of the server termed "Server Core.” This version of Windows Server removed a large amount of the code base with the most notable change being that it did not include Explorer. Without this component, there's no start menu and the majority of the graphical user interface (GUI) was removed. This had significant effects including: avoiding many of the patches required for the Full version of Windows Server, shrinking the attack surface available for hackers, and reduced resource utilization. With Server 2012, Microsoft used Server Core as the basis of the operating system, and, instead of having a separate edition, the GUI became a feature that could be added and removed. However, there were still parts of the GUI that stayed. RDP for example still worked but it only showed a command window. With Server 2016, Microsoft will take this a step further with Nano Server. This variant is an absolutely bare bones version of Windows Server; not only has the GUI been completely removed but they also removed support for 32bit binaries. All management of this version of Windows Server will be done remotely using Remote Server Administration Tools, PowerShell or other agent software.
PowerShell for Everything
In the past, Microsoft has worked hard to make everything accessible via a GUI, however, over the past decade we've seen a steady increase in command line utilities being the first or only option to make changes. This change started in November of 2006 with the release of PowerShell. Since that time, virtually every Microsoft product or server role has an associated module that allows for advanced configuration. PowerShell isn't just for interacting with Microsoft services. It's also a secure remote command line platform that allows you to send commands or enter an interactive command line session with a remote computer. These functions can be combined to interact with services on remote systems. For example, the management of Office 365, Exchange Online and Azure can all be done via PowerShell from virtually any Windows computer.
The latest development in the computing world is the concept of containers. Containers are similar to virtual machines in that they create segregated workloads that can be run simultaneously on a host computer, however, they do this in a more efficient way by running multiple workloads on a single underlying operating system. The container only includes the parts required to run the application. The company leading the revolution is Docker (if you're looking for more information around Docker, I recommend downloading this whitepaper providing 10 tips). Initially Docker only worked for Linux based operating systems. In 2014 Microsoft and Docker announced a partnership to bring container applications to the Windows platform. The release of Windows Server 2016 will come with support for Windows Containers allowing a far more efficient way to deploy software to Windows Server. However, this efficiency comes at a price and, if you couldn't guess it by now, it's that the GUI is not an option.
Management at Scale
The last reason that the GUI has a short lifetime is simply the inability for GUI based administration to scale. The number of servers in any given environment has ballooned since virtualization has taken over the industry. As we enter into the cloud, this proliferation of servers, services, virtual machines and now containers will continue to grow. The ability to deploy or modify a group of servers in a consistent way is nearly impossible with GUI based tools. In a recent GreenPages project, we needed to deploy over 100 domain controllers in 70+ sites. This would have been extremely time consuming, and prone to more mistakes, to do with GUI based tools. However, with the use of PowerShell, all of the work to join machines to a domain, install the required server roles and promote these servers to domain controllers was done from a single management computer.
Let’s face it; a graphical user interface on a server is at best a luxury that comes with many costs including efficiency, security, and resource utilization. All of these have real dollars and cents impacts in the utility billed cloud computing world. The tools to support servers remotely without needing a graphical interface are available. As this shift continues, more applications will support this new concept.
The companies that embrace this new GUI-less world can use it as a competitive advantage by doing more with less.
If you're looking for more Microsoft information, download our recent webinar, "Microsoft Cloud: Can you really afford to fail?"
By Justin Gallagher, Enterprise Consultant