Google Cloud 架构框架中的可靠性支柱提供了原则和建议,可帮助您在 Google Cloud中设计、部署和管理可靠的工作负载。
本文档面向云架构师、开发者、平台工程师、管理员和站点可靠性工程师。
可靠性是指系统在指定条件下能够始终如一地执行预期功能并保持不间断服务的能力。可靠性方面的最佳实践包括冗余、容错设计、监控和自动恢复流程。
弹性是可靠性的一部分,是指系统在保持性能的同时,能够承受故障或意外中断并从中恢复的能力。Google Cloud 多区域部署、自动备份和灾难恢复解决方案等功能有助于提高系统的弹性。
可靠性对您的云端策略至关重要,原因有很多,包括:
- 尽可能缩短停机时间:停机可能会导致收入损失、工作效率降低和声誉受损。弹性架构有助于确保系统在发生故障时能够继续运行,或能够从故障中高效恢复。
- 增强用户体验:用户希望与技术进行顺畅的互动。弹性系统有助于保持稳定的性能和可用性,即使在需求高峰期或出现意外问题时,也能提供可靠的服务。
- 数据完整性:故障可能会导致数据丢失或数据损坏。 弹性系统会实现备份、冗余和复制等机制,以保护数据并确保其保持准确无误且可访问。
- 业务连续性:您的业务依赖于技术来执行关键操作。弹性架构有助于确保在灾难性故障发生后业务连续性,从而使业务功能能够在不造成重大中断的情况下继续运行,并支持快速恢复。
- 合规性:许多行业都有针对系统可用性和数据保护的法规要求。弹性架构可确保系统保持正常运行和安全,从而帮助您满足这些标准。
- 降低长期费用:弹性架构需要预先投资,但弹性架构可以通过防止昂贵的停机时间、避免事后解决方法并提高资源使用效率,帮助您随着时间的推移降低费用。
组织思维
为了确保系统可靠,您需要制定计划和一套成熟的策略。此策略必须包括教育和权威,以便将可靠性与其他计划一起列为优先事项。
明确规定整个组织都负责可靠性,包括开发、产品管理、运营、平台工程和站点可靠性工程 (SRE)。即使是侧重于业务的群组(例如营销和销售团队),也可能会影响可靠性。
每个团队都必须了解其应用的可靠性目标和风险。这些团队必须对这些要求负责。必须确定可靠性和常规产品功能开发之间的冲突的优先级,并相应地上报。
全面规划和管理所有职能部门和团队的可靠性。 不妨考虑建立一个包含可靠性支柱的 Cloud Center of Excellence (CCoE)。如需了解详情,请参阅利用 Cloud Center of Excellence 优化贵组织的云端转型之旅。
可靠性重点领域
您在设计、部署和管理可靠系统时执行的活动可归入以下重点领域。此支柱中的每个可靠性原则和建议都与这些重点领域之一相关。
- 限定范围:为了了解您的系统,请对其架构进行详细分析。您需要了解这些组件、它们的运作方式和互动方式、数据和操作如何在系统中流动,以及可能出现的问题。识别潜在的失败情况、瓶颈和风险,以便您采取措施来缓解这些问题。
- 观察:为帮助防止系统故障,请实现全面且持续的观察和监控。通过这种观察,您可以了解趋势并主动发现潜在问题。
- 响应:为降低故障的影响,请做出适当响应并高效恢复。自动响应还有助于降低故障的影响。即使进行规划和控制,仍可能会发生故障。
- 学习:为防止失败再次发生,请从每次体验中学习,并采取适当的措施。
核心原则
架构框架可靠性支柱中的建议对应于以下核心原则:
- 根据用户体验目标定义可靠性
- 设定切合实际的可靠性目标
- 通过冗余资源构建高度可用的系统
- 利用横向扩缩功能
- 利用可观测性检测潜在故障
- 在设计时考虑到顺畅降级
- 执行故障恢复测试
- 执行测试以从数据丢失中恢复
- 进行彻底的事后分析
贡献者
作者:
- Laura Hyatt | 企业云架构师
- Jose Andrade | 企业基础架构客户工程师
- Gino Pelliccia | 首席架构师
其他贡献者:
- Andrés-Leonardo Martínez-Ortiz | 技术项目经理
- Brian Kudzia | 企业基础架构客户工程师
- Daniel Lees | 云安全架构师
- Filipe Gracio,博士 | 客户工程师
- Gary Harmson | 客户工程师
- Kumar Dhanagopal | 跨产品解决方案开发者
- Marwan Al Shawi | 合作伙伴客户工程师
- Nicolas Pintaux | 客户工程师,应用现代化改造专家
- Radhika Kanakam | Cloud GTM 高级项目经理
- Ryan Cox | 首席架构师
- Wade Holmes | 全球解决方案总监
- Zach Seils | 网络专家