货拉拉出席QCon全球软件开发大会,揭秘500天无故障如何炼成

9月3日,为期三天的顶级技术盛会Qcon全球软件开发大会在北京顺利开幕。本次大会以“启航 • AIGC 软件工程变革”为主题,策划了微服务架构治理、异构计算、AIGC产品设计等20余个演讲专题。货拉拉货运研发部技术总监亓隆基受大会邀请,于9月5日在“稳定性和可观测性”技术专场上发表了题为《货拉拉交易核心链路连续无故障500+天的建设实践》的主题演讲,畅谈货拉拉交易核心链路的稳定性建设思路和实践。

在本次演讲中,亓隆基首先对稳定性建设和可用性建设底层逻辑进行了概述。他指出,货拉拉的稳定性建设既包含了系统的可靠可用性的建设、也包含了功能稳定性的建设,货拉拉稳定性建设的目标是系统可用、功能可靠、没有资损。谈及可用性建设的底层逻辑,亓隆基对云上环境的单体微服务的运行环境进行了剖析,指出针对服务自身及依赖做到fail safe是核心方法所在。建设过程中,亓隆基认为应遵循三个原则,分别是木桶原理(最短板决定水平)、逆向思维(从故障出发)和墨菲定律(不要侥幸),同时他将可用性建设分为事前、事中、事后三个重要节点,并对各环节的重要部分做了提示,事前要防护完备,事中要做好应急,发生事故之后第一时间定位和止损,事后则需要对事故的过程和根因连续问五个Why,彻底把系统、流程、组织的漏洞找出来并落地改进。

随后,亓隆基围绕货拉拉功能可用性建设、业务可观测性和技术架构可观测性的三个实践和探索展开具体阐述。在功能可用性建设方面,货拉拉在Doom的核心思想上进行拓展,把一个微服务群及其依赖(如数据库 redis 中间件)当做黑盒,然后把黑盒之外的依赖进行录制回放。此时,当一个入口请求进来时,就可以通过录制回放,获取输出结果进行比对。 同时,也可以从黑盒内部的存储中获取数据库的记录、发送的消息等,跟生产环境的进行转换比对,确保所有的副作用都是等价的,从而解决跨模型、跨协议、跨数据模型的录制回放问题。

在可观测性建设方面,亓隆基举了“计价业务”的例子。通过建设事前四重防护网(单元测试、接口自动化、场景自动化、录制回放)和三重业务可观测体系(实时核对、离线核对、在线价格大盘),货拉拉解决了计算频率高、价格体系复杂、出现问题影响面大等计价业务挑战,实现了分钟级感知价格业务情况,拦截线上问题超过60个,持续零事故。技术架构上,货拉拉建立了全局视野,主动感知链路变化,自动检测链路稳定性设计和自动监测畸形调用,链路治理时效从Months转变为Days,为技术架构的持续可观测性建设提供了一套标准化的解决方案。

正如亓隆基在总结展望中所言“业务的发展需要持续的变更,稳定性是一场没有尽头的战斗”。从2021年的“事故偶发、冒烟频发”到如今的连续500天以上无故障,货拉拉技术稳定性体系完成了从0到1的建设,走出了独特的货拉拉稳定性建设之路。未来,货拉拉技术稳定性建设会在当前“保无故障”的基础上继续朝着“减负”和“智能化”两个方向演进:通过更强的工具自动化能力,提高稳定性工作效率,减轻稳定性工作负担;通过专家经验沉淀和AI能力的引入,提高稳定性工作的质量,降低故障带来的影响,帮助货拉拉更好地提升用户体验。