With all the hype surrounding virtual machines on the wane there is another technology that has stepped up to the plate to offer developers a superior service, and it goes by the name of Docker.
In simple terms, Docker is a container and as such the technology that backs it up isn't particularly new. The company itself is what makes it special thanks to the way it is bringing containerisation to the masses by making it easier and safer than ever to deploy the technology.
Docker's approach has been attracting significant attention and Microsoft is among the companies that have implemented the technology into their cloud offering. However, if you're not a developer and haven't heard of Docker then it's likely you're wondering what all the fuss is about.
Containers are not new
Docker is not a new technology in itself and is in fact a container, which is something that has been floating around for some time. Containers have been in existence since the early part of this millennia (the year 2000 to be exact) when FreeBSD Jails were the order of the day. Using those early containers allowed you to access the operating system kernel but very little else on the system and this is the same basic principle that the newer breed of containers use.
It's very easy to think of containers in a similar way to a container ship. All of the containers are loaded on to one ship that is run by the same engine and they are then unloaded to be used in various other locations.
Containers means that developers can create an application, place it with all the components it requires inside a "box" and then put it through the kind of rigorous testing that is often incredibly tedious. Once it is all inside that box it can be run on almost any machine or OS and eliminates the kind of confrontation that can sometimes take place when a new app reaches the testing stage.
Docker's containerisation works in the exact same way to this, however, there are a couple of reasons why it is so popular.
Docker is special because...
People like things that are simple, easy and safe to use. This is why Docker is doing so well. Deploying containers using Docker is far more simple than using other container technologies thanks to the way it has teamed up with the likes of Canonical, Google, Red Hat, and Parallels. By combining its expertise with it others it has meant Docker containers are standardised and have a higher level of security than other solutions.
Another reason that Docker is so popular is thanks to the experience it gives developers. Its popularity amongst the developer community means that people tell their friends about it and trust increases as a result.
It's faster than a virtual machine
Docker is often compared to a virtual machine and it makes it even easier to understand exactly what it does by putting the two side-by-side. The major different between Docker and virtual machines is that where a VM has one OS per machine, containers like Docker run outside of the OS and require less power as a result.
Think of it this way: where VMs separated the OS from the bare metal, Docker has gone a step further and taken the OS out of the equation. This results in something that is more scalable and portable, easier to deploy and an offering that can serve up more density. Speed is another way Docker is superior given that applications will be underway within seconds due to the removal of the OS startup phase. On a VM you have to startup the OS and that in itself is wasting precious moments compared to Docker.
Even so, it's unlikely the VMs championed by the likes of VMware will die out. Remember that Docker's containerisation cannot run several different operating system on one machine and some companies will still opt for this in addition to or instead of containers.
The simplicity makes it secure
We mentioned earlier that Docker has signed up to a number of cross-industry partnerships and this in itself means that it becomes more secure. This is by no means the only reason. Docker's container only uses the dependencies that it requires, which means that the vulnerability of the entire environment is diminished. The resulting decrease in the vulnerability surface of the app's environment makes it easier to lock down for security reason and the lower footprint that Docker brings means less security updates are required.
Containers, like Docker, also make it easier to segregate apps that would usually run on one host and mean that an app running in one container can only access ports and files in another container if it implicitly allows it. The app environments inside containers also change a great deal over time thanks to being constantly updated and as such won't take on the kind of risks that might arrive if not updated for a long time. If there is a vulnerability, it's easy to apply a security fix as part of an application update very quickly and prevent any problems taking hold.
It has huge backing
Since it changed its name from dotCloud to Docker just two years ago, venture capitalists have been falling over themselves to get in on the action. The latest raft of funding, which took place on April 14, saw it raise $95 million in Series D funding and pushed the firm on to a valuation of over $1 billion for the first time. The open source version of Docker has been downloaded upwards of 300 million times, which has seen it grow by as much as 1,000% in the last year. Its growth can be attributed to the partnerships it has with the likes of Amazon Web Services, IBM, Microsoft and VMware.
Microsoft is more feverish than most in attempting to add Docker's unique level of containerisation to its products. It first added support for Docker container on Linux VMs to its Azure cloud to allow Linux Docker applications to run in the cloud. It went further than that in October by bringing Windows Server compatibility to Docker and thus allowing enterprises to deploy Docker applications directly to Azure from the Docker client. With support like that coming to the fore, Docker won't be going away any time soon.