Google Cloud 架构完善框架中的可靠性支柱提供了原则和建议,可帮助您在 Google Cloud中设计、部署和管理可靠的工作负载。
本文档面向云架构师、开发者、平台工程师、管理员和网站可靠性工程师。
可靠性是指系统在规定条件下持续执行预期功能并保持不间断服务的能力。可靠性方面的最佳实践包括冗余、容错设计、监控和自动化恢复流程。
作为可靠性的一部分,弹性是指系统在发生故障或意外中断时能够承受并从中恢复,同时保持性能的能力。Google Cloud 多区域部署、自动备份和灾难恢复解决方案等功能可帮助您提高系统的弹性。
可靠性对您的云端策略至关重要,原因有很多,包括:
- 停机时间极短:停机时间可能会导致收入损失、工作效率下降和声誉受损。弹性架构有助于确保系统在发生故障时能够继续运行,或能够从故障中高效恢复。
- 增强的用户体验:用户希望与技术进行顺畅的互动。弹性系统有助于保持稳定的性能和可用性,即使在需求旺盛或出现意外问题时,也能提供可靠的服务。
- 数据完整性:故障可能会导致数据丢失或数据损坏。 弹性系统会实现备份、冗余和复制等机制,以保护数据并确保其保持准确且可访问。
- 业务连续性:您的业务依赖于技术来执行关键运营。弹性架构有助于确保在发生灾难性故障后业务能够持续运行,从而使业务功能能够继续运行,而不会出现严重中断,并支持快速恢复。
- 合规性:许多行业对系统可用性和数据保护都有监管要求。弹性架构可确保系统保持正常运行和安全,从而帮助您达到这些标准。
- 降低长期费用:弹性架构需要前期投资,但弹性有助于随着时间的推移降低费用,因为它可防止代价高昂的停机时间、避免被动修复,并实现更高效的资源使用。
组织心态
为了确保系统可靠,您需要制定计划并确立策略。此策略必须包括教育和授权,以便在其他计划中优先考虑可靠性。
明确规定整个组织(包括开发、产品管理、运营、平台工程和站点可靠性工程 (SRE))都应负责可靠性。 即使是注重业务的群体(如营销和销售人员)也会影响可靠性。
每个团队都必须了解其应用的可靠性目标和风险。团队必须对这些要求负责。必须确定可靠性和常规产品功能开发之间的冲突的优先级,并相应地进行上报。
从整体上规划和管理可靠性,涵盖所有职能和团队。 不妨考虑设置一个包含可靠性支柱的 Cloud Centre 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 | 首席架构师
- Samantha He | 技术文档工程师
- Wade Holmes | 全球解决方案总监
- Zach Seils | 网络专家