Docker can fundamentally change how you think of server deployments

I got a chance to evaluate Docker over the past few days. This is a type of a toolkit that is going to fundamentally change how you think of application deployments, in the cloud or on-premises.

What Docker boils down to is this. Rather than deploying your application in a dedicated VM or hardware, and manually installing all the components you might need, you specify a descriptor file (Dockerfile). This Dockerfile describes everything your application needs, including operating system, additional packages, storage volumes, and the entry point.

Your application then runs in a light-weight run time that includes everything it needs. Because Docker is lighter weight than VM, and provides less isolation, you can run more Docker containers on a single host than you can VMs. It is a much more efficient use of resources than VMs. Furthermore, because your Docker container remains unchanged between development, qa and production environments you are assured that your application will behave the exact same way in all of your environments.

Docker reminds me of Solaris Containers. In fact, it is based on Linux containers, a very similar technology. The concept predates Solaris, even. For those of us who had to work with IBM MVS years ago Dockerfile format is strikingly similar to JCL. Docker has the potential to fundamentally change how we approach software architecture, and do to cross-platform server platforms what Java never could.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s