Roger: Could you explain for our audience the significance of containerization, and how it differs from virtualization?
Ben: Traditional virtualization was created over a decade ago, when applications were long-lived, monolithic, and deployed to a single server. In this world, when the problem to be solved was proliferation of single purpose physical servers – e.g. one server for Microsoft exchange, one server for Mac Print, one server for a custom Unix inventory — it made sense to turn all of those single-purpose physical servers into single purpose virtual servers.
The VM was created, which takes an application measured in megabytes, combines it with a guest operating system measured in gigabytes, emulates disk etc., and creates a heavyweight, relatively static unit to run on top of a hypervisor.
Today, applications are short-lived and modified constantly. They are built from multiple loosely coupled components built on a multitude of stacks. And, they are deployed to large numbers of different servers.
Dockerization/containerization provides a much better alternative to virtualization for this kind of environment. Docker provides isolation, but in a lightweight format that runs directly on the host’s operating system, and that can be easily modified or updated.
Docker enables containerized apps or components to work consistently together, work seamlessly across multiple different hosts, and do so with often 10x greater density than VMs. The same Docker container can be deployed, without modification, in milliseconds to a VM, to a bare metal server running RHEL, to a bare metal server running Ubuntu, to Amazon, to Rackspace, to an open stack cluster, etc.
So in my opinion, containerization and Docker have the potential to revolutionize how applications are built, managed, and deployed.
If you use an Android phone, you are already using containers. Every application on an android is containerized. Docker takes this concept to the far more complicated and sophisticated world of back-end data center applications.
Roger: How critical is the real-time aspect of modern IT? How quickly is it growing?
Ben: It’s absolutely critical. Seconds matter in terms of time to deploy and update. Milliseconds matter in terms of scaling.
Docker enables customers to take a development>test>stage>deploy cycle that used to take weeks and shrink it to seconds or minutes. And, we make it possible to take applications and scale them and burst them across clouds in fractions of a second.
Roger: How key is the role of Big Data in developing your solutions? How important is the term Big Data to you?
Ben: Although we aren’t a Big Data solution per se, we are a great solution for many big data problems. In Big Data application, the same application is rapidly scaled across hundreds or thousands of machines and often scaled down just as quickly.
A Docker container, which is lightweight, easy to modify, and easy to migrate to any server, is far more appropriate for a scale-out, performance sensitive, big data application than a VM.
Roger: How do the issues outlined above affect DevOps? What skills must organizations have to develop in this intense environment successfully today?
Ben: Today’s organizations need to take complex and constantly changing applications and deploy them across complex and constantly changing production environments. Think of multiple applications, multiple versions, multiple components, and multiple languages being made to work across VMs, public clouds, private clouds, open stack clusters, and customer environments, and you quickly get what we like to call the matrix from hell.
This is compounded by the fact that you need to get a meeting of the minds between developers, who like to try new things and make changes; and operations, who like things consistent, repeatable, secure, and scalable.
Docker solves this problem by providing a clean separation of concerns. Developers can change things «inside» the container. But, the «outside» of Docker containers remains the same; all Docker containers stop, start, migrate, log, etc. the same way. This turns a devops nightmare into a devops dream come true.