什么是可用性?理论、问题、工具和最佳实践

主要观点:

  • 可用性是系统在部分部件故障时保持运行的能力,本文探讨分布式系统的这一核心特性,涵盖理论、挑战、工具和最佳实践。
  • 介绍了可用性的定义(用“九个九”表示,不同百分比对应不同的每日停机时间等)、如何测量(单个服务较简单,多依赖服务则复杂)、系统可用性受各依赖组件影响等。
  • 提到可用性相关的标志(如低正常运行时间百分比、服务“抖动”等)、提高可用性的关键因素(如自动优雅故障转移、复制、隔离故障、多区域或多云部署、混沌工程/故障注入等)以及未能实现高可用性的原因(忽略权衡、健康检查不正确、缺乏冗余、故障转移设计不佳等)。

关键信息:

  • 不同可用性百分比对应的每日停机时间等数据。
  • 自动优雅故障转移的各个阶段及目标时间。
  • 复制的两种类型(单主/单领导者、多主/多领导者)及特点。
  • 隔离故障的三种模式(断路器、舱壁、错误内核)。

重要细节:

  • 以服务 A 及其两个依赖为例,说明系统整体可用性是各组件可用性的乘积。
  • 详细阐述了各种提高可用性的工具及其作用,如 K8s 探针、Cloud 自动缩放产品等用于自动故障转移。
  • 给出了提高不出现可用性故障的简单 checklist 及对应影响。

总结:本文全面介绍了构建高可用系统的相关概念和方法,包括理论、实践及注意事项等,强调高可用性是一种心态,需多方面考虑和实践。

阅读 13
0 条评论