This will sound hypocritical once you read this article, but if you couldn’t tell by now, we’re not fans of checklists here at DevOps on Windows. Checklists can easily mislead people into a false sense of security. “We’re following the checklist – we must be DevOps now! But why do we still have so many production issues?!”
As we’ve said before, to us DevOps isn’t about following some rote methodology, but about understanding the principles behind operations-friendly software and following best practices to move your processes forward.
But we also understand that sometimes a “checklist-ish-type-of-list” can be a helpful guide. With that in mind, here’s our “DevOps Checklist”!
- Are your DevOpelers on your existing development and operations teams, not a new team or silo?
- Do you follow the (small-a) agile manifesto?
- Does your ops team follow the same best practices typically followed by dev teams?
- Do you use source control – for your dev team AND your ops team?
- Do you practice “branch for release“?
- Do you have a build system?
- Do you have a continuous integration system?
- Does your continuous integration system run the same build script as your developers use for local builds?
- Do you require production versions of software to be produced by the continuous integration system? (i.e. not a developer’s desktop)
- Do your applications support xcopy deployments?
- Do all the applications in your portfolio follow a consistent deployment process?
- Do you deploy new versions of all of your applications to production more frequently than once every three weeks?
- Have you eliminated config files for your applications?
- Is your application configuration data a flat topography of key-value pairs?
- Does each type of data (including configuration!) in your system have a single source of truth?
- Have you eliminated or minimized environmental dependencies in your applications, thus simplifying machine build outs?
- Do your applications log errors and crashes with clear and meaningful messages?
- Do you monitor production resources?
This entire checklist can be boiled down to our first principle of DevOps: is your software simple to operate and easy to change?