Regardless of the type of music you listen to, you'll have to admit that Docker is a rock star in the enterprise and cloud computing worlds. We at Gliffy use and love it. What is it? An open-source, container-based system. It was developed by Solomon Hykes as an independent project at dotCloud. Other contributors at that time included Andrea Luzzardi, Jeff Lindsay and Francois-Xavier Bourlet. Originally a proprietary system, they released it as open-source in March of 2013.
The software allows developers and system administrators to easily move software between different platforms by placing it in "containers." The change to open-source was an immediate hit. Docker has been downloaded more than 40 million times, and there are now more than 30,000 apps available. Over 25,000 projects on GitHub are using Docker.
Separate Applications From Infrastructure
The reason Docker is so versatile is that it separates applications from the underlying infrastructure. Each Docker container has everything it needs to run: the host, the operating system and everything else is included within the same isolated environment.
With a virtual machine, you have to worry about the guest OS. With Docker, the OS is virtualized. The application and every dependency is contained. This provides excellent:
- Scalability - the containers are very quick to scale because they are lightweight.
- Portability - the containers are very portable.
- Deployment - the containers can run anywhere, such as on public clouds or private clouds.
- Density - because the containers are self-contained, you can fit more of them on a machine.
Docker shrinks the development lifecycle, making it possible for developers to build any app in any language using any stack. Traditional VM hypervisors like KVM and Xen emulate virtual hardware. The downside of this approach is that they are heavy with system requirements. Containers, on the other hand, have shared operating systems. That reduces their system resource load considerably.
A New Spin on an Old Idea
The funny thing is, this is an old idea; containers have been around since 2000. While hypervisors create an entire device, containers simply create an abstraction layer on top of the operating system kernel.
Containers are faster and easier to deploy, and they can run anywhere. This means that information technology data centers can save millions of dollars in hardware and energy costs.
Docker is part of the expansion of microservices in general. Microservice architecture lets developers create and deploy applications in independent self-contained units that are autonomous and modular. This is a sea change from the traditional way that applications have been developed, deployed and maintained.
New Breed of Software Company
Docker is more than a new approach; it represents a new breed of open-source software company. In the past, open-source companies like Red Hat made money on support and services. However, several developments have changed the way new open-source companies approach their business model.
- Open-source has grown in functionality, stability and portability.
- Open-source appeals to developers because it is a productive, stable way to develop software projects.
- New open-source projects have a different way of licensing. Although they have licensed themselves under the GPL in the past, today's open-source projects are often licensed under the Apache Software License, which lets the vendor determine if they want to share code innovations with the open-source community or keep them in-house as proprietary developments they can monetize.
In the rock world, stars rise quickly and often fall just as fast. In cloud computing, Docker looks to be an exception. It was an instant hit and continues to grow at a rapid clip. I think we will see it headlining stages for a very long time.