稳定性治理

来源:互联网 发布:java的数据结构与算法 编辑:程序博客网 时间:2024/05/01 05:40

稳定性治理,主要包括可用性和容错性治理工作。业界没有统一的定义,有把可用性和稳定性并列的。

稳定,肯定首先要确保少出故障,然后是故障出现后可以快速发现,快速响应、快速恢复或者减少影响。

少出故障,离不可代码质量控制工作和高可用架构设计工作。代码质量控制工作,手段主要有代码审查、代码静态扫描(sonar工具)等;高可用性架构主要手段无非是容灾性设计,以及复制、冗余、主备设计,包括负载均衡。

出现故障后快速发现和响应,要求自动化的监控和告警系统;如何快速恢复和减少影响,则主要依靠容错性设计。容错性设计,主要包括故障隔离(物理和逻辑的分层隔离,包括熔断、舱壁手段)、故障转移(failover)、快速失败(failfast)、let it crash、失败回退(failback)。也包括超时控制、并发控制、连接数控制等流量控制手段,优雅降级手段。

稳定性治理,除可用性和容错性设计外,还包括对依赖管理,减少对依赖系统强依赖,尽量弱依赖(为降级提供条件)、异步化(方便链路优化)。微服务使服务粒度减小,链路拉长,需要分布式服务跟踪系统来生成依赖链路图。

随着系统的不断架构调整、功能增加,以及业务发展带来的流量变化,系统能不能有效应对,必须进行容量规划和压测验证。容量规划,需要为扩容和缩容提供依据,压测验证系统是否满足服务SLA保证,这两项工作都是为了确保系统稳定运行在合理区间中。单系统的压测不能保证整个链路没有问题,因此分布式全链路压测同样非常重要。

稳定性治理工作,本质上是要系统首先活下来,然后是活的好,因此也要基于成本收益进行考量。

稳定性治理工作,就是要为失败进行设计(Design for failure),容灾和容错是主要手段。可用率、容错率是主要指标。而所有的工作是否有效,需要故障演练验证,除了人工模拟故障外,还需要想Chaos Monkey系统来提高可靠性。

稳定性治理工作,是大促保障的核心内容。一个集容量规划、分布式服务治理系统、分布式服务跟踪系统、分布式日志系统、自动化监控和告警系统、分布式全链路压测系统、Chaos Money 故障演练系统为稳定性治理提供了绝佳的保证。

0 0
原创粉丝点击