Corp to Cloud: Google's Virtual Desktops
Communications of the ACM, November 2018, Vol. 61 No. 11, Pages 88-94
Practice: “Corp to Cloud: Google's Virtual Desktops”
By Matt Fata, Philippe-Joseph Arida, Patrick Hahn, Betsy Beyer
Over one-fourth of Googlers use internal, datacenter-hosted virtual desktops. This on-premises offering sits in the corporate network and allows users to develop code, access internal resources, and use GUI tools remotely from anywhere in the world. Among its most notable features, a virtual desktop instance can be sized according to the task at hand, has persistent user storage, and can be moved between corporate datacenters to follow traveling Googlers.
Until recently, our virtual desktops were hosted on commercially available hardware on Google's corporate network using a homegrown open source virtual cluster-management system called Ganeti (http://www.ganeti.org/). Today, this substantial and Google-critical workload runs on Google Cloud Platform (GCP). This article discusses the reasons for the move to GCP, and how the migration was accomplished.
While Ganeti is inexpensive to run, scalable, and easy to integrate with Google's internal systems, running a do-it-yourself full-stack virtual fleet had some notable drawbacks. Because running virtual desktops on Ganeti entailed managing components from the hardware up to the VM manager, the service was characterized by:
• Long lead times to expand fleet capacity;
• Substantial and ongoing maintenance overhead;
• Difficulty in staffing the team, given the required breadth and depth of technologies involved;
• Resource waste of underlying hardware, given working hours for a typical Googler are 8–10 hours a day; and
• Duplication of effort in the virtualization space at Google across multiple divisions.
Taken together, these issues reduced the time and resources available to the team tasked with improving the offering. To tackle these problems, the team began migrating Google's top corporate workload to GCP in early 2016.