Some months ago, I was reading a technical blog where it said that every five years system architecture and management professionals experiment with new emerging technologies that can change “the things we are used to”. In 2015, We are observing containers (or dockers) and orchestrators of containers such as Kubernetes as a game changer. This combination will provide an improvement for companies in their application deployment methodology. For an example, ECmanaged, a cloud-based company which is specialized in designing, deploying and maintaining IT platforms, is starting to use containers.
Since its release in 2013, Docker has been downloaded over 100 millions of time. The success of docker can be seen just by Googling its name. The most obvious use of containers is to run applications with incompatible libraries in same hosts. Containers can also be used to isolate interfering applications. For example, erroneous processes that exploit CPU-memory, web portal abusing memory and traffic for a specific time period, mapreduce job processing business intelligence requests and many more.
In addition, the resource configurations (CPU, memory, disks etc) of containers can be dynamically modified to support an increase in system load. We can proportionally instantiate containers as needed without losing CPU cycles where the applications co-exist in hosts. Packaging an application inside a container requires a big effort. This effort is worth as scaling groups works well with containers and the incurred cost is only based on the usage.
Google Cloud Platform is promoting a pioneering service based on containers orchestration tool which is known as kubernetes. This open source tool is used to deploy Docker containers in clusters, owned or a third party. It aims to organize and orchestrate workloads among Docker nodes. Kubernetes also balance the load of the containers within a cluster. The advantage of using Kubernetes is that it enables containers to communicate without the need of opening any network port or carrying out any sysadmin tricks. It is written in Go - as Docker - so the compatibility between them is guaranteed.
If we analyze the emerging projects in this field, we can see the importance of an orchestrator of containers. We expect that system management professionals to follow the evolution of docker orchestrator such as Heroku-docker, Docker Node Tester, Dickersh and without exception … Kubernetes.
Image from blog.docker.com