首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

美团:高速发展下如何做好移动端持续交付

互联网飞速发展的这些年,随着业务不断扩展,移动端的工程复杂度越来越高,特别涉及大型团队或多团队协作的时候,势必遇到很多挑战,诸如稳定性、可用性、可维护性等。拿美团举例,从开始简单 App 到现在搭载无数业务场景(如外卖、酒店、住宿、打车等),在这种多业务高并发的复杂形态下,如何进行工程组织与团队协作呢?又如何保障业务稳定且高效快速呢?

在 2021 年 1 月 8-9 日举办的 QCon 全球软件开发大会(北京站)大前端工程化“专题上,美团技术专家邓常强将分享 《美团移动端持续交付实践》,在会前 InfoQ 带着疑问对邓老师进行了采访。帮助大家理清移动端持续交付的思路,以及了解美团是如何构建和优化移动端持续交付平台的。

在持续交付之前,我们先看看前端工程化和持续交付是什么,为什么要做持续交付?再看美团持续交付的背景和问题,通过他们切实的分析问题和解决问题,抽离其中逻辑,思考自身的业务怎么做持续交付。

前端工程化与持续交付

InfoQ:你是怎么理解“前端?程化”?

邓常强: 现在当我们提到“前端”这个领域,?般泛指 Web 前端开发、移动端开发、?程序开发,以及其他显示设备终端的开发,所以也称为“?前端”。?“?程化”这个概念,在后端领域已经有很成熟的落地实践。

过去?年,端上的设备越来越多、功能越来越强?,业务场景越来越复杂,技术?态愈发繁荣,综合这些客观因素,如何在保障业务快速、稳定发展的前提下,持续提升团队的研发效率和质量,是前端?程领域?前所?临的前所未有的挑战。

通常?个前端业务场景可能需要同时或部分覆盖到 PC、Android、iOS、?程序、快应?,这就需要开发团队为每?个平台单独开发?套代码,并适配各个平台的特性,于是逐渐就出来了各种跨平台技术,也是过去?年?直?较热?的话题;跨平台开发技术可以让业务开发同学更加专注于业务逻辑,而不?关?繁重的底层兼容适配和运维的?作,负责跨平台框架的同学将逐步完善基础设施建设,提供开发调试、脚?架、流程管理、发布等?具,这其实就是?程化的实践。

?前端?个?较鲜明的特点是开发技术多样且发展快速,当组织规模或项?规模扩?到?定程度,往往需要有更多的团队进?协同,服务于不同业务场景,可能也会有不同的技术选型,?前端?程复杂度越来越?,这时候需要从更全局的?度来进??程化,充分整合或利?组织资源,保证基础设施的稳定性,还要考虑业务发展的灵活性,为更多的团队和业务赋能。

InfoQ:你是如何定义持续交付?

邓常强: 持续交付是?系列?程?法的组合排列与实践,通过?具化、流程化、?动化等技术?段来减少产品开发成本、降低线上?险、缩短上线时间。通过对过去研发活动中的经验总结、?法沉淀、流程规范,逐步形成的?套适合的、被认可的和可以遵循的研发?法。

借助这套?法和?具,?效整合各部?的业务信息和服务能?,更敏捷的响应业务的变化、组织的调整、技术的转型,提升企业的产品研发效率、降低企业的研发成本和?险。

InfoQ:?前,美团移动端持续交付平台达到?个怎么样的量级?

邓常强: 美团移动端持续交付平台已经成为公司移动端的统?基础设施之?,上?运?了三千多个项?,?均千次以上构建。作为?站式交付平台,单周 App 发布 10+ 次,动态化项?发布 1000+ 次。除了编译、集成、测试、打包、发布等功能之外,还为业务提供流程定制、代码检查、安全扫描、?险控制、信息查询、数据统计等功能。从各业务线?度,接?即可获得平台提供的持续交付能?,业务线可以更加专注于??的业务逻辑和质量。

