AWS Well-Architected Framework
Definitions
Pillars
Operational excellence: The ability to support development and run workloads effectively, gain insight into their operations, and to continuously improve supporting processes and procedures to deliver business value.
-
Security: How to take advantage of cloud technologies to protect data, systems, and assets in a way that can improve your security posture.
-
Reliability: The ability of a workload to perform its intended function correctly and consistently when it’s expected to. This includes the ability to operate and test the workload through its total lifecycle.
-
Performance efficiency: The ability to use computing resources efficiently to meet system requirements, and to maintain that efficiency as demand changes and technologies evolve.
-
Cost optimization: The ability to run systems to deliver business value at the lowest price point.
-
Sustainability: The ability to continually improve sustainability impacts by reducing energy consumption and increasing efficiency across all components of a workload by maximizing the benefits from the provisioned resources and minimizing the total resources required.
Terms
-
Component: Code, configuration, and AWS Resources that together deliver against a requirement. A component is often the unit of technical ownership, and is decoupled from other components.
-
Workload: A set of components that together deliver business value. A workload is usually the level of detail that business and technology leaders communicate about.
-
Architecture: How components work together in a workload. How components communicate and interact is often the focus of architecture diagrams.
-
Milestones: key changes in your architecture as it evolves throughout the product lifecycle (design, implementation, testing, go live, and in production).
-
Technology portfolio: collection of workloads that are required for the business to operate.
-
Level of effort: categorizing the amount of time, effort, and complexity a task requires for implementation.
-
Practices: ways of doing things, process, standards, and accepted norms.
Design principles
-
Stop guessing your capacity needs: If you make a poor capacity decision when deploying a workload, you might end up sitting on expensive idle resources or dealing with the performance implications of limited capacity. With cloud you can use as much or as little capacity as you need, and scale in and out automatically.
-
Test systems at production scale: the cloud, you can create a production-scale test environment on demand, complete your testing, and then decommission the resources. Because you only pay for the test environment when it’s running, you can simulate your live environment for a fraction of the cost of testing on premises.
-
Automate with architectural experimentation in mind
-
Consider evolutionary architectures: these initial decisions might hinder the system’s ability to deliver changing business requirements.
-
Drive architectures using data: You can collect data on how your architectural choices affect the behavior of your workload. This lets you make fact-based decisions on how to improve your workload. Your cloud infrastructure is code, so you can use that data to inform your architecture choices and improvements over time.
-
Improve through game days: regularly scheduling game days to simulate events in production.