Gartner Blog Network


Ok, We Get it, Docker’s Great. But what for?

by Richard Watson  |  May 1, 2015  |  4 Comments

By now, we’ve all heard “Docker, Docker, Docker” coming from every available channel. Ok, we get it, Docker’s great. But what can you use it for?

I’m not much of a detective writer, so I’m going to spoil the ending here by giving you a preview of use cases assessments from my just published “Assessing Docker and Containers for Five Software Delivery Use Cases” (available to Gartner clients only) with help from some of my favourite memes.

Use Case 1: Docker for Local Application Development and Test

The primary challenge in maintaining a highly productive development environment for distributed applications can be summarized as:

Works on my machine → Works again on my machine tomorrow → Works on a test machine

Or as success kid would say …

can use same containers tomorrow

My bottom line assessment for this use case is:

  • Could you do this? Yes
  • Should you invest time into this now? Yes
  • Why? Because the productivity and potential quality gains outweigh the costs

Use Case 2: Docker for Development Team Collaboration

This use case focuses on how Docker can help members of a development team that need to work together on the same codebase. Beyond the challenges a solo developer experiences, described above, the additional problems for a development team working on code concurrently can be summarized as:

Works on my machine → Works on your machine

I think everyone has had this feeling at some time in their lives:

say one more time works on my machine

My bottom line assessment here is:

  • Could you do this? Yes
  • Should you invest time into this now? Yes
  • Why? Because the value in consistency helps team members work together without fear of subtle environment differences

Use Case 3: Docker for Continuous Integration

Typical challenges associated with CI include:

  • Complicated configuration of various types of build jobs (e.g., Maven, GCC and JUnit)
  • Need for a clean environment for the build or test, to eliminate possible contaminants
  • Managing the total execution time of the CI workflow: Setup and execution time for build slaves is a key metric for effective CI. Test execution time has a material impact on software quality. The more time it takes to run the tests, the less testing will be done.

still waiting

My bottom line assessment here is:

  • Could you do this? Yes
  • Should you invest time into this now? Yes
  • Why? Because nobody got time for anything else

Use Case 4: Docker for Production Application Deployment

The challenge in deploying containerized applications into a production environment can be summarized as:

Works on my machine → Works on QA machines → Works (the same) on production hardware → Stays working (securely) on the production environment

Production deployment is concerned with getting code with its configuration and dependencies onto servers and running the apps to a service-level agreement. So, the primary difference between deploying apps in production and to development/test is dealing with operations concerns such as availability, reliability, security and performance.

Worked-Fine-In-Dev-Ops-Problem-Now

My bottom line for this use case is:

  • Could you do this? Yes
  • Should you invest time into this now? No (not yet on your own infrastructure); yes (on cloud infrastructure)
  • Why? The extra complexity in the operating environment will overwhelm many enterprises on their own infrastructure. Consider container deployment on an IaaS or PaaS to manage complexity.

Use Case 5: Docker for Creating a Private PaaS

One area of confusion for Gartner clients is the relationship between Docker and PaaS. While it’s true that the core functions of both OS containers and PaaS are providing applications with an isolated runtime environment, this is but one component of PaaS. Not to mention PaaS is a service, not just a bunch of software, or, as Boromir would say …

one does not simply build a paas

My bottom line for this use case is:

  • Could you do this? Yes
  • Should you invest time in this now? No
  • What should you do instead? Most people should be buyers or subscribers of PaaS, not builders.

Of Course You Need More Analysis

