《字节跳动 Mobile DevOps 工程实践-李腾飞.pdf》由会员分享,可在线阅读,更多相关《字节跳动 Mobile DevOps 工程实践-李腾飞.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、字节跳动 Mobile DevOps 程实践后端研发程师/李腾Startup Slides2纲项背景功能介绍业务实践!每构建数量超过 10w移动端项MR 数量平台活跃户构建每天参与到项研发的同学 8000+,包括 QA,PM,RD 等每周有超过 1000 个仓库,总计产 1.2w 个 MR每周活跃的移动端项数 100+内涵段抖Feed、Account、ImageFeed、Account、Image、LongVideo、TrackerFeed、Account、Image、ShortVideo、LiveFeed、Account、Image、ShortVideo、Tracker!#$%&()*+,-
2、./内涵段今头条抖视频#$%&Analysis 01基础库混乱,重复造轮,通库维护和迭代流程不清晰Analysis 03代码逻辑互相影响,测试效率低,质量难保证Analysis 02团队合作代码依赖和冲突多,协作困难Analysis 05没有完善基础流程,新APP上困难Analysis 04代码合并困难,打包慢,流程低效Analysis 06缺少个统的管理平台#$%&()*基础组件开发开发/项管理具合码集成集成区#$%&(+,-.组件平台研发流程发布/012/012($3Target 01项组件化Target 02Target 03Target 04规范的通库维护流程动化构建流程基础功能动化/
3、012(45组件维护升级反馈通知查询CocoaPodsMavenDart Pubnpm历史版本组件维护信息索引数据收集屏蔽细节通能组件使组件化平台/012(670123!#$%&()*+,-.%&/01234567456*+789:;9:?A/0%&,BCDEFGHIJ:;?cdef9:,VWgh?ij9:?/0kl3ABCmnVWcdopqrst?%&QuvwxdyTU!z9:?|,W9:?F3DE67FGGHIJKmnVWcdop|,e?9:N/01289-.业务的速发展导致各个团队的技术栈和研发流程都有较的差异1iOS,Android,Flutter 技术栈引的研发流程之间有较的差异2成
4、熟产品和速迭代的产品研发流程上有着较差异3国内业务与海外业务在研发流程中有这不同的要求,对国外的安全合规要求会引较的复杂度489-.()*抖头条中台组件TikTok统89-.($3个需求在多个组件仓进开发,需要统提交 MR 并完成合多仓合码对个版本周期内的 MR 进管理,管理不同版本之间 MR 的合和发布版本集成MR 状态同步到需求任务系统,进状态流转需求流转Flutter 场景,组件的改动需要同时在 iOS,Android 两个宿主中完成版本号集成多宿主PIPELINE代码审查,持多种配置规则CODE REVIEW安全合规检查 source 分代码是否与 target 分有冲突冲突检查多仓持
5、动的组件发版,并把版本号集成到主仓中组件发布在整个研发流程链路上埋点统计各个阶段耗时和成功率,帮助业务优化的流程度量定义流线,撑业务定义脚本任务包含隐私检测,合规检查,静态检测等能89-.(:;6789-.(+,4589-.(-.=业务根据身需求编排的研发流程顺序和功能定义编排MR 从创建到合的整个过程都会在前端展示出当前执的任务和阶段可视化流程引擎驱动上层业务编排的任务,持回滚,取消,跳过等能调度持业务开发任务并把任务接的流程中参与整体的调度三任务接89-.(-.=89-.(-.?AB?CA流程引擎原服务PipelineCode Review流程引擎与Pipeline的区别是什么?89-.(
6、?AB?CA89-.(?AB?CA统 Linux,Window,MacOS 执环境通过插件市场是 Job 更通度定义,可编排与研发流程紧密结合89-.(?AB?CA89-.(?AB?CA89-.(?AB?CA89-.(?AB?CA89-.(DEF票机制,没有票的 MR 不允许跟版准管理各个 APP 的发版计划版本历满条件的 MR 切换 Target 分并合封版基于版本驱动APP 会以固定的时间周期进发版,在此过程中需要知道哪些需求需要跟当前版本,哪些需求已经跟,集成区就是来管理需求,MR,版本三者之间的关系封板后通过 MR 对应的需求状态状态同步历封版准状态同步89-.(DEF(GH89-.(DEF(IJ89-.(DEF(K-L89-.(DEF(K-L