How to Ship Software 7X More Often

My clients, just like you, want to enable faster, better delivery of value. I’ve helped these organizations scale and improve their operations through agile delivery, achieving continuous innovation of their products. I write and speak a lot about the people, processes, tools, and technologies required for success with agile. While people and processes are critical for success, I want to switch gears a bit talk about tools and technologies.

The pace of application innovation is faster than ever before, requiring Continuous Integration (CI) and Continuous Deployment (CD). Container technologies, such as Docker, deliver a robust mechanism to develop and deploy applications faster, cheaper, and with higher quality than ever before.

What is it?

In contrast to virtual machines, containers offer minimal overhead and resource usage. Developers, testers, and system administrators can quickly run an entire production stack locally, without having to configure and maintain multiple VMs. But that’s just one use case.

Here are some benefits my clients enjoy by using Docker:

  • Simplified configuration
  • More efficient management of CI and CD pipelines
  • Improved developer and tester productivity
  • Application isolation
  • Server consolidation
  • Faster development and debugging
  • Multitenancy without virtual machines
  • Rapid deployment

On average, companies that use Docker ship software 7x more often.

How does it all work?

Each container instance includes the application, and a minimum set of OS components needed to run, thereby enabling lightweight, composable, and portable applications. In effect, containers unlock a write-once, run anywhere approach. Developers can target application deployment to any location, without having to rewrite or reconfigure code, thereby maximizing productivity.

what-is-docker-diagram

We achieve this level of performance through a deliberate architecture shift to microservices. These are small, independent application components, built around business capabilities and independently deployable by fully automated deployment machinery.

 

One efficiency killer I see time and again is an inflexible, monolithic application architecture. These are applications that have grown over time, improperly curated, that are difficult to maintain and keep pace with innovation. Making the shift to microservices makes not only simplifies maintenance, but allows an easy path to containerization.

Docker helps maximize developer productivity by eliminating dependencies across application services. Applications, once decomposed into microservices, can be deployed to different containers. These containers operate in isolation, so dependencies on conflicting versions are eliminated. The microservices can be independently upgraded, allowing for rapid innovation.

How I can help you

My mission is to help your company achieve maximum performance through agile development and cloud computing. Whether it’s a culture shift, readying your people and processes for agile, or implementing the tools and technologies to realize DevOps success, we can find opportunities for improvement.

 

© 2016 by Mark Richman. All Rights Reserved.