从公司?度,统?移动端持续交付平台整合了业务信息、打通了业务线之间协作的壁垒,同时从业务、产品和安全层?可以进?统?管理,为业务研发流程沉淀、技术架构升级、基础设施复?提供了有?保障。

在这样一个量级的情况下去做持续交付,又会遇到那些问题呢?美团又是怎么去解决的?

持续交付背景与典型问题

InfoQ:美团移动端持续交付平台建设的背景是?

邓常强: 美团移动端持续交付平台是美团业务和技术发展到?定阶段沉淀出来的产物,在很早的时期我们的研发团队就引?了敏捷开发流程,过去?年,美团的业务发展?直是?较快的,这也要求研发团队能够快速响应,美团移动端的 CI/CD 实践?概经历的三个阶段:

  • 第?个阶段是 2011-2015 年,业务驱动

像美?、外卖、酒店、电影等业务均是以业务频道的形式集成在美团 App 中,?程结构采?的是模块化,这?阶段我们主要是通过持续集成来保障多业务团队的协同开发,主要特点是?具化,围绕 Jenkins 以及一些开源工具进??具链建设;

  • 第?个阶段是 2016-2018 年,技术驱动

随着业务的发展和组织结构的变化,?程结构演进到组件化,每个业务线更加独?,也开始摸索建设适合??业务的流程?具,经过开发、编译、集成、测试后,发布到?进制组件仓库,宿主 App 经过集成、测试、打包、灰度,全量后发布应?市场。

这?阶段,各个业务线需要更快更灵活的上线能?,???,我们通过打通各个研发环节建?了?动化的发布流程、缩短了发布周期;另???,发布系统也开始?持动态化发布,可以看作是持续交付的落地。这?阶段的主要特点是系统化,在美团技术团队博客上可以看到美团 iOS 团队的 Hyperloop

?众点评 App 团队的 MCI 系统 相关介绍?章

  • 第三个阶段是 2019-2020 年,基建驱动

经过前两年跨平台技术的摸索和实践(QCon2018 北京上?锦涛分享了美团在这??的实践),有这??需求的业务线开始规模应?跨平台技术,?程结构更加复杂,为了保证各业务线的研发效率和质量,我们开始统?基础设施、规范研发流程,移动端持续交付平台建设就是在这个背景下开始的。

InfoQ:美团在移动端 CI/CD ??的探索过程中遇到哪些典型的问题,是怎么解决的?

邓常强: 遇到过的典型的问题有不少,?如业务规模发展到?定阶段后 Jenkins 单 Master 瓶颈,先后尝试过冷热备份容灾,最终是通过?研任务编排、分发和管理系统解决的

还有 Jenkins ?由性和开放性在?规模协同下带来的管理难的问题,Job 爆炸、重复建设、业务维护成本?等等,我们在进?平台化建设时,充分吸取了这些教训,通过业务抽象和流程编排来解决这些问题;

同样,在研发规模扩?到?定程度后,对于 CI/CD 同学来说,还需要承担?量运维?作,移动端没有 SRE 这个??,通常都是开发同学兼职,Slave 机器管理、运维、环境?致等许多后端项?的运维问题,最后我们采? Docker 集群来取代了云主机和物理机作为编译集群,运维成本?幅度降低。

InfoQ:多业务形态下如何进??程组织与团队协作?

邓常强:?程组织是为业务服务的,不同的业务形态决定了?程组织的?式,同时?程组织还会因项目规模、团队?员配置等多重因素而呈现不同的变体。根据对我们 100 多个 App 项目的观察发现,原?技术栈较多的团队会根据业务规模采用模块化或组件化来组织工程,以前端技术栈为主的团队主要使用 Hybrid 开发,同时需要为多个 App 开发或维护业务代码的团队更倾向于采?跨平台开发,每一种工程组织能够更好的支撑各自的业务发展。

