He said “control.” I thought “pride.” We were probably both right.
I was visiting my friend Peter’s business, which sells a complex software decision tool. He was showing me his offices and took me thorough a large windowless room filled with racks of computers.
“What is this?” I asked without really thinking.
“Our servers,” Peter said with a voice that suggested it should be obvious.
“Why do you still keep them,” I continued in an effort to recover, “when you could just rent them from the cloud?”
“More control,” Peter said as he moved on to the next room. To myself I asked, “Are you sure that you are not doing it just to distinguish yourself from the other companies in this building? To show that you are not a lawyer, or lobbyist, or public relations specialist?”
The computing services business has always had an interesting position in the computing community. It has the goal of providing access to hardware while simultaneously keeping you distant from that hardware. It is one of the fastest growing segments of the computing industry. The Gartner group predicts that it will grow 17 percent in 2017. Much of that growth, indeed, will come from the technologies of virtualization, programs that pretend to give you access to an entire computer while at the same time keeping your programs at a distance from the actual hardware.
The rising cloud technology is that of the container, sometimes called the “virtual private server.” In the computing literature, you find article after article on benefits of containerization. Containers for research. Containers for nonprofit organizations. Containers for high-performance computing. Containers for big data. With the sole exception of Peter’s company, every small company I see, every company with less than $50 million in revenue, is looking at containers as a means of providing data services.
Containers are a form of virtual machines, a software program that appears to have access to an entire machine and operating environment but actually present a simulated machine to its application. Containers are a lighter or simplified form of virtual machines. Full virtual machines include a complete, unique operating system. Containers have only a partial image and must rely on the host computer’s kernel.
Tradeoffs between the two are fairly obvious. The current literature argues that the two forms of containers tend to operate at roughly the same speed, which is slightly slower than running on an isolated server with a traditional operating system—a configuration known as “bare metal” in the field. Because of that lack a full operating system, containers tend to be smaller than full virtual machines. For the same reason, containers might be a little less secure than virtual machines. The one substantive difference between the two is data transfer, where containers can be slower because they share a common operating system kernel with other tasks. Many current papers propose ways of equalizing the difference.
Overall, the grand lesson of the current literature on containers is that they, or some derivative technology, might become the standard form for software and, ultimately, the standard way of thinking about applications. They shift attention from managing machines to managing software. First, they shift the problems of configuration from the machines to the software. Managers no longer have to worry about configuring hardware; they worry about configuring the container. Second, they simplify management by disaggregating performance data. The information collected by containers comes only from the process that is within it.
So if we see a widespread adoption of containers, will we see a radical change in computing? I suspect not, though such a move will reinforce the idea that the best computing environment is one in which a single machine is controlled by a single user. When the idea of virtualization first appeared in the late 1960s, it was a bit nostalgic. Virtual machines “are most deeply entwined with the style of use of the computing machines of the 1950s by scientists and engineers,” wrote R.J. Creasy. Creasy worked on the original virtual machine project for IBM, and explained that those early machines “were used like personal tools.”
To some extent, the modern invention of virtualization also looked back to simple stand-alone computers. It occurred in the mid-1990s, when the personal desktop computer was the most common form of computer. However, it really looked ahead to the problems of large-scale distributed servers. Virtualization “solved a lot of scalability problems,” wrote Diane Green, former CEO of VMWare. “Servers which were vastly underutilized,” she continued, “could be put to use by having multiple virtual machines on top of a single server.”
Not everyone yearns to program for a simple, single machine, nor does every computer installation have to scale to a large system. Yet, it does seem that we are reaching a point where we are close to answering most of the outstanding questions about virtualization and that virtual machines will become increasingly common, even for applications that don’t really need them. We’ve seen this process in computing before. It occurred with programming languages, databases, graphics, and operating systems. Databases are perhaps the best example of this phenomenon. Before 1973, programmers were regularly discussing different approaches to databases and trying to determine which applications would need them, and which would not. Edgar Codd’s 1973 paper on relational databases quickly ended interest in competing database architectures. By the mid-1980s, relational databases were part of the standard development stack.
Of course, no decision about technology is final. There are people who are questioning the merits of virtualization, just as there are still people who question the value of relational databases. I don’t think that my friend Peter is in either camp. I just think that he is clinging to power. He grew up in an era when owning a server was a mark of status. He probably has no objection to virtualization but seems comforted by the presence of machines rather than the vague vision of a cloud. These machines, of course, are a physical reminder to him that he is in a technology business.
About David Alan Grier
David Alan Grier is a writer and scholar on computing technologies and was President of the IEEE Computer Society in 2013. He writes for Computer magazine. You can find videos of his writings at video.dagrier.net. He has served as editor in chief of IEEE Annals of the History of Computing, as chair of the Magazine Operations Committee and as an editorial board member of Computer. Grier formerly wrote the monthly column “The Known World.” He is an associate professor of science and technology policy at George Washington University in Washington, DC, with a particular interest in policy regarding digital technology and professional societies. He can be reached at grier@computer.org.