What if there were a better way to save energy than all of the obvious ideas — solar power, wind energy, electric cars — one with even bigger effects on the environment? What if that solution were a better way to run the technology that the way we use the internet relies on? Wired reports that Zack Rosen, CEO and co-founder of professional website platform Pantheon, says that that there is. Rosen says that changing the way we use cloud computing, by switching from virtual machines to Linux containers, could have an even bigger impact on the environment than switching to electric cars.
What is a virtual machine?
In simple terms, Wired explains that virtual machines are “those things that let anyone run software on the massive cloud computing services offered up by the likes of Amazon (NASDAQ:AMZN), Google (NASDAQ:GOOG) (NASDAQ:GOOGL), and Microsoft (NASDAQ:MSFT).” A virtual machine is a software-based environment that emulates a computer. Like a physical computer, a virtual machine runs an operating system and programs. A virtual machine is created within another computing environment, called the host, and is often referred to as a guest.
Virtual machines are often created to complete tasks that are different from the tasks run in the host environment. A virtualization layer relays the virtual machine’s requests for CPU, memory, hard disk, network, and other physical resources to the hardware. Virtual machines can be moved and reassigned among host servers to optimize its hardware use. But Pantheon’s Rosen believes that switching from virtual machines to another cloud computing technology — containers — will significantly reduce global energy consumption. So that brings us to another question.
What is a Linux container?
Linux containers are a more efficient, “lightweight” alternative to full machine virtualization. Containers operate as isolated systems within the same operating system with other containers, rather than each environment having its own operating system, as virtual machines do. But each one runs its applications in isolation from the other containers, as if it were the only one running in the operating system.
Containers are more efficient in its hardware use than virtual machines, and still serve the purpose of isolating tasks from each other on a server. The hardware’s processing and memory resources can also be allocated and balanced among containers. Running multiple containers on the same operating system is much more efficient than running multiple virtual machines, and reduces overhead by using only one operating system, rather than multiples.
As more companies move software and other operations to the cloud, running applications in virtual servers rather than on its computer servers, Rosen believes that switching from full machine virtualization to containers will save huge amounts of energy. He tells Wired, “I think you can say — with an absolute straight face — that the containerization of software applications in the age of the cloud will save more CO2 emissions than electric cars.”
While Rosen doesn’t do the math, he may not need to. Wired reports that virtual machines are standard in cloud services and in companies’ own computing centers — and are extremely inefficient in its use of hardware resources, and therefore enrgy. Pantheon, which uses containers to run its website publishing platform, is joined by Google in using containers to run online services like Google Search, Gmail, and Google Maps.
In its cloud services for businesses, Google Compute Engine and Google App Engine, Google uses both containers and virtual machines. A product manager says that containers “let you get more out of your basic resources.” Exactly how much more isn’t entirely clear, but Pantheon says that it runs its servers at 90 percent efficiency, thanks to containers — a huge contrast with the 10 percent efficiency at which Wired estimates Amazon’s EC2 cloud computing service runs its virtual machines. A startup called Docker, which Wired reported on earlier this month, is looking to make containers into cloud computing’s “next big thing” by making them easier for developers and companies to adopt.
Docker is doing that by making containers easier to use and move between servers. The company’s open source software takes traditional containers a step further by making them easier to package and move among machines, further enhancing the efficiency that it can bring to cloud computing operations. Google is embracing Docker’s technology and looking to run Docker containers on its cloud services — which Wired points out could dramatically increase the prevalence and use of the technology.
One of the drawbacks of Docker’s containers is that it adds a small piece of software when it packages each container, so that containers that run on one operating system might not run on another. Another disadvantage of containers in general is that it isn’t quite as secure as the more mature machine virtualization technology. Until companies are confident in the security of containers, it will likely adopt them, as Google has, to be used in conjunction with virtual machines.
Google engineer Eric Brewer says that virtual machines are still necessary to keep companies’ data secure, but it’s very likely that Google is interested in Docker because it could encourage more developers to use Google’s cloud — a big incentive as Google looks to challenge Amazon’s dominance in the cloud services market.
Rackspace, another competitor in the cloud computing market, has unveiled a cloud service that runs exclusively on containers. However, its solution dedicates a separate machine to software for each customer, eliminating security issues but also sacrificing efficiency, one of containers’ biggest advantages. Google, meanwhile, is looking for a way to achieve maximum efficiency, and that points to the necessity of overcoming containers’ limitations to securely and efficiently run everyone’s software in the cloud. If adoption is wide enough, that should correlate to effects on the ground, decreasing energy consumption as virtual machines become a thing of the past.