【器篇】【DevOps】浅谈高可用服务集群

这是我参与更文挑战的第6天,活动详情查看: 更文挑战

一个高可用的服务意味着两点, 第一点,该服务不能频繁出现故障,出现任何的故障都会对业务产生或大或小的影响;第二点,即使服务出现故障,也应该要在极短的时间内恢复正常到业务,将损失降到最低。

1.衡量高可用服务的重要指标

业界一般以提供正常服务的时间/全年的时间取百分比作为衡量一个服务高可用程度的重要指标,也就是我们经常听到N个9的说法。比如4个9,也就是99.99%。小数点后9越多代表服务更具备高可用性。

在生产环境中,我们并不一定非要追求的极致高可用,我们应该根据能够承担多少宕机成本,就保证相应的可用时间这样的原则进行高可用的选择。这个原则我们可以从经济效益去理解,如果你为实现更高可用的成本大于实现后带来的利益,你就应该斟酌一番了。

2.如何提高服务的高可用性

提高的方式多种多样,但总的来说我们需要从两方面着手。

  • 从平均失效时间入手
  • 从平均恢复时间入手

首先,可以尽量避免应用宕机来减少宕机时间。实际上,通过适当的配置、监控,以及规范或安全保障措施,很多导致宕机的问题很容易可以避免。

其次,尽量保证在发生宕机时,能够快速恢复。最常见的策略是在系统中制造冗余,并且保证系统的故障转移能力。

具体方法有:

  1. 基于负载均衡的故障转移
  2. 冗余备份
  3. 超时设置
  4. 异步调用
  5. 服务分级和降级
  6. 监控告警
  7. 防雪崩机制
  8. 流量缓冲机制
  9. 自动化测试
  10. 灰度发布和回滚机制
  11. 代码控制

接下来的文章结合Keepalived展开聊一聊故障转移中的虚拟 IP 地址或 IP 接管方案,其余方案后续一一详细阐述。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享