Design for Failure

核心思路:冗余 + 快速切换

  1. 宿主机
    • 保证多个虚拟机不在同一个宿主机上,甚至不处于同一个机架
    • 提供物理分散分布的能力:AWS(Placement Group)、Azure(Availability Set)、阿里云(部署集
  2. 可用区 - IDC
    • 多可用区的实例部署(VPC 支持跨可用区
  3. 区域
    • 多区架构层面的相关预案
    • 互联网业务:通过 DNS 导流,将域名解析到另一个区域的备用服务,底层数据依赖日常的跨区域的实时同步
  4. 多云 - 避免厂商锁定

Auto scaling

应对工作负载洪峰 + 在低谷期显著降低成本

虚拟机编组

功能相同的多个虚拟机,作为一个单位来创建、管理和伸缩

  1. 弹性伸缩服务
    • 根据指定的数量和扩缩容的规则,动态地创建和销毁虚拟机实例,协调虚拟机的生命周期
  2. 负载均衡器 - SLB
    • 将流量均匀地、或者按照一定权重或规则,分发到多台虚拟机上

弹性伸缩服务 + 负载均衡器:适合处理无状态类的计算需求