【写作目的】
SRE在AE的定义仅仅指与可用性相关,当它指一种技术方面时,是指原来的稳定性的概念;当它用来指团队时,是指各技术团队负责稳定性的同学组成的虚拟团队,类似于原来的稳定性小组。
AliExpress的Alexa排名50名内,甚至超过bing的网站;App也在接近上百国家购物类App下载量排名第一。在AE的整个发展过程中,在稳定性治理方面踩过很多坑,积累了丰富的经验。
因此写作目的有两个:
一、随着集团国际化的必然趋势,以及国际化的共同技术特点,期望能将经验输出给集团,甚至是SRE的一些工具直接赋能集团国际化。
二、部分工作还处于初期阶段,也想在AE内部统一思想,大家朝一个方向努力。
【国际化SRE面临的主要挑战】
A. 可用性是要求724所有国家*所有时区的可用性。而我们的技术团队主要是在杭州
B. 全球互联网互联互通质量低,复杂度也很高
C. 效率、成本与稳定如何平衡,如何跑得又快又稳定又小投入?(所以国际化BU都面临解决问题基础设施的投入成本巨大的问题)
【治理策略】
可用性治理是一组矛盾存在。需要处理好成本、效率、可用性三者之间的平衡,才能以最小的成本取得最大的回报。因此必须分析清楚从哪儿投入,先做什么后做什么不做什么。
1)可用性的追求是会降低研发效率的
2)可用性的追求是会增加研发和技术成本的
3)通过流程规范的建设是可以提升可用性的,但是会极大降低研发效率
4)通过工具化和智能化实现可用性,对效率提升有帮助,也对成本节省有帮助
A. 分级治理介绍
由于可用性的追求是有成本的,因此,对稳定性治理工作进行分级,高ROI的优先级高,先投入做。ROI就是指可用性回报/(成本投入与效率降低)。
目前AE在可用性方面重点投入在ROI最高的基础治理级别。将在下一章详细介绍基础治理的内容。但之所以选择对应的内容作为基础治理,是因为涉及团队最少,涉及流程最少,而可用性的回报最高。除了相关的工具建设和流程建设外,AE内部还通过KPI红线保证基础治理得到执行。
B. 迭代方向
由于工具化和智能化的对效率和成本有正向作用,因此我们的目标是要实现工具化和智能化,来做到最大的ROI。但是工具化和智能化往往需要一次性的大投入,而这个投入如果没有找准方向或出现偏差,则会大大浪费成本,因此在实现工具化和智能化前,先通过规范和流程进行确保,一方面可以验证可行性,另一方面将工具和智能化的原理摆在大家面前,可以让大家更理解对应的原理。
因此我们的迭代思路是:先流程和规范试水,验证通过后,通过工具化和智能化实现。
C. 总结
考虑ROI。通过ROI区分分级治理,高优先级治理先执行;执行过程是规范先行,向工具智能化迭代的方式。
【基础治理介绍】
基础治理包括如下几项:
1)容量建设:确保有大于2个机房作为灾备机房,可以承担全局容量,通过区域化部署分流技术与常态化压测技术进行日常压测,确保各机房满足相应的容量要求
2)容灾建设:通过跨区域的容灾切换实现更高的可用性
3)变更管理:通过灰度发布以及分机房发布,当发生问题时进行容灾切换的方式确保变更过程所带来的问题及早发现并解决
4)网络治理:通过大数据手段实时获取不同网络链路的时延及可用情况,进行精细化实时的网络链路切换
【工具化智能化探索】
目前AE技术对这块儿还处于探索阶段,部分功能已实现,欢迎共建。
基于大数据技术构建SRE治理,实现工具化及智能化
1)分析集团各监控工具的数据,识别出有用的字段,并且基于Springboot微服务体系定制一些数据字段
2)通过对历史故障的分析,业内成功经验,以及集体智慧讨论,确认思路及模型。可能采用分类模型或回归模型,甚至是规则驱动的模型来按需对数据进行加工
3)实现模型的实时化并且将结果回流到实时服务中
4)基于实时服务构建实时工具
5)工具的分类紧贴稳定性治理工具。除了基础治理和应用治理等基本分类外,我们还强调通过小而美的工具集来实现可用行治理及日常运维工作
6)探索实时智能的问题诊断
好的工具平台需要运营和规范保证,举例当从不出现故障时,故障处理工具是否会生疏呢,那就演习吧。工具开发的同时我们会思考这个问题并确保工具的持续运营。
智能化还没有成型的工具,都在开发中,但工具化方面我们已经有比较好的工具分享给大家:
飞虎队作战处理协作平台
飞虎队作战处理协作平台是规范的工具化,由于规范运行较良好,因此向工具化方向进行了迭代
当我们在钉钉中沟通故障的处理过程时,肯定面临信息标准化,信息可见性,信息时效性等等问题带来的问题处理效率下降问题。飞虎队故障处理协作平台是故障处理的沟通平台,目前功能很简单,就是将处理过程标准化及更好的可视化,使得信息传递高效,使SRE成员快速进行问题定们一状态以及思考更加全面。
未来通过智能化手段,将其中的处理过程由人工干预改造为系统自动处理。举例容灾切换前先人工CHECK机房状态再人工进行切换,这个过程未来将实现系统自动处理。
【对未来的思考】
相信不久将来AE的可用性将会得到较好的治理,如果文中提到的都能很好的实现,再未来我们在可用性方面要做哪些事情呢?我想我们将redefine可用性,从单纯的订单下跌等数据中,到真正的能够体现用户使用我们网站或APP时"可用性"有多好,进一步拓展可用性的边界,让客户更加可用更加满意。