稳定性治理,主要包括可用性和容错性治理工作。业界没有统一的定义,有把可用性和稳定性并列的。
稳定,肯定首先要确保少出故障,然后是故障出现后可以快速发现,快速响应、快速恢复或者减少影响。
少出故障,离不可代码质量控制工作和高可用架构设计工作。代码质量控制工作,手段主要有代码审查、代码静态扫描(sonar工具)等;高可用性架构主要手段无非是容灾性设计,以及复制、冗余、主备设计,包括负载均衡。
出现故障后快速发现和响应,要求自动化的监控和告警系统;如何快速恢复和减少影响,则主要依靠容错性设计。容错性设计,主要包括故障隔离(物理和逻辑的分层隔离,包括熔断、舱壁手段)、故障转移(failover)、快速失败(failfast)、let it crash、失败回退(failback)。也包括超时控制、并发控制、连接数控制等流量控制手段,优雅降级手段。
稳定性治理,除可用性和容错性设计外,还包括对依赖管理,减少对依赖系统强依赖,尽量弱依赖(为降级提供条件)、异步化(方便链路优化)。微服务使服务粒度减小,链路拉长,需要分布式服务跟踪系统来生成依赖链路图。
随着系统的不断架构调整、功能增加,以及业务发展带来的流量变化,系统能不能有效应对