DevOps Best Practices, Part 1 of 4 – Automate only what is necessary

DevOps is all about communication, collaboration, and integration between software developers and IT operations. DevOps is basically the glue between the customer and the developer. Over the course of a few articles, we’re going to list 4 best practices you can follow to be an effective DevOpeler in a Windows environment.

  1. Automate only what is necessary
  2. Regularly check system resources
  3. Unlock the power of the command line
  4. Communicate!

1. Automate only what is necessary

Automate only what is necessaryThis may sound odd since most technologists want to solve as many problems as they can with technology, but think twice before you fire up that IDE or script editor. Is your manual process well defined? Can the manual process be done in a finite, repeatable set of steps? What about rollbacks? What do you do when something unexpected happens?

An effective DevOpeler understands that one should only automate what is necessary. If you approach every problem (or are asked to approach a problem) with a knee-jerk “automate it” solution, you can quickly create a larger maintenance burden than the original manual process.

This is something to be especially wary of in situations with lots of complicated rules. For example: “Delete all the logs older than 60 days on these machines. Except logs named like ‘foo’. And you have to zip up logs named like ‘bar’. And anything less than 30 days old needs to be copied to this central file share for processing by this other team.” And so on, and so forth. Be sure to consider the upfront cost and on-going maintenance cost before you try to automate a process, especially if it’s a task that doesn’t need to be repeated all that often (more than once every couple weeks).

Also, remember that a quick and dirty solution right now can become a world of hurt six months or more down the road, especially for the original author! So while every automated solution doesn’t have to be perfect, don’t code yourself into a corner with things like hard-coded dates, repeating dates (especially with Daylight Saving Time), hard-coded hostnames, etc.

Update

We’ve received a response from Chris over on blog hunt called “Automate Everything“. Thanks for the feedback, Chris!

If you’d like to discuss this as well, feel free to comment below or hit us up on Twitter!

Leave a Reply

Your email address will not be published. Required fields are marked *