Dependable deployments and consistent server environments with Docker.
June 13, 2017

Dependable deployments and consistent server environments with Docker.

Eric Mann | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Docker

We use Docker as the backbone of our hosted app infrastructure. Every element of our application is broken down into a microservice; these miniature services are then built into Docker containers and deployed directly to AWS cloud. Docker lets us deterministically build, distribute, and deploy all of our services without any ambiguity as to what's being deployed and why.
  • Deterministic application state and deployments.
  • Consistent version history for previous builds.
  • Easy distribution mechanisms across the team.
  • Docker does update quickly, sometimes the updates to the engine break older container images.
  • Some of the changes to the Dockerfile structure are confusing and incompatible with older versions, challenging teams.
  • Docker has dropped our production deployment time from 15-20 minutes to 2-5 seconds. We can ship more code, faster, with fewer problems.
  • Docker has helped decrease the number of hours required to maintain aging virtual machines. As the application is containerized, it can move from one VM to another with zero downtime, meaning we can wholesale _replace_ outdated servers rather than spend time updating them.
Docker runs both locally and on the server, whereas VirtualBox is only used locally to create a development environment. Docker gives us the ability to have the exact same environment both in the cloud and on individual developers' laptops. There are no surprises for the team, as our code runs in the exact same environment both during development and in production for actual customers.
Docker is incredibly useful if you're deploying and hosting your own application infrastructure. It leads to reusable components that can be linked together in order to build a fully-functional, reusable system.

However, if your application is simpler and hosted on something like Elastic Beanstalk or AWS Lambda or RedShift, Docker might be overkill for the application development team.