

# AWS Well-Architected Framework
<a name="welcome"></a>

发布日期： **2022 年 10 月 20 日** ([文档修订](document-revisions.md))

AWS Well-Architected Framework 能够帮助您认识到您在 AWS 上构建系统时所做决策的优缺点。通过使用此框架，您将了解在云中设计和运行可靠、安全、高效且经济实惠的系统的架构最佳实践。

## 引言
<a name="introduction"></a>

 AWS Well-Architected Framework 能够帮助您认识到您在 AWS 上构建系统时所做决策的优缺点。使用该框架有助于您了解在 AWS 云 中设计和运行安全、可靠、高效且经济实惠的可持续工作负载的架构最佳实践。它提供了一种方法，使您能够根据最佳实践持续衡量架构，并确定需要改进的方面。审查架构的流程是关于架构决策的建设性对话，不是一种审核机制。我们相信，拥有架构完善的系统能够大大提高实现业务成功的可能性。

 AWS 解决方案架构师拥有多年为各种垂直行业和使用案例设计解决方案的经验。我们也已经帮助成千上万客户对其 AWS 之上的架构进行设计与审查。从这些经验中，我们得以总结出在云中设计系统的最佳实践和核心策略。

 AWS Well-Architected Framework 囊括了一系列基础性问题，来帮助您了解某种架构是否符合云最佳实践。该框架为您提供了一种一致的方法，来对标您所期望的现代云端系统能力，建立一整套质量评估体系，以及评估实现这样的质量需要采取的具体措施。随着 AWS 不断发展，我们将继续与客户协作并增进了解，同时将实际经验融入到 Well-Architected 定义的持续完善当中。

 此框架面向各类技术性角色，例如首席技术官 (CTO)、架构师、开发人员和运维团队成员。它介绍了可在设计和运行云工作负载时使用的 AWS 最佳实践和策略，提供了进一步实施细节和架构模式的链接。有关更多信息，请参阅 [AWS Well-Architected 主页](https://aws.amazon.com/architecture/well-architected/?ref=wellarchitected-wp)。

 AWS 还提供可用于审查您的工作负载的免费服务。如示例所示， [AWS Well-Architected Tool](https://aws.amazon.com/well-architected-tool/?ref=wellarchitected-wp) （AWS WA Tool）是一种云服务，它提供统一的流程，可帮助您使用 AWS Well-Architected Framework 对自己的架构进行审核和衡量。借助 AWS WA Tool 提供的建议，可让您的工作负载变得更加可靠、安全、高效和经济实惠。

 为了帮助您应用最佳实践，我们创建了 [AWS Well-Architected 实验室](https://www.wellarchitectedlabs.com/?ref=wellarchitected-wp)，它可以为您提供代码和文档的存储库，让您亲自体验最佳实践的实施。我们还与 AWS 合作伙伴网络（APN，AWS Partner Network）中的精选合作伙伴开展合作，他们是 [AWS Well-Architected 合作伙伴计划的成员](https://aws.amazon.com/architecture/well-architected/partners/?ref=wellarchitected-wp).这些 AWS 合作伙伴拥有丰富的 AWS 知识，可以帮助您审查并改进工作负载。

# 定义
<a name="definitions"></a>

 AWS 的专家每天都在帮助客户设计系统，以利用云中的最佳实践。在设计过程中，我们与您一起对架构进行权衡调整。当您在真实环境中部署这些系统时，我们将关注这些系统的运作状况，同时衡量上述调整的效果。

 依托于实践经验，我们构建了 AWS Well-Architected Framework，它为客户和合作伙伴评估架构提供了一系列最佳实践，并提供了相应的可用于评估架构是否符合 AWS 最佳实践的问题。 

 AWS Well-Architected Framework 建立在六个支柱的基础上，它们分别是卓越运营、安全性、可靠性、性能效率、成本优化和可持续性。 

 **表 1.AWS Well-Architected Framework 的支柱** 


|  **姓名**  |  **描述**  | 
| --- | --- | 
|  卓越运营  |  能够有效地支持发展和运行工作负载，获取对运营的洞察，以及不断改进支持流程和程序以实现商业价值。  | 
|  安全性  | 安全性支柱描述了如何利用云技术来保护数据、系统和资产，以改善您的安全状况。 | 
|  可靠性  |  可靠性支柱涵盖相关工作负载按照计划正确而稳定执行其预期功能的能力。它包括在其全部生命周期内运行和测试工作负载的能力。本白皮书深度介绍了有关在 AWS 中实施可靠工作负载的最佳实践指导。 | 
|  性能效率  |  有效利用计算资源来满足系统要求，并随着需求变化和技术发展保持这种效率的能力。  | 
|  成本优化  |  以最低价格运行系统来交付商业价值的能力。  | 
|  可持续性  |  这是指以下能力：通过最大限度地提高所预置资源的收益并最大限度地减少所需的总资源，降低能源消耗并提高工作负载的所有组件的效率，从而持续改善可持续性影响。  | 

 在 AWS Well-Architected Framework 中，我们使用了以下术语： 
+  此处的 **组件** 是指针对相关需求提供的代码、配置和 AWS 资源的组合。组件通常是技术处理单元，与其他组件分离。 
+  术语 **工作负载** 指的是共同提供商业价值的组件集合。工作负载通常是业务和技术领导者沟通的细节层次。 
+  我们将 **架构** 定义为组件在工作负载中协同工作的方式。架构图的重点通常是组件如何通信和交互。 
+  **Milestones** 将随着架构在整个产品生命周期内（设计、实施、测试、上线和生产）的演进记录架构中的关键变更。
+  组织内的 **技术产品组合** 是业务运营所需的工作负载集合。 
+ 如示例所示， **工作量** 用于对执行任务所需的时间、精力和复杂性进行分类。每个组织都需要考虑团队的规模和专业知识以及工作负载的复杂性，了解更多背景信息，以便对组织的工作量进行正确分类。
  + **高：** 这项工作可能需要数周或数月。它可以分解为若干案例、发布和任务。
  + **中：** 这项工作可能需要数天或数周。它可以分解为若干发布和任务。
  + **低：** 这项工作可能需要数小时或数天。它可以分解为若干任务。

 在设计工作负载时，您会基于您的业务环境在各个支柱之间做出权衡。这些业务决策可以确定设计优先事项。在开发环境中，您可能会进行优化，牺牲一部分可靠性来改进可持续性影响并降低成本；而对于任务关键型解决方案，您可能会在成本和可持续性影响方面做出妥协，来提高可靠性。在电子商务解决方案中，性能可能会影响收入和客户的购买偏好。对于安全性和卓越运营，一般不会在它们和其他支柱之间进行权衡。

# 关于架构
<a name="on-architecture"></a>

 在本地环境中，客户通常有一个技术架构中心团队，来监督其他产品或功能团队，从而确保他们遵循最佳实践。技术架构团队通常包含一组角色，比如技术架构师（基础设施）、解决方案架构师（软件）、数据架构师、网络架构师和安全架构师。这些团队一般将 [TOGAF ](http://pubs.opengroup.org/architecture/togaf9-doc/arch/?ref=wellarchitected-wp) 或 [Zachman Framework ](https://www.zachman.com/about-the-zachman-framework?ref=wellarchitected-wp) 用作企业架构能力的一部分。 

 在 AWS，我们倾向于将能力分配到多个团队，而不是只让一个核心团队具有这种能力。当您选择分配决策权限时，会存在一定的风险，例如，确保团队达到内部标准。我们两种方法降低这些风险。第一，我们 *有一些实践* （即行为方式、流程、标准和公认的规范），专注于让每个团队都具有这种能力，并且我们通过设置一些专家来确保团队不断提高他们需要满足的标准。第二，我们实施了 *各种机制，* 来自动执行检查，以确保满足各项标准。

****  
 “徒有良好的心愿没有用，需要良好的机制来实现它们”– 杰夫·贝索斯（Jeff Bezos）。

这意味着用机制（通常是自动的）来替代人类工作，检查是否遵守了规则或流程。这种分布式方法由 [亚马逊的领导力原则提供支持，](https://www.amazon.jobs/en/principles?ref=wellarchitected-wp)在所有角色中建立一种 *从客户出发* 的工作文化。逆向工作是我们的创新过程的基本组成部分。我们从客户和客户需求出发，定义和指导我们的工作。只有以客户为中心的团队才能开发出真正满足客户需求的产品。

 对于架构，这意味着我们希望每个团队都有能力创建架构并遵循最佳实践。为了帮助新团队获得这些能力或帮助现有团队提高其标准，我们创建了一个由首席工程师组成的虚拟社群，这些工程师可以检查现有团队的设计，帮助他们了解 AWS 最佳实践。首席工程师社群旨在让您能够接触和了解最佳实践。例如，通过午间谈话交流如何将最佳实践应用到实例中。这些谈话会被记录下来，用作新团队成员入门材料的一部分。 

 AWS 最佳实践源于我们在互联网规模上运行成千上万个系统的经验。我们倾向于使用数据定义最佳实践，同时我们还通过首席工程师等主题专家来设定最佳实践。当首席工程师发现新的最佳实践时，他们将以社群的形式确保所有团队遵循这些最佳实践。同时，这些最佳实践还会被正式纳入我们的内部审查流程以及强制性合规机制中。架构完善的框架是面向客户实施我们的内部审查流程，其中将我们在不同领域角色（例如解决方案架构和内部工程团队）中的主要设计思维编制成文。架构完善的框架是一种可扩展的机制，使您能够有效利用现有的经验。

 通过首席工程师在社群内分散架构责任的方法，我们相信设计良好的企业架构是由客户的需求驱动的，并且可以付诸实现。通过让技术主管（例如首席信息官或开发经理）针对所有工作负载执行良好架构审查，您能够更好地了解技术栈存在的风险。以此方法，您可以确定不同团队间可以使用的主题，通过机制、培训或午间谈话等方式，让首席工程师可以与多个团队分享他们在特定领域的想法。

# 一般设计原则
<a name="general-design-principles"></a>

 架构完善的框架（Well-Architected Framework）定义了一系列一般性设计原则，以促进良好的云端设计： 
+  **停止猜测您的容量需求**：如果您在部署工作负载时作出糟糕的容量决策，结果常常造成昂贵的资源闲置或因容量不足而影响性能。利用云计算，这些问题都不复存在。您可以按需使用容量，并自动对容量规模进行扩缩。
+  **以生产规模进行系统测试**：在云中，您可以根据需要创建一套生产规模等级的测试环境，完成测试，然后停用资源。由于测试环境只需在运行时付费，您模拟真实环境的成本仅为本地测试成本的一小部分。 
+  **实现自动化，使架构试验变得更容易**：通过自动化操作，您可以低成本创建和复制工作负载，避免人力支出。您可以跟踪自动化变更，审核所产生的影响，并在必要时恢复到以前的参数。 
+  **支持实现架构演进**：在传统环境中，架构决策通常作为静态的一次性事件实现，在其生命周期内包含几个重要的系统版本。随着业务及其环境继续演进，这些初始决策可能无法适应不断变化的业务能力需求。在云中，自动化和按需测试能力将显著降低设计变更所带来影响的风险。这使系统能够随时间推移不断演进，以便企业能够不断地发展创新。 
+  **利用数据驱动架构**：在云中，您可以收集有关您的架构选择如何影响工作负载表现的数据。这使您能够基于事实做出如何改进工作负载的决策。您的云基础设施以代码形式存在，因此您可以随着时间的推移，基于这些数据做出明智的架构选择和改进。
+  **通过实际演练不断改进**：通过定期安排实际演练来模拟生产中的各种事件，测试架构和流程的性能。这将帮助您了解可以从哪些方面作出改进，并有助于培养组织处理各种事件的经验。 