Abstract: Infrastructure as code tools like Ansible, Chef, Puppet, Terraform, etc. can make it easy to build and manage infrastructure in the cloud. But as with any code, this can quickly devolve into a fragile monolith that is difficult and scary to change. In order to routinely change, extend, and improve a system, it needs to be well designed, and change management practices and tooling needs to create confidence that changes will work correctly, and that the impact of failures will be low and easily corrected. This creates a virtuous cycle of continuously improving the quality of the systems.
This talk explores infrastructure design patterns used at multiple clients across financial services, retail, public sector, media, and others that support continuous change to:
- Reduce the “blast radius” for a given change
- Facilitate scaling different elements of a system according to traffic requirements
- Make it easy to update, upgrade, and refactor systems without requiring massive, organization-wide programmes of change
- Improve security, visibility, auditability, and observability of systems
- Increase the number of people and teams able to work across systems while minimizing coordination overhead
Topics covered include:
- Designing and implementing an effective infrastructure test automation strategy
- Creating change management pipelines that enforce rigorous change control processes while supporting rapid, frequent changes
- Structuring infrastructure codebases for environments (e.g. Terraform, CloudFormation, etc.), server configuration (e.g. Ansible, Chef, Puppet), container orchestration clusters (e.g. Kubernetes), container images (e.g. Docker), and serverless functions (i.e. Function as a Service)
Learning Outcomes: - Understand different patterns for structuring infrastructure projects, know when to apply which pattern
- Learn practical considerations for implementing infrastructure as code at the level of environment (e.g. Terraform, CloudFormation)
- Know how to design and implement CD-type pipelines for managing changes to infrastructure
Attachments: