特性管理在滴滴的实践 ——打造BizDevOps闭环 冯上滴滴工程效能部总监 10余年软件架构、工程效能相关工作经历。2016加入滴滴出行,负责特性管理(FeatureManagement)核心的AB实验、灰度发布、配置同步平台的建设。在特性管理平台建设与实践落地方面积累了丰富经验。 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Content 目录 01特性管理简介 02特性管理与BizDevops 03特性管理的技术实现 04特性管理在滴滴的实践 01 特性管理(FeatureManagement) 概念、发展与现状 特性管理是什么 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 特性管理是一种现代软件开发实践,它将特性的发布与部署解耦,并能够通过特性开关的技术根据需求快速改变特性的可用性,管理特性的生命周期。 特性管理是现代开发实践(如DevOps、CI/CD、渐进式交付、AB实验)的关键驱动因素。 简化开发分支管理 通过代码中开关隔离开发中的特性和功能 提供低风险的保真测试 在线上环境可以精确控制只对测试人员 团队可以使用主干开发,不需引入特性分支 开放新功能,高度保真,降低测试环境 AB实验量化业务价值 搭建成本 渐进放量与迅速止损 灵活控制发布的放量节奏,随时监控效果。如有异常立即关闭,降低故障恢复时长。 通过AB实验量化获取新特性所带来的业务价值,数据驱动产品改进。 特性管理实践的价值 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 02 特性管理与BizDevops 融合业务视角,连接业务、研发、运营角色,交付业务价值 计划 监控 战略 编码 DevOpsCircle 部署 构建 •沟通的粒度 •交付的粒度 •价值评估的粒度 •运营的粒度 特性管理 FeatureManagement 目标 决策 BusinessCircle 假设 优化 特性管理与BizDevops 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 测试 验证 03 特性管理的技术实现 特性管理技术的发展历史 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 01 早期 通过特性分支、配置文件管理 并行度差、易冲突、部署复杂 02 敏捷+持续交付 特性开关,配置服务或数据库管理快速、安全控制 03 微服务+云服务 平台化管理、完善数据分析与控制特性生命周期管理 代码示例 平台示例 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 特性管理服务架构 国外发展状况 覆盖行业 计算机软件、互联网、IT 金融服务、保险健康、医疗 价值认可 降低新特性上线风险 支撑持续交付实践 针对特定用户群体放量新特性AB实验 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 工具支持 自建(硅谷大厂) SaaS化服务:LaunchDarkly,Optimizly。。。开源项目:unleash,ConfigCat,flagsmith 04 特性管理在滴滴的实践 特性管理实践在滴滴的发展历史 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 特性开关+主干开发 开发人员随时可以将不完整的代码安全地合并到主干,提高了代码集成频率同时避免了多分支合并冲突,并且降低回归成本有效地缩短了变更前置时间。 特性分支模式 长期特性分支导致代码集成周期变长,无法尽快发现缺陷,同时分支合并带来的冲突问题将影响交付效率。 特性管理带来的开发模式改变 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 渐进式发布案例 案例:为提升用户体验滴滴乘客端APP付款页改版,需要尽可能保证发布稳定性,不影响核心业务指标。 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 多特性的长期线上测试 线上测试案例 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 案例:滴滴Global司机端启动速度过慢(约4~8秒)极大影响用户体验,尤其是在某些硬件配置较低的机型中更为严重,需要优化APP启动速度。 特性开关作为运维降级预案 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 降低测试成本、风险 •节省搭建线下环境成本 •支持多特性长期并行测试 提升开发效率 开发 测试 运维 •降低特性开发之间的影响 •特性独立部署、发布 •主干开发降低合并冲突 降低MTTR •灰度发布,即时关闭问题特性 •降级预案应对异常 小结:特性管理的DevOps价值 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 优化业务人员与技术人员的协作模式 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 #1 قᰁኞප ᇙ#1 Ⴙᬰୗݎ ᮱ᗟ #2 ᇙ#2 ᅍଶኞප ݎ/ᬩᖌ30̵ᬩ០ 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 作为长期运营配置 特性管理——AB实验案例 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 背景:公告视觉刺激测试,对比不同图片和查看详情文案组合对于用户点击率和跳出率的影响。 目的:提高查看详情点击率,减少页面跳出率。 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 AB实验标准流程 实验方案流量选取指标订阅代码接入数据分析 业务运营、产品经理、研发团队、数据分析师多角色协同 AB实验数据分析 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 AB实验场景: •产品设计与用户体验 •运营策略 •算法策略(排序、分单、推荐) •技术架构升级(性能、稳定性) 小结:特性管理与业务的链接 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 角色协作 •特性粒度链接业务与研发角色, 覆盖特性全生命周期 •部署、发布分离,发布移交给业务运营团队操作,降低沟通成本 价值度量 •在业务与研发团队间统一对业务 价值的理解、度量和计算方式 •用量化数据度量业务价值产出 05 特性管理落地的挑战 开发模式转变 功能粒度开发部署发布解耦主干开发模式 工具平台支持 开关统一管理平台稳定性保障 操作安全性、易用性 实验理论普及 实验设计方法数据分析方法如何解读报告 开关长期治理 及时清理临时开关平台治理功能 落地挑战 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Thanks DevOps时代社区荣誉出品