大麦网架构入淘史


大麦网票务系统是它得以在市场立足的基石,由于发展多年,系统中已沉淀了很多业务逻辑。
但早期的大麦网其实是单体系统,内部虽然有一些模块拆分,但整体看还没有满足服务化拆分的效果。所以单体系统所需要面对的问题都会遇到,如维护性差、系统伸缩性差、特别是围绕于票务库存的查询与扣减功能是整个系统的瓶颈。
好的系统不止需要跟得上业务迭代,还需要跟得上技术的发展节奏,只有这样才不会随着时间发展慢慢恶化。
随着阿里对大麦的收购,大麦原有的交易平台开始入淘,商品与交易底层全部是基于阿里共享电商平台实现。阿里电商平台主要包括用户、商品、营销、交易、支付等全链路的交易能力,经历过高并发、高流量的场景。
针对于库存场景还存在一个问题,就是数据热点问题,采用了热点离散算法,根据业务数据将相关的库存记录分散到多个库的多个表中,分散单库的行锁压力。同时在某个数据库存扣减达到一定量级触发阈值时,会将额外的并发扣减请求降级为串行扣减请求,保障数据库的高稳定性。
因为票务库存是对物理世界作为的映射,具有比较大的稀缺性,一旦出现不一致问题,在现实世界中就很难解决。所以采用了大事务拆分及实时对账方式保证数据库操作的一致性,防止任何数量的不一致情况发生。
由于日常流量和大促流量差异较大,所以需要具备流量感知并实时扩容的能力,所以通过流量数据、IP热度数据等对大促项目进行预测分析其可能达到的量级,针对于量级给出相应的资源配置,最终决定是否进行扩容或保持现状。
由于大部分故障是由于变更引起的,而变更每天都在发生,如何持续保障系统线上稳定呢?
对于可能产生大事故的事情,做了安全生产红线。线下对红线相关修改进线cr及测试度覆盖,线上对红线相关功能进行实时巡检。同时组织定期全链路压测、故障演练以持续保障线上链路稳定可靠。
在运维层面将所有热门有关的预案执行完全自动化,防止忘记执行预案而产生稳定性问题。对于资源利用、动态扩缩容来说,自动化是最好的方式。但挑战点在于能否准确预测、以及快速扩容,这些都是需要不断探索的。
随着大麦网架构的不断迭代,在解决了基础技术问题及架构问题后,大麦也买入了中台架构阶段。
大麦票务中台主要聚焦于演出票和电影票,在票务视角看,大麦需要支持多个票务类目,但在用户视角看,需要提供一致的最佳体验。对于中台来说肯定先建设通用能力,来支持好大部分类目,会导致一些类目差异点较多,这也是很多中台类系统普遍面对的问题。
综上来说,做好一个领域的架构,不仅需要在技术上有很好的积累,还需要从管理到业务都有非常好的思考。
技术上需要有架构能力、中台建设能力、业务建模能力、架构演进设计能力,可以解决高并发、分布式等技术难题。
最好的了解业务的一种方式就是解决不断出现的问题,并且在解决问题过程中深挖问题本质,这样可以促使你快速了解业务。
技术团队需要对于业务和行业有深刻的理解,这样设计出来的系统才可以适应业务和行业的变化,并且在方案落地过程中,为未来业务的发展空间留有余地。每个研发同学都需要思考几年后系统会变成什么样,促使同学共同思考。