29 Jan Docker: An emerging technology snapshot by InfoTech Consulting Services
What is it?
In 1998 VMWare revolutionized computing by virtualizing x86 servers. Virtualization separated the OS, Binaries, Libraries and Applications from the processing and storage layer. Thus suddenly where one server would run one application, now one server could host multiple Virtual Machines (VM’s) each running a separate application.
Docker is an open source technology that shares many characteristics of a VM. But it takes the largest part in memory the OS out of the equation instead relying on the same Linux kernel as the system and keeping only the related libraries and binaries needed to run the application. This means applications can now be shipped with only the stuff they need to run on the system in a pre-packaged form called a container.
Why is this trend happening?
Docker is growing furiously! An optimized Docker system because it rests on a single Linux instance and does not carry the OS load, has an extremely small footprint per application and can actually carry up to 6 times the applications instances as a virtualized infrastructure! Aside from this astonishing use of compute resources Docker containers also boot up lightning fast (Milliseconds compared to minutes for a VM), and because the tech is open source your cost overheads remain extremely manageable. The standardization, portability and manageability allows for development teams to work quickly and efficiently like never before.
What are the benefits?
To understand the real benefits you have to understand how modern software systems are built and shipped. A software system is very complex. You have to assemble configuration files, binaries, libraries and related dependencies and then test and fine tune them in various environments. Suddenly with a Docker container developers can assemble and ship an application in a lightweight hyper portable standardized fashion for it to run anywhere; on your laptop, in a VM, in the cloud etc. This means developers, QA, and production teams can work in a highly efficient coordinated manner with allocated accountability as Docker also manages version control. And it is built for the cloud meaning managing and deploying applications has never been easier. With Docker you can now build, ship, test, and run and manage high quality applications much faster.
Additionally large organizations are already saving millions of dollars because Docker containers allow you to run more applications per server than any technology in history. The electricity savings, the savings from enhanced collaboration and greater IT productivity and lower hardware costs all add up with very quick Return On investment.
What are the challenges?
A Docker container is light and portable because it abstracts only the OS kernel. This means if you need to run multiple OS on your Virtual Machines Docker is not for you. So if you want to run Red Hat and Windows server on the same machine it is not going to work.
Docker makes things efficient. It doesn’t make them less complex. To run Docker containers you need a high level of systems expertise; usually higher then what you currently have.
Docker does NOT do configuration management. Use a compatible tool for that!