架构词典:SLA
提供服务的时候一般也会提供一个SLA,比如 99.5%,意味着一个月可用时间需要超过99.5%,也就是可以有不超过216分钟的宕机时间。
对于比较低的SLA,主要靠祈祷,以及团队的快速响应来解决,毕竟一个月有3个小时,1-2次小事故还是可以在3个小时内解决的。
但对于更高等级的SLA,比如 99.9%(一个月43分钟),99.99%(一个月4.3分钟),则之前的思路就需要推翻了。
对于三个九的场景,还可以通过更稳健的上线流程,数据库、中间件的一键切换、风险点梳理来达到。对于上线流程,引入全链路的蓝绿部署,完备的测试流程,至少可以做到上线的时候不会引发事故。上线流程常被忽略掉的一个点是配置变更,配置很难做测试,更容易出风险,所以配置变更流程也需要通过蓝绿部署来预防事故。数据库的损坏迟早会发生,那么半自动的主备切换,或者引入能够自愈的分布式数据库都是解决方案。对于消息队列,线上部署两份,生产端用主备方式来使用消息队列,消费端同时消费两条消息队列可以用来减少不可用时间。对于redis、ES等中间件,现在已经有不错的高可用设计,但还可以通过降级手段来进一步消除影响。风险点的梳理主要靠压测和混沌工程。当然,有了前面这些措施,要达到三个九,至少还要做到良好的监控,快速的定位能力,等等。
至于四个九,跟三个九最大的差别,在于消除人的干预,这里边包括了如何自动从监控的结果决策应该如何处理。以及对于数据库和中间件要如何自动切换,比如数据库宕机的时候,三个九的时候还可以让人来参与决策是否切换到从库,四个九的时候就必须自动决策,这个时候一些三中心的分布式数据库就会比主从的数据库有优势。
版权声明: 本文为 InfoQ 作者【lidaobing】的原创文章。
原文链接:【http://xie.infoq.cn/article/4e223eb896fd116df3af0ae65】。文章转载请联系作者。
评论