Anyone who attended the Exchange 2019 session at the Microsoft Ignite 2018 conference won’t have been remotely surprised to learn that Exchange Online now uses Windows Server Core. Given the scale of Exchange Online, it means that hundreds of thousands of mailbox and other servers run the cloud version of Exchange 2019 on Windows Server Core.
The cloud version of Exchange 2019 has been in production in Office 365 for well over a year. However, it takes time to execute a rolling upgrade for all servers in datacenter regions worldwide.
The reasons why Microsoft has chosen to use Windows Server Core for Exchange Online are very understandable.
First, Windows Server Core reduces the attack surface for servers. Given the hacker preference to attack email accounts, it’s best to remove as many potential vectors as possible. The recent decision to remove basic authentication for many connection protocols to Exchange Online is further evidence of Microsoft’s activity in this area.
Second, the Exchange Preferred Architecture favors physical servers over virtual servers. In the blog post, Microsoft makes the point that Server Core is “ideal for cases where you run virtual machines at scale,” but Exchange Online has always preferred physical servers because virtual servers introduce an extra layer of complexity that Microsoft considers undesirable at cloud scale. Another reason is economics: large-scales services like to extract every possible CPU cycle from servers. After all, if you buy a server, shouldn’t you use it to the maximum for the service you’re selling?
On a practical level, because Server Core includes fewer components, its smaller footprint makes it easier for Microsoft to deploy Server Core across Exchange Online using their technique of taking servers offline and rebuilding them from scratch. The build process is simpler and faster, and those benefits really accumulate at the scale of Office 365.
Third, although Exchange Online is more functional than the on-premises version of Exchange 2019, Exchange Online doesn’t need the functionality of full-blown Windows Server. Core is a well-suited platform for Exchange Online, especially in the highly-automated environment of Office 365. Exchange administration is built around remote PowerShell, so losing the GUI is no great loss.
Fourth, the CPU cycles released by not having to support the features cut from Server Core power the extra functionality in Exchange Online. Many of the cloud-only features (like the Focused Inbox) use background assistants or other processes to extract, analyze, and update data, and that overhead has to be absorbed alongside normal user activity.
Apart from saying that it uses Server Core, Microsoft hasn’t released other configuration details for Exchange Online servers, but you can bet that they configure the servers with the maximum 128 GB of memory and use the metacache (SSD storage for hot data) to supplement the JBOD storage used for mailbox databases.
Given its 100 GB enterprise mailboxes, large recoverable items quotas, expandable archives, and inactive mailboxes, Exchange Online has a very different storage profile to on-premises servers. Another point is that an Exchange Online mailbox holds a heap of hidden system data that doesn’t exist in on-premises servers. The hidden data is used by the Microsoft Graph, background assistants, and other processes, and the net result is that the average Exchange Online mailbox is much larger than those on-premises. With so much mailbox data available, the metacache is critical to maintain fast access to essential mailbox data like the indexes.
Other Office 365 applications might generate more hyperbole, but the simple fact remains that Exchange Online is the largest and most-used workload in Microsoft’s cloud suite (you wouldn’t know this by the session allocation at the upcoming Microsoft 2019 conference). Still, it’s nice to have solid progress in the background, even if it’s only appreciated by Exchange’ aficionados.