从新旧技术体系的更替看大麦网票务技术体系的重塑与演进之路
作者|张晓楠
作为大麦网在中国的技术架构及相关票务建设负责人,阿里巴巴资深技术专家王东(花名:赛特)在大麦网并入阿里后约3-4个月就跳槽到大麦网,经历了大麦网从旧技术体系向新技术体系迁移的全过程。他还见证了近年来大麦网融入阿里过程中,在业务领域、技术工程结构、团队组织形式等方面的各种变化和挑战。近日,InfoQ记者采访了王栋,听取他详细讲解了大麦网新技术体系是如何快速重构取代旧技术体系的,票务系统技术架构演进的发展趋势,以及大麦网并入阿里后在组织架构、文化融合、技术架构变革等方面面临的挑战。王栋将以2021年1月8日至9日在北京召开的QCon全球软件开发大会“业务架构演进”为主题,在大麦网票务技术体系重塑与演进的道路上带来精彩的分享。
一个
技术系统的重用就像硬币的两面
大麦网在2017年并入阿里之前,已有13年的发展历史,被誉为中国第一个娱乐营销平台。早在正式收购前的2014年,阿里作为D轮投资者持有大麦网32.44%的股份。应该说大麦网并入阿里后新旧技术体系的更替是有准备的,但王栋对这一经历还是挺感动的。“我在大麦网加入阿里后的3-4个月左右搬到这里,经历了大麦网从旧技术体系向新技术体系迁移的全过程。同时,作为新技术架构的推动者,有很多不同的经验,积累了很多新的经验。这里面最深的感受就是大麦网老票务系统的迁移。”
大麦网票务系统是其在市场上站稳脚跟的基石。它有十几年的历史,你可以想象会沉淀多少商业逻辑和经验。但是在王栋看来,这个系统基本上可以看作是一个单一的应用。虽然内部有一些模块化拆分,但从整体部署来看,仍然不能满足更好的服务拆分的要求。由于没有相应的服务拆分,系统的可维护性和可扩展性较差,相关的库存查询和扣款操作是最大的性能瓶颈。
“其实这个系统在十几年前就应该是一个先进的系统,但是在系统服务已经成为常态的今天,为什么这个系统会类似于单个应用呢?我觉得这是一个需要大家认真思考的问题。”在王栋看来,一个系统不仅要迭代业务需求,还要进行技术迭代和演化。只有这样,系统才能跟上技术发展的步伐,系统才不会随着时间慢慢退化。
旧系统迁移到新系统后,大麦网目前的底货和交易都是基于阿里的共享电商平台。阿里的共享电商平台主要包括用户、商品、营销、交易、支付等环节的交易能力。也经历了高流量、高并发的真实场景测试。同时也支持不同业务的各种场景。所以在王栋看来,重用它来支持大麦网的电商交易系统,是更合适的选择。“从短期投资的角度来看,需要了解共享电商平台的模式,对大麦网的业务进行匹配和映射,这在初期确实会付出很大的人力成本。但长期来看,除了稳定性和性能的保证,还包括后续和淘产品的一些联动。这个选择会给未来带来很多想象。”
但王栋也承认,重用集团的技术体系是有两面性的。一方面,现有系统可用于快速R&D迭代,另一方面,现有系统将限制大麦网在某些方案选择中取次优解。“这是现实中的技术权衡,反映了架构决策的重要性,以及对业务和技术的整体理解的重要性。”具体做法上,大麦网倾向于承接那些不断变化的业务需求,行业性强;在几乎不可能改变的地方,本集团的技术系统可以重复使用。
2
娱乐票务从集中发展到分散
易观智库发布的《中国现场娱乐在线票务平台年度分析报告》显示,中国的直播娱乐票务平台主要经历了三大发展阶段:2010年之前,主要是传统的专业票务代理,托管PC端网站;进入2010年后,在互联网的发展壮大和市场用户需求的推动下,传统票务代理开始向互联网转型,以大麦和永乐票务为代表;2015年后,随着直播娱乐票务市场的发展,新型创新的互联网票务交易服务平台发展迅速。
在王栋看来,目前的娱乐直播票务正在从集中式向分散式发展。以前主要是基于几大票务网站,几个票务网站在用户中有很好的了解,项目好的用户会去这些网站购买。随着私域流量的上升,很多内容方或场馆都想抓住自己的用户,有自己的系统。事实上,这不仅发生在票务行业,在其他行业也在朝着这个方向发展。因此,ToB的许多定制需求将是未来非常重要的关注点。
“如何快速解决这个需求?我们需要在系统迭代的过程中考虑相关的因素。目前,相关的定制问题可以通过开放平台来部分解决。此外,行业也在向低代码平台迈进,这也是解决定制需求的好工具。”
三
大麦网高性能票务能力详解
对于大麦网的电商业务,可能有人会觉得和大推广、二杀等业务场景没法比,但事实并非如此。王冬告诉InfoQ:“大麦网最火项目的产品详情页面第二高峰基本可以达到大推广活动的量级。”
因此,对于大麦网的技术架构来说,有必要在高性能票务能力上努力。在票务链接上,大麦网的部分链接能力是基于阿里的共享电商平台,可能不用担心这个性能。然而,对于票务行业来说,出于日常演进的灵活性,大麦网选择构建自己的系统来承接。两个最重要的系统是座位选择和库存。这两个系统的高性能和一致性需要不断的优化和迭代。对于这两个系统,王栋做了详细的介绍。
选择座位
系统座位选择能力有三个核心问题需要解决,即高并发、高数据量和高冲突率。对于高并发,大麦网采用并发转串行的方法,类似于为每第二个时间片生成对应的快照,将快照存储在缓存中,根据第二个时间戳将对应的请求映射到对应的时间片快照缓存。这样可以将高并发降低一个相当大的数量级,既满足了座位一致性,又保证了系统可用性。此外,对于快照缓存的生成,可以控制二级以下的碎片,可以根据参数灵活配置。
对于高数据量,大麦网采用两级压缩来减小数据量。在第一阶段,使用大麦网开发的算法对座位相关数据进行压缩。像座位ID这样的数据可以压缩成偏移量的形式,会出现很多像“012”这样的重复字符串。然后用zip、7z之类的通用压缩算法对这些重复的字符串进行压缩,可以达到很好的压缩比。客户端解压时间方面,经过大量测试,其实解压时间可以忽略不计。高压缩比意味着可以大大降低带宽消耗,提高用户端的性能体验。
对于高冲突率,由于很多用户抢票时会选择同一个座位,如果不做相应的选择限制,冲突率会非常高,极端情况下,第一分钟的冲突率会高达60%以上。由于大量冲突,用户不得不返回座位选择页面重新选择购买,这将给系统带来很大压力。为此,大麦网采用了预锁座模块来解决这个问题。锁操作一般基于数据库,消耗大量系统资源,并发性低,因此大麦网不采用这种方法。预锁是一种基于缓存的锁操作,轻量级,并发性能高。预锁座椅还需要防止DDOS攻击,也就是防止坏机爬虫恶意占座。如何解决这个问题?大麦网利用安全风险控制模块识别用户客户端的风险控制,可以防止大量机器刷单。预锁座最重要的是锁座时间这个参数,太长了不会被机刷现象放大,然后销量就达不到了;这个参数设置的太短,用户无法匆忙完成订单流程,或者无法解决冲突率高的问题。最后,大麦网采用实时和历史数据相结合的方法确定预锁定时间,达到了前几分钟冲突率降低到5%以下的效果。
存货
对于库存能力,大麦网在几个方面提高了性能,保证了稳定性。首先,核心环节和非核心环节的解耦,库存读取和库存扣除的系统分离,核心环节弱依赖性的退化,从架构层面保证了库存运作中核心环节的稳定性。
其次,针对库存操作的热点问题,采用热点离散算法,根据业务数据将相关库存记录分散到多个库的多个表中,从而分散单个库表的行锁压力。此外,阿里双11的热点补丁用于提高单行记录的行锁性能。而且当一个数据库的库存扣款金额达到一定的并发阈值时,额外的并发扣款请求会降级为串行扣款请求,从而保证了数据库的高稳定性。
最后,库存的数量不能有问题,因为实体座椅和服装产品不同,有很大的稀缺性。一旦不一致,现实世界中很难补充和解决。为此,大麦网采用了大交易拆分和实时对账的方法,以确保库存操作的一致性,防止任何数量不一致。
因为日流量和有热点项目时的流量有巨大的差异,所以需要对热点项目进行准确的预测,从而知道必要时应该扩大资源的水位。大麦网通过流量数据、IP热度数据等预测项目。分析项目可能的规模,然后根据规模给出相应的资源配置,最后决定是扩大还是维持现状。
此外,迭代思维、运维保障、资源利用等方面对于大麦网这种日流量和峰流量相差几个数量级的系统也是挑战。至于迭代思维,既然大麦网基本上每周都有热门项目,那么不断迭代升级的系统如何保证没有大问题?最后,大麦网采取了抓大放小的方法,制定了安全生产策略。对于可能造成较大问题的事项,会制定安全生产红线,线下红线相关变更会进行CR和测试覆盖,在线进行红线实时检查;此外,将定期进行全链路电压测试和故障演练,以确保系统核心链路的性能和稳定性。在运维支持方面,大麦网全面自动化了所有与热门项目相关的预案的执行,防止忘记执行预案而造成稳定性问题。对于资源利用来说,动态扩容收缩是最好的解决办法,但难点在于能否准确预测项目热度,整个环节的资源比例是多少,能否快速扩容,建成后能否快速恢复。目前大麦网正在不断探索。
四
台湾中部大麦网票务建设初探
作为大麦网票务中心站建设负责人,王栋还向记者介绍了票务中心站的情况。大麦网说的票务中心主要以演出票和电影票为主,统称为娱乐直播票务。“虽然我们可以把票务称为现场娱乐票务,但实际上它可以分为多种票务类别,我们也面临着支持多种票务类别的情况。从客户的角度来看,通用解决方案无法实现最佳体验。但就平台的原始积累而言,肯定是要先构建通用能力来支持大部分类别,导致个别类别水土不服。”
即使存在这样的实际问题,王栋进一步指出:“当平台发展到一定阶段,为了更好地服务特定领域的客户,需要从普遍性发展到个性,无论是ToB的B端体验,还是ToC的C端体验。因此,以上都促使我们在制度建设的过程中,在这方面进行思考和推进。此外,除了音乐会这样的单项赛事外,我们之前还承办过男篮世界杯这样的世界级体育赛事,这些大型赛事与我们的日常业务大相径庭。所以,华裔台湾人是最好的解决办法。
五
结束语
作为技术领军人物,王栋见证了大麦网并入阿里后组织架构、文化融合、技术架构的变化,在管理和业务思维上有了更深的理解。
刚来大麦网的时候,对现场娱乐票务了解不多。“我认为了解业务最好的方法之一就是不断解决当前的问题,并在过程中深挖背后的真正原因,这样可以让你快速熟悉业务。”
关于技术团队管理,王栋有几点要和大家分享。首先,技术团队必须对业务和行业有深入的了解,这样设计出来的系统才能适应业务和行业,设计出来的架构才能给业务留下良好的未来发展空间;其次,每天,系统都会面临不断的迭代开发。这个系统或者说系统几年后会发展成什么样?每个技术生都需要思考这个问题;最后,对于一些复杂的问题或创新,需要提前思考,充分发挥团队的力量,促进团队同学共同思考。
采访嘉宾介绍:
王冬,名叫赛特,目前在阿里巴巴工作。他涉猎并参与了各种票务技术系统的创作。他目前负责大麦网和淘宝电影的技术架构以及相关票务中间站的能力建设,在业务建模、技术架构演进、高并发、分布式技术等领域具有丰富的实践经验。
如果想和王东老师进一步沟通,可以去QCon北京站现场。与此同时,您将聚集来自英美烟草、字节跳动和美团的大型技术专家,分享商业架构、智能金融、微服务和人工智能等热门领域的前沿技术实践。精彩不容错过!
