Deployment Maturity Levels

A simple roadmap for small organizations, deploying a single application (typically) to a handful of servers.

  1. Level I - Manual Deploys
    1. Deployment isn't documented
    2. Developer manually runs git pull on the host
    3. Developer manually runs asset compilation, database migrations, and application restarts
    4. Deployment isn't tagged or annotated in source control
  2. Level II - Automated Deploys
    1. Deployment protocol is documented
    2. More than one person has the ability to deploy the application
    3. Deployment is scripted.
      1. The script pulls from source,
      2. runs asset compilations,
      3. database migrations,
      4. and application restarts
    4. Developers need special libraries on their machine to deploy
    5. Deploys are tagged or annotated in source control
    6. Deployment notifications are automated
  3. Level III - Graceful deploys
    1. Achieved Level II
    2. Deployments are graceful, requests aren't dropped in flight.
      1. achieved via a load balancer, or mature application servers like Unicorn and Gunicorn
  4. Level IV - BuildOps/ChatOps
    1. Achieved Level III
    2. Developers don't need special tools on their machine to deploy
    3. Deployment is initiated through the use of a ChatBot or a build/CI server
    4. Achieving Continuous deployment is not necessary for this level
    5. ChatBot/CI service outage doesn't limit ability to deploy