Docker...a huge win!
March 11, 2016

Docker...a huge win!

Anonymous | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Docker

We are using Docker to deploy multiple services for our company.
Docker allows us to deploy more stable apps, since containers provide an identical application-environment across multiple deployment-environments.
Docker also allows us to differentiate between server/compute infrastructure and application infrastructure.
Ops manages the cluster of servers, while application developers simply run containers on the cluster.
  • Application Runtime Provisioning: Instead of requiring a devops engineer to craft a lengthy provisioning configuration for an application, Devs can easily create a Dockerfile that builds the exact runtime needed for their applications
  • Polygot environments: Now that services are are individually provisioned for their task (as opposed to servers provisioned for their task) polyglot services are much more simple. Using the best-tool-for-the-job is simple
  • Scaling is easy: Need to scale a service from 5 to 15 nodes? Simply run 10 more containers across the server cluster. Startup is near instant for containers.
  • Application Architecture has Improved: Before Docker, our team was nowhere close to 12-factor applications. Docker has allowed us to still manage our own infrastructure, yet we're now building highly-scalable 12-factor apps.
  • Service registration and discovery could easily be implemented into Docker/Swarm and would make new-infrastructure startup much simpler.
  • Fewer servers are required. Applications rarely consume 100% of the resources of the servers they reside on. We now run fewer bare-metal servers and run multiple services on each. Once our Docker infrastructure was stable, we began shutting down servers left and right.
  • Performance is improved. Since Docker can run on bare metal, no hypervisor is needed. Performance is better and we make better use of the hardware we pay for.
Docker as a local-development-environment is drastically superior to Vagrant, since devs only need to run a single virtual machine. Machine resources go a lot farther.

Docker allows our developers to have a develop/deployment experience very similar to what they would have on Heroku, minus the high costs of growing/scaling Heroku applications.
Docker is not as beneficial for teams maintaining a single, monolithic application. It solves some issues, but the benefits it provides aren't as impactful. For anything outside of that - e.g. teams maintaining multiple applications or services, it is extremely beneficial.