Video pending uploadAutomation has been present for decades in different forms. With more tools than ever - such as Terraform, Ansible, Chef, and many others - it is now accessible to architects of all types and skillsets.
Automation ensures you:
- Avoid Deployment Staleness - ensuring all environments are the same - preventing issues during a disaster recovery situation
- Build Consistency - as it helps move all deployment into a single process which is rehearsed often - stopping pockets of specialisation
- Reduce Config Drift - where changes are made ad-hoc to production environments which can introduce security and performance issues
However, with the increase in automation, we often face our own complexity around the implementation. To reduce this, there are some important principles when building your automation strategy.
- Deliberacy - automation can result in you doing bad things faster. If you don't have deliberate design principles in your automation - it can lead to snowballing problems. Extra effort up front will save you pain in the long run.
- Idempotency - which you may recognise from HTTP methods - meaning that automation can be repeated with the same result time and time again. This can apply to both operations done inside a virtual machine, but also to operations done to provision those VMs - ensuring there isn't clash with deployments that would prevent spinning up multiple parallel environments.
- Operational Automation - automation isn't just for provisioning, but also for regular operational style tasks. By scripting - or codifying - these actions, you can both free up humans from the undifferentiated work of operational execution, but you also ensure a greater consistency of execution with smaller margin for human error.
- Appropriate Tooling - if you intend to manage across Cloud and on-premises, choosing tooling which allows a unified management model (such as Terraform or Azure Arc) will provide greater scale.
Ultimately Automation forms an incredibly important cornerstone of any Cloud Ready architecture, and is a building block for making sure your platform follows the principles of Operational Excellence.