Following on from my talk at the London AWS summit in June, I thought I'd write a series on how to perform well in each pillar. In this first post I'll look at the operational excellence pillar and provide some things you need to consider to perfom well from an operations perspective--- Firstly, let's take a look at the design principles as outlined in the pillar
- **Perform operations as code**
- **Make frequent, small, reversible changes**
- **Refine operations procedures frequently**
- **Anticipate failure**
- **Learn from all operational failures**
For me the first 3 can be summarised as treat everything you need for operations the same as any other part of your application. Put everything as code, even if scripting cli commands, and follow a software lifecycle where you are makeing small changes that are refined over time. I treat this as part of the "shift left" mindset.