If you want a more detailed analysis – and you should! – to get to the conclusions above, my paper assesses each of the use cases qualitatively using the following criteria:

  • Requirements and challenges: In each case, we will describe the problem space for each use case. What are the characteristics of the problem the use case is trying to solve? What makes it difficult?
  • Otherwise (without Docker): I briefly describe the status quo — how this use case could be implemented without Docker. None of these use cases are new; they represent common scenarios in application development and delivery. Therefore, we must be doing something to implement this without Docker. For example, how does it compare to solutions based on VMs, Vagrant, commercial tools such as UForge or BMC Software BladeLogic, server configuration management, or PaaS? i mention some weaknesses in the current approaches on which Docker can improve.
  • Enabling features of Docker: Dives into some detail on the Docker features that make this use case possible.
  • Readiness assessment: Finally, I analyze whether the features of Docker are suitable and mature enough for an effective implementation for this use case and also your readiness to adopt Docker for this use case. What’s a reasonable estimate of the effort to achieve with Docker, the comprehensiveness of the solution and how much you will have to build around Docker to make the use cases work. What are any remaining issues to be worked out or developed in the state of the art for this use case?

So, if you are a Gartner for Technical Professionals client, I would encourage you to read the detailed assessment of each use case in the document, and schedule an inquiry with me to discuss how it applies to your environment.

Otherwise, you can see me presenting sessions on Docker use cases at these two Gartner events: Catalyst San Diego in August and Catalyst EMEA in London in September.

Category: cloud  containers  paas  

Richard Watson
Research VP
5 years at Gartner
21 years IT industry

Richard Watson is an analyst in Gartner's Technical Professionals Research Service. He advises clients on cloud computing, application architecture, and application platforms. ...Read Full Bio


Thoughts on Ok, We Get it, Docker’s Great. But what for?


  1. Ken Fromm says:

    Great rundown. Nailed it. As a company that has made heavy use of Docker first in production and then deployment and now development, we can attest to these use cases and adoption pathway.

    It made the biggest impact initially in production (believe we’re up to over 600M Docker containers launched since converting over to it), then moved to use it to deploy our services within private clouds and on-prem and now are making it a part of the development framework in our organization.

    Here are a couple of the posts that our CTO, Travis Reeder, has done on the subject. It includes one posted 3 days ago on Docker for development which provides step-by-step in a number of languages to help with Use Case 1 and 2 above.

    https://medium.com/@treeder/why-and-how-to-use-docker-for-development-a156c1de3b24

    http://blog.iron.io/2014/10/docker-in-production-what-weve-learned.html

    http://blog.iron.io/2014/04/how-docker-helped-us-achieve-near.html

  2. […] Ok, We Get it, Docker’s Great. But what for? “By now, we’ve all heard “Docker, Docker, Docker” coming from every available channel. Ok, we get it, Docker’s great. But what can you use it for? I’m not much of a detective writer, so I’m going to spoil the ending here by giving you a preview of use cases assessments from my just published “Assessing Docker and Containers for Five Software Delivery Use Cases” (available to Gartner clients only) with help from some of my favourite memes. …One area of confusion for Gartner clients is the relationship between Docker and PaaS. While it’s true that the core functions of both OS containers and PaaS are providing applications with an isolated runtime environment, this is but one component of PaaS. Not to mention PaaS is a service, not just a bunch of software…” Via Richard Watson, Gartner […]

  3. We actually went through this. And this is the result of our integration of all open source components that create a one PaaS image:

    https://github.com/eBayClassifiedsGroup/PanteraS

    “one container to rule them all” 🙂

    docker run panteras/paas-in-a-box
    and follow instructions from the output

    enjoy

  4. […] Containers help you deliver low cost and instant scalability throughout the application lifecycle. Gartner analyst Rich Watson has a great post on Docker use cases and when to consider them. […]



Comments are closed

Comments or opinions expressed on this blog are those of the individual contributors only, and do not necessarily represent the views of Gartner, Inc. or its management. Readers may copy and redistribute blog postings on other blogs, or otherwise for private, non-commercial or journalistic purposes, with attribution to Gartner. This content may not be used for any other purposes in any other formats or media. The content on this blog is provided on an "as-is" basis. Gartner shall not be liable for any damages whatsoever arising out of the content or use of this blog.