Well-Architected Framework & Best Practices

General Guiding Principles:

  • Stop guessing capacity: Might end up sitting on expensive idle resources or dealing with the performance implications of limited capacity.

  • Test systems at production scale: Can create a production-scale test environment on demand.

  • Automate to make architectural experimentation easier: Automation allows you to create and replicate your workloads at low cost and avoid the expense of manual effort.

  • Allow for evolutionary architectures: Allow for systems to evolve over time so that businesses can take advantage of innovations as a standard practice.

  • Drive architectures using data: Make fact-based decisions on how to improve your workload.

  • Improve through game days: Test how your architecture and processes perform by regularly scheduling game days to simulate events in production.

General Design Principles:

  • Be scalable - Vertically and horizontally.

  • Disposable resources - Servers should be easily disposable and easily configured.

  • Automation - Serverless, auto-scaling, etc.

  • Loose coupling - Break a monolith down into smaller, loosely coupled components so a failure doesn't affect other components.

  • Services, not servers - Using managed services and going serverless rather than just using EC2 instances.

Best Practices:

  • Decouple your components - Also called loose coupling.

  • Think parallel - Experiment different architectures in parallel.

  • Implement elasticity - Can scale in and scale out to meet the demand without any human intervention.

  • Design for failure - Being pessimistic.

Last updated

Was this helpful?