另外,?前端开发技术发展的?常快,可能还需要迁移到新的技术框架上。多业务形态下团队协作,效率是?个需要提升的因素。?个项?中,可能会涉及跨团队、跨技术栈?员的协作和沟通,团队规模更?了之后,你甚?很难找到合适的对接?。这些问题就需要有?个系统或平台能够 打通跨业务、跨团队交流的壁垒,CI/CD 平台可以很好的承担这个??

另外,多业务形态对 CI/CD 还有?个?较?的挑战的是需要应对频繁的变化,这些变化可能是来?业务的或来?技术的,需要我们做好不变的部分,去更好的适应变化的部分。

既然,持续交付是工程化必不可少的环节,能有效的降本提效;那么,建立持续交付平台有哪些必要的环节呢?

持续交付必备环节

InfoQ:建??个移动端持续交付平台,你认为哪些环节必不可少?

邓常强: 移动端持续交付基本覆盖了移动端产品研发?命周期,其中会涉及到不同的??、团队和系统,因此建??个移动端持续交付平台是?个?常复杂的事情,个?认为以下?些环节是?常关键的:

  • 业务调研,了解各个业务线真正需要什么、上下游依赖或限制有哪些,业务调研之后,基本可以确定需要做哪些?作。
  • 确定?向和重点,做什么、不做什么,先做什么、后做什么;因为技术和业务的复杂性不断增加,持续交付需要解决的问题也变得越来越复杂。我们需要从复杂的需求中抽象出基础的、核?的,以及通?的能?,也要预留?定的空间,提供给业务??定义。
  • 搭建稳定的基础设施,包括构建集群、?致性环境等等。如果有条件,可以借助公司内部其他系统的?量。
  • 持续?动化,这个过程中可能需要打通上下游依赖、和其他团队建?良好的合作关系,将复杂问题拆解为多个?问题,不断迭代和优化。
  • 经常和?户沟通,收集?户反馈、分析客服问题,对平台进?不断改进。

InfoQ:未来,美团移动端持续交付还会在哪些地?继续提升?

邓常强: 移动端的业务形态会更加丰富,?前端的技术发展也越来越繁荣和交叉,业务和技术都在快速发展变化中?相互促进,持续提效是我们仍将继续努?的?向。?前端的业务场景?较复杂,这对开发和测试的挑战?常?,未来,持续交付平台会和线上监控运维平台会进?深度打通,建?监控、报警、排查、修复、复盘、预防?体化的基础保障体系。通过平台的能?及时发现问题、快速修复问题、提前预防问题,持续改进全流程的运转效率。

另外,通过持续交付平台上沉淀的数据,我们可以更有效的帮助业务进?流程改进、质量优化和经验共享,通过研发数据为各个团队持续赋能。

通过对邓老师的采访,我们能清晰的了解到这几点:

  • 工程化与持续交付的定义;
  • 美团为什么要做持续交付,在做持续交付遇到这些( Jenkins 单 Master 瓶颈、Jenkins ?由性和开放性在?规模协同下的管理难题、Slave 机器管理、运维、环境等)问题时怎么解决;
  • 通过美团的持续交付实践,在搭建符合自己业务逻辑的持续交付平台时要充分的业务调研、确定方向和重点、搭建基础设施、持续自动化、关注用户反馈等。

更多详细内容,请关注 2021 年北京站 QCon 全球软件开发大会大前端工程化”技术专场,不见不散。目前大会门票 9 折抢购中,限时立减 680 元,优惠截至 12 月 25 日,团购更优惠!查看大会最新日程可点击QCon北京2020

嘉宾介绍

邓常强,美团技术专家。2015 年加入美团,专注编译工具优化,为美团各部门提供移动端集成技术方案,解决持续集成中的疑难杂症。并参与建设美团移动端持续交付平台,致力于持续交付效率提升和客户端构建优化。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/8DGiFjJDwmfhpo04bjGU
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com