Skip to content

Principles

David Sanabria edited this page Aug 6, 2020 · 1 revision

CWDS DevOps Principles

“Only a fool learns from his own mistakes. The wise man learns from the mistakes of others.” ― Otto von Bismarck

The principles listed below are inputs into our planning and decision making. We make an effort to promote our experience to our list of principles.

The Three Ways of DevOps

In 2012, Dr. Gene Kim distilled the essence of DevOps into three simple Principles. These principles are described in a 2012 article entitled, The Three Ways: The Principles Underpinning DevOps

  1. The First Way: Systems Thinking
  2. The Second Way: Amplify Feedback Loops
  3. The Third Way: Culture of Experimentation and Learning

The CWDS DevOps Engineering Team is constantly seeking ways to improve the flow of application components from concept to production deployment by reducing developer friction, identifying and correcting technical and process bottlenecks, and by creating an environment that is reliable and consistent for developers to create, build, and test software so they can fail fast. For more information about the Three Ways, we suggest that you consider reading The DevOps Handbook.

CWDS Principles

  1. Public Dollars Spent on Public Goods
  2. Infrastructure As Code
  3. HTTPS Only
  4. DRY - Don't Repeat Yourself
  5. Internal Cohesion, External Decoupling
  6. All application environments have the exact same structure
  7. Get to a known state, and stay there
  8. When given the choice of two equal value outcomes, choose the one that makes future change easier.
  9. Security at every decision point
  10. Immutable infrastructure
  11. Emergent Architecture/ Emergent Design
  12. Where they apply, we follow the 12 Factors defined by The Twelve-Factor App

Additional Principles of DevOps

Additional Principles of DevOps, as described by John O'Duinn

  1. Measure success in terms of souls saved, as well as the usual metrics
  2. Measure obsessively
  3. Build to scale
  4. Use multiple regions
  5. Trust that everything will fail eventually
  6. Make it visible; show progress
  7. Start small and build out
  8. Deliver the product and pipeline

Clone this wiki locally