作者:秦静超(非台)
“ 本文主要讲述了淘宝客户端的安全生产,即在阿里内外成熟的技术方案的基础上,淘宝客户端是如何来建设自身的安全生产体系,从研发、构建、发布、应急四个阶段再次推动效率和用户体验不断得到升级。”
安全生产
首先我们将“客户端安全生产”定义为:为预防客户端研发生命周期过程中发生体验相关的事故,而采取的一系列措施和活动。
为此淘宝客户端建立了“‘研发、构建、发布、应急’一整套规范化流程及平台”。
图1 安全生产架构图
淘宝客户端安全生产,主要分四个阶段:研发期、构建期、发布期和应急态,同时沉淀开发过程数据,围绕数据线上线下异常复盘,为提升代码质量、提升开发能力,进一步完善平台做数据支持,从而提升开发的良好研发环境,保障线上用户使用体验。
- 研发期:这一阶段主要是指开发同学把需求开发的阶段,往往是单模块的开发,这一阶段主要关注模块自身的质量,这一阶段安全生产平台主要通过需求管理、代码分支管理、单测管理、Code Review、测试请求|审批,一站式的方式为开发同学提供便利;
- 构建期:这一阶段主要是指开发同学把已经通过测试的代码,将代码提交到集成区做代码的集成测试,这一阶段安全生产平台主要通过质量卡口、包大小分析、产物校验来确保集成进来的模块是否满足集成标准(重复的资源文件、代码等或高危的隐私API、调试代码等或不合理的组件导出、DEBUG代码等),通过前置风险分析,防止风险代码集成;
- 发布期:这一阶段主要在通过测试后发布(灰度、正式)完整的APP、配置变更、活动上线下线,这一阶段需关注APP稳定性数据、性能数据、业务数据与舆情数据(端到云的监控方案),确保发布的APP满足用户的体验要求;
- 应急态:前三个阶段主要是规避线上风险线,这一阶段则是在线上APP无法满足用户正常使用时所进入的状态,线上核心指标波动,会触发及时告警,从而通过钉钉快速组建应急小队,对线上问题进行处理,分析问题及问题背后的原因,快速给出解决方案,通过预案回滚、降级处理等手段快速化解线上风险,从而避免风险升级,防止故障产生。
另外为了确保线上APP的高可用体验,淘宝端架构专门成立了“端侧日常保障”小组,主要从事版本值班、大促保障、应急处理、复盘优化等工作,从日常工作中不断的发现问题、总结思考、优化流程、改进研发环境,不断把部分需要人工介入的流程自动化、数据化、平台化,从而提高“研发、构建、发布、应急”阶段的研发体验和研发效率,最终把人力从重复