Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ejsmith
Created October 25, 2016 16:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ejsmith/8da01acc9f7587b60b792de5e6b621e4 to your computer and use it in GitHub Desktop.
Save ejsmith/8da01acc9f7587b60b792de5e6b621e4 to your computer and use it in GitHub Desktop.
Benefits of using Docker Containers
  • Package format that not only contains our code, but also the entire definition of the OS that runs the code which means you get guaranteed consistency in your deployments
  • Easy deployments
    • Just tell docker to run an image from our build artifact registry
  • Simple build promotion
  • Easy scaling
  • Run console workers that will automatically be restarted based on a restart policy
  • Cheaper because we can pack more services onto a box and utilize resources more efficiently while still providing isolation and cpu / memory constraints
  • Can scale each worker independently
  • Docker registry for private docker build artifact storage
  • All kinds of apps already have docker images setup and we would be able to deploy those things to our environments easily.
    • Jenkins, Elasticsearch, Redis, etc
  • All kinds of base images to derive from for things like java8, iis, etc
  • Can run both linux and windows containers in the same docker swarm cluster
  • Can run full .net framework on windows containers and eventually nano for .net core or even linux for .net core apps
  • Can direct all log output into a central log store
  • Can collect base level metrics like cpu and memory usage in a central location for each monitoring
  • Can run docker containers locally on windows and osx and attach debuggers to apps running inside of the docker containers
  • Manage everything we do in the same way while not locking ourselves into any cloud provider
  • Docker compose can be used to configure a set of containers that work together
    • We would have 2 web apps, redis, elasticsearch and multiple console workers
  • Ability to isolate and run each worker process as a seperate container with seperate monitoring and logging and scaling
  • There are several free container orchestration projects to choose from so really we are just locking ourselves into using containers and not much other lock in
  • Both AWS and Azure have container services that make managing the cluster and orchestration simple
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment