AWS Deep Dive
- author:: Nathan Acks
- date:: 2023-01-02
AWS Well-Architected Framework
Introduction
Definitions
The Well-Architected Framework uses somewhat eccentric definitions of “component” (mostly normal) and “workload” (not really normal). In the Well-Architected Framework, a component is a unit of something (code, application configuration, S3 bucket, etc.) that meets some atomic requirement. A workload is then a collection of components that performs a distinct business function (this is in contrast to the more usual understanding of the term “workload”, which would be something like “system resources consumed when performing an operation of some sort”).
Architectures and technology portfolios are then understood as collections of “workloads” within the Well-Architected Framework.
Security and operational excellence are generally not traded-off against the other pillars.
I suppose that quote pretty clearly contextualizes the Well-Architected Framework as more aspirational than anything else.
The Pillars of the Framework
Operational Excellence
Design Principles
Basically:
- Infrastructure as code
- Modular infrastructure
- Regular performance analysis
- Tabletop exercises
- Post-motems
Best Practices
Organization
It’s not called this, but the directive that each components, processes, etc. must have a “single wringable neck” associated with it makes an oblique appearance in the AWS “organizational” best practices for “operational excellence”.
Key questions:
- How do you determine what your priorities are?
- How do you structure your organization to support your business outcomes?
- How does your organizational culture support your business outcomes?
This document really is full of zingers:
Recognize that an undesired result is a successful experiment that has identified a path that will not lead to success.
Prepare
Key questions:
- How do you design your workload so that you can understand its state?
- How do you reduce defects, ease remediation, and improve flow into production?
- How do you mitigate deployment risks?
- How do you know that you are ready to support a workload?
So, explainability, modularity, reversibility.
Operate
Key questions:
- How do you understand the health of your workload?
- How do you understand the health of your operations?
- How do you manage workload and operations events?
So, logging and playbooks.
Evolve
Key question:
- How do you evolve operations?