Servers in the Tip Cloud: Why the Future is a story of hens and eggs
There is a long history in ancient times of the early 1990s, when I was creating my first internet systems for the public, all my servers had a name.
The housings testing my Shepton Mallet treatment center had Latin names of big cats, while the servers in London bore the names of great British inventors. Already in that time, they also responded to names that were more descriptions of what they were doing than what they were: www, irc, mx, ns, etc.
As the Internet has evolved, my name habits have also changed. On a project, the servers were named photo1, photo2, and so on, with the next level and storage1 Storage2 in a typical architecture ‘n’ levels. However, they continued to be named and configured manually.
The configuration of these servers was not easy. What version of the operating system are they executed? What equipment did they have? And why a case was it different from another even though they had been ordered together with the same characteristics from the same manufacturer? Looking back, it is a miracle that there were no glaring security holes or significant downtime due to hardware and software failures.
Waiters treated cows
There is a popular metaphor that compares the servers cows. That’s the idea.
Individual servers are like calves bottle fed. They have names and are treated as pets, whose foibles are viewed as endearing personality traits. I have a server that perfectly meets that description in my office with custom hardware and an operating system configured by hand.
A server cabinet is more of a dairy herd of purebred. They probably do not receive the same degree of affection that the little calf, but they are still cherished, enjoying expensive veterinary care, good warm stables and best fodder. They always have names, but most likely is that they all call “Marguerite.”
When we arrive at the datacenter, servers begin to receive simpler names, formed mostly by adding a serial number to a database name for each configuration. We now use tools like System Center Configuration Manager, or Chief Ansible, automatically deploying configurations as needed. Our cows live on a large farm. We are able to distinguish and notice when one of them passes away, but we are not really affected because we have one or two parts that can go to the field.
In the cloud, with servers running on virtual infrastructure, we are like a farmer with our cattle scattered hundreds of thousands of hectares of land. We do not really know how many cows we have, but we can give an estimate a few hundred close. Occasionally, we collect to count, cool brands and labels, knowing that we lack a dozen or more … but it did not really matter. Someone will eventually find their skeleton somewhere in the desert at one time or another.
Cow to chicken
The scale plays a vital role in how we treat our servers. However, the way we create our cloud infrastructure is changing and that’s why we have to change metaphors. It is time to abandon the cows.
Technologies such as the new Windows Server Nano, the Docker containers and rkt and Hyper-V containers promise a new model based on small user space isolated elements, with the basic services required to deliver a unit of functionality. The servers created using this technology have nothing to do with the servers that we know; now they are the endpoint of a building, transmitting infrastructure elements and services.
Cows, even in a ranch, need to be cared for them. In contrast, a full chicken barn is another story. They are doing only the most part, having just need food. We do not count them because that’s impossible! We just feed them and, ultimately, we have hens that produce eggs. Small and efficient, they grow fast and with the aggregate hundreds of eggs, even thousands. Our new servers oriented services are not cows, but chickens. If we need additional servers, we simply build a new barn.
Somewhere in the future, there will be a fork in the way we create and manage infrastructure. Our farms chicks are still there, but in many cases we are will think even more, creating server applications without platform environments. In architectures of tomorrow, someone else will take care of the chickens; we will no longer buying eggs.