Startups … It’s Time to Embrace Docker!

By Flux7 Labs
August 26, 2014

The buzz about Docker has risen to a roar during the past year. Irrespective of the size of the organization, it has attracted a lot of interest.docker_investors

Not convinced? Docker 1.0 is now used in production by three large financial organizations, including one that treats security as its highest priority. The welcome mat for Docker has not been restricted to just the open source community. It has pretty much impressed every rung of the organizational hierarchy.

Use Docker … attract investors!

Last week, Tutum raised $2.65-million for its cloud infrastructure services using Docker containers. Add to that list CoreOS, Quay, Orchard … and the list doesn’t stop there.

Like others, does your startup relate to any of these issues?:

  1. Your code pipeline management is weak and ineffective. It’s a constant bottleneck.

  2. There’s a lot of inconsistency across environments.

  3. Your local dev environment and production environment aren’t similar. This leads to bugs during production.

  4. Resource provisioning takes ages.

  5. Your bills are through the roof as you deploy new servers now and then based on increasing needs.

So, what is Docker and where can it help you?

In simple terms, Docker:

  • Makes Linux OS isolation tools easier to use.

  • Looks like a virtual machine.

  • Supports application development at a whole new level.

The Holy Grail of virtualization is the use of abstraction layers. By adding an abstraction layer, this allows for the needed communication while isolating sources of contention. This is depicted in the image below.

The idea is to:

  • Allow communication

  • Prevent conflict over resources

  • Create an abstraction layer continuum

However, to achieve this, there are a lot of costs and needed resources, including overhead, increased latency and time. This is when you reach out to Docker for a solution.

Docker provides isolation features and enacts a VM-like environment. Docker containers can be up and running in less than 50ms. They can be stopped in about the same time. This is opposed to virtual machines which require 35 to 40 seconds to start, and roughly 5 to 10 seconds to stop.

Now, let’s discuss specific use cases and what to expect from Docker in each case. Here they are:

1. Configuration Management: The primary concern is to create a configuration in a canonical environment and emulate it. While this can be done using virtual machines, Docker stands out by providing the following features:

  • Consistent Environment

  • Developer Niceties

  • Eliminates Memory Overhead

  • Minimizes Performance Overhead

2. Multiple Instances Per Box: The idea is to use multiple instances in a single box. When is this applicable? Consider a scenario wherein your application needs to be scaled to support multi-tenancy. Docker is your go-to solution because of the following reasons:

  • Process and Filesystem Isolation

  • Port Forwarding

  • Absence of Idle Memory and CPU Overhead

3. Resource Provisioning: The concern here is to allocate Docker containers as a replacement to VMs. Docker takes the upper hand with its easy-to-use features, including:

  • Sharing of Resources

  • Quick Start and Stop Times

  • Effective Management of Multiple Images

So, is Docker the right fit for you?

Given that these interesting features from Docker greatly benefit developer workflows to improve testing in the local dev environment, reduce the time needed to maintain the environment, and ease tasks, such as re-creating and sharing that environment, it seems wise to embrace Docker. And enjoy its features.

Get the details!