Google Open Sources Its Secret Weapon in Cloud Computing

When Google engineers John Sirois, Travis Crawford, and Bill Farner left the internet giant and went to work for Twitter, they missed Borg. Borg was the sweeping software system that managed the thousands of computer servers underpinning Google’s online empire. With Borg, Google engineers could instantly grab enormous amounts of computing power from across the […]
Illustration Getty
Creative cloud backgroundIllustration: Getty

When Google engineers John Sirois, Travis Crawford, and Bill Farner left the internet giant and went to work for Twitter, they missed Borg.

Borg was the sweeping software system that managed the thousands of computer servers underpinning Google's online empire. With Borg, Google engineers could instantly grab enormous amounts of computing power from across the company's data centers and apply it to whatever they were building--whether it was Google Search or Gmail or Google Maps. As Sirois, Crawford, and Farner created new web services at Twitter, they longed for the convenience of this massive computing engine.

Unfortunately, Borg was one of those creations Google was loath to share with the outside world--a technological trade secret it saw as an important competitive advantage. In the end, urged by that trio of engineers, Twitter went so far as build its own version of the tool. But now, the next wave of internet companies has another way of expanding their operations to Google-like sizes. This morning, Google open sourced a software tool that works much like Borg, freely sharing this new creation with the world at large.

Unveiled by Google cloud computing guru Eric Brewer at a conference in San Francisco, the tool is called Kubernetes--after the ancient Greek word for shipmaster or pilot--and basically, it's a way of more easily and more efficiently running online software across a vast array of machines. In today's world, that's a vital thing. As the modern internet serves more and more people, it's not just Google that needs hundreds or even thousands of machines to run its web software.

>'It's a way of stitching together a collection of machines into, basically, a big computer.'

Google is now sharing this technology with the rest of the world because its business has evolved. In addition to creating its own web applications, it now offers cloud computing services--services that let outside companies build and run software without setting up their own machines. Releasing Kubernetes as a way of encouraging people to use these cloud computing services, known as Google Compute Engine and Google App Engine.

But the new tool isn't limited to the Google universe. It also lets you oversee machines running on competing cloud services--from Amazon, say, or Rackspace--as well as inside private data centers. Yes, today's cloud services already give you quick access to large numbers of virtual machines, but with Kubernetes, Google aims to help companies pool processing power more effectively from a wide variety of places. "It's a way of stitching together a collection of machines into, basically, a big computer," says Craig Mcluckie, a product manager for Google's cloud services.

The key, Brewer says, is that a tool like this can help make the most of your available computing power. In essence, if one machine isn't using all its computing power, Kubernetes can send another task its way. This can be particularly important for companies running their software on cloud services, Brewer explains, because they typically use only a portion of the processing power they're paying for. "We know, from aggregate statistics, that utilization for the typical cloud customer is kinda low," he says.

With Borg and its successor, Omega, Google has done this sort of thing inside its own data centers for years, squeezing as much as possible out of its massive array of machines. "Kubenetes emulates a lot of the patterns we use inside Google with Omega," Mcluckie says. But in an effort to democratize this technology, Google has also reshaped the concepts behind Borg and Omega to work in tandem with another open source technology called Docker. The increasingly popular Docker provides a way of packaging online software into a kind of digital shipping container you can deploy across many machines, and then Kubernetes offers a better way of juggling all those containers. As Brewer explains it, Kubernetes helps you squeeze multiple Docker containers onto the same machine so that you can get the most out of it.

This morning, Google also unveiled new tools that make it easier to merely run Docker containers on its cloud services, and other cloud companies--such as Amazon and Rackspace--have embraced Docker in similar fashion. Docker is one step towards a world where we can treat all cloud services like one giant computer, and a tool like Kubernetes is the next.

Kubernetes is similar to several other existing tools, including Mesos, the open source tool that Twitter now uses. The difference here is that Kubernetes comes from Google, the company that pioneered this breed of "orchestration" tool. "It's part of an arms race. There are literally dozens of tools coming out," says Solomon Hykes, the chief technology at Docker and the driving force behind the company's software containers. "But Google joining that battle--with code that comes from their massive experience--helps show where this kind of thing will go."