IT降本50%还贼稳!百万订单规模系统的技术治理实践
作者介绍
陈永庭,货拉拉 技术总监。货拉拉技术中心核心基础设施部(CI)负责人,带领CI团队负责公司整体基础架构的演进,填补、维护基础技术能力(中间件、框架、工具)保障技术团队的研发效率,负责全局稳定性和技术保障、资源交付和IT成本治理优化等主要工作。曾就职饿了么、腾讯、WebEx/Cisco,主要专注于中间件和基础服务的研发、异地多活架构的设计与实施落地。(联系邮箱:[email protected])
分享概要
一、背景介绍
二、基础架构的演进
三、技术保障的取舍
四、IT成本如何管治
一、背景介绍
系统稳定性从早期的故障频发到如今故障收敛,并已经接近2年都未发生过严重故障; IT单均(每笔订单的IT花费)过去一年也下降了50%以上,看起来是挺有效果的。
早期我们会更侧重于对研发效率的提升,尽最大可能提升研发项目的迭代效率,支撑业务快速的发展。长期未得到妥善解决的技术债会加剧系统稳定性风险,我们就会切换治理重点,通过演进和改造基础架构来提升系统高可用性,复杂的基础架构势,必会引入更多的架构规则约束,也会影响到研发效率,这个我们是可以接受的;
早期业务高速发展时期,更倾向于通过叠加IT资源,来加速技术迭代效率和守护技术稳定性,一般中后期我们就会遇到IT成本的压力,所以也需要更多的关注IT资源的使用效率,技术治理中提高IT资源优化的权重。长期的技术治理过程中,我们很难同时满足三个方面,以最大化支持公司业务发展考虑,在一些“平衡点”前后需要做一些侧重点的切换。
二、基础架构的演进
技术支撑业务快速发展,对研发效率和稳定性的诉求,即技术要快又稳 研发效率和稳定性对基础架构的要求
2020年,基础架构由PHP单体大服务升级到泛服务化架构,解决了业务研发对服务化治理的诉求,也无需进行大规模的老代码重构;
2021年,在微服务架构基础上支持全链路灰度能力,支持全链路灰度高峰期发布,一个物理环境轻易就能快速构建出多个独立的逻辑链路环境,解决了研发和测试同学当期的工作效率问题;
2023年,在全链路灰度架构基础上对流量标识、网关、数据存储等进行改造,演进到多泳道架构,单个泳道对应单个物理AZ,一个请求的后端事务处理尽可能在单泳道内闭环,支持AZ机房容灾容错能力。
尽可能对上层服务、应用架构不侵入 尽可能不造成业务研发大面积的配合改造 团队熟悉的技术
一刀切:采取成熟的开源SOA框架(像SpringCloud或dubbo),直接把我们的PHP服务按照SOA规范改造成标准SOA服务。这个思路的最大问题是影响面广,涉及到每一个团队,改造工作量巨大,改造周期会比较长,可能会影响正常业务需求的日常交付上线,对处于高速发展期的业务来说难以接受;
semi-SOA:避免一刀切,研发可以根据自身情况按需择时重构,先初步具备服务治理能力。
业务发展诉求,即是系统稳定性要求,2022.4我们就发生过因底层硬件变更引发150台机架宕机故障,我们业务系统瘫痪且无法恢复,只能等厂商修复;
业务对系统故障容忍度降低了,系统不可用导致的业务损失比较大了,需要我们考虑为这种低频事件买一份“保险”,做更多的投入。
三、技术保障的取舍
规范体系需要具备自我迭代能力,过去定义的规范不一定最适配当下,所以我们每次在事件复盘中都渴望发现一些整改代办项,完善当前的规范体系;
不仅仅要做应急预案的技术功能性演练,其他任何预期性质的SOP都尽可能开展演练,把演练变成日常的一种习惯,这样才能尽可能保证当发生非预期事件(故障、冒烟)时你的所有预期内的工具、SOP都能正常表现
四、IT成本如何管治