General Design Principles
No guessing capacity - scaling
Test systems at production scale - simulate live environment
Automate to make architectural experiments easier - without manual setup efforts
Allow architecture evolution - cost for change is lower on cloud
Drive architectures using data - use data for decision making
Game days - simulate events in production
Able to run & monitor, to deliver business value & continue improve process & procedure
Principles:
- Operations as code - application, infrastructure as code, operation as code in response to events, to eliminate human error & maintain consistency
- Annotated documentation - automatically annotate hand-crafted documentation
- Frequent, small, reversible changes
- Refine operations procedures frequently - evolve procedures, set game days
- Anticipate failure - perform "pre-mortem" exercises to find potential sources of failure, test failure scenarios, test response procedures (game day)
- Learn from potential failures
Prepare:
- Share goals, understandings, priorities
- Design monitor mechanisms - and enable to understand state
- Defined operation readiness checklist - including personnel - and evaluate
- Prior to transition (to production) - test response to operation events & failures, practice responses in supported environment through failure injections
- Operation as code - to help experiment, develop procedures, test failures
- Improve flow into production - enable refactoring, fast feedback on qualify, bug fixing
- Enable rapid recover from failed changes
- Implement minimal number of architectural standards - balance cost (human) & benefit of the standard
Operate:
- Define expected outcome, how to measure success, ID workload & operation metrics
Recover from interruption, dynamic scaling to meet demand
Use resource efficiently
AWS prefer teams (no central) for technical architecture.
Methods: practices (how human works) & mechanisms (automated)
Component - code, configuration, AWS resource, etc., a unit of ownership
Workload - a set of components together deliver a business value
Milestone - key changes in architecture as it evolves (design, testing, live, production, etc.)
Architecture - how components work together in workload
Technology portfolio - collection of workloads
Well Architected Tools - free tool for review, document and measure architecture against best practices.
Well Architected Labs - repository of code and documents, hand on experience.