1、平台 让创新无限打造卓越的IT生产线DevOps平台与实践平台 让创新无限 目录 工程效率平台总览 企业DevOps建设思路 DevOps平台实践 案例分享建立卓越IT生产线 业务研发运维基础设施交付需求(产品)配置(变更)支撑保障质量安全问题(1)DevOps平台 - 流程梳理与交付自动的迭代过程DevOps横向集成:实现敏捷团队内不同角色的紧密协同DevOps纵向集成:打通研发工具链,建立部署流水线,自动化完成不同环境的部署,实现应用程序的持续交付纵向集成横向集成用户故事缺陷测试用例编译部署(Test)测试(Test)部署(Prod)用户 PM QA Dev Ops部署(Stage)配置监
2、控反馈架构(A)业务(B)组织(O)流程(P)开发、运维、安全、质量、精益面向版本火车的价值流交付技术架构应用架构容器云传统虚拟化微服务服务与工具元数据驱动故事地图精益看板敏捷可视化协作学习型成熟度原则阶段流水线开发流水线集测流水线交付流水线定义计划构建测试部署可管理可审计可优化(2)自动化测试平台 - 行为驱动开发的最佳实践过程优化度量分析自动化测试管理视图自动化测试技术视图性能压测实验室测试过程规范管理测试度量分析测试评审测试环境管理测试资源管理测试工具管理测试报告管理接口自动化测试功能自动化测试性能自动化测试安全性自动化测试健壮性自动化测试测试需求管理测试用例管理Bug管理移动端自动化测
3、试实验室监督控制技术支撑以BDD(行为驱动开发)方法为主导思想,提供完整测试工具集合,建立拉动式的自动化测试平台(5)容器云平台 - 用基础能力屏蔽基础设施的过程Any infrastructurePhysicalVirtual cloudAny app14K apps6K projectsAPIAPIEngineHub(6)微服务平台 - 分布与聚合的完整方案体验聚合架构分布应用/渠道分布服务分布数据分布感知分布运维体验聚合客户体验聚合开发体验聚合交付体验聚合监控数字化企业云平台基础设施基础服务DevOpsApplication PaaSBPM PaaSIntegration PaaSBig
4、Data PaaS计算网络存储容器镜像仓库API网关服务路由服务发现服务注册自部署资源适配配额管理环境管理资源监控资源编排日志身份认证项目管理软件产品管理软件发布管理软件环境管理介质包仓库部署包仓库版本控制系统持续集成流程编排通讯使能BPM移动应用Web应用分布式数据处理数据展现数据质量元数据作业调度事件总线应用生命周期管理React风格Redis缓存复杂事件处理对象存储服务总线消息中心社交BPM流程梳理移动BPM业务活动监控服务容器服务配置Web容器负载数据应用质量基线反馈统一监控中心知识库关系数据库服务性能监控独立进程应用文件元数据业务中台业务后台租户管理客户管理多维组织模型客户行为信息业
5、务控制数据业务集成框架身份认证设备数据 目录 工程效率平台总览 企业DevOps建设思路 DevOps平台实践 案例分享理清 微服务容器DevOps 的关系微服务容器技术“散”“裸”“工程化”“可用”DevOps误区: 一味的强调敏捷,往往忽略了企业级交付设计开发测试计划分析发布设计开发测试分析发布设计开发测试分析发布启动Sprint1Sprint2.敏捷版本火车项目群产品管理误区:做DevOps,是不是就是工具链的集成?那DevOps需求是什么?数据打通,基于度量引领优化新特性是否知道运行在哪些机器上?功能是否知道有多少人花了多少代码完成的?设计的架构和实际部署的架构是有有偏离?代码库与介质
6、库、组件与介质库的元信息关联?项目风险到底是什么造成的?管理能否前移?面向版本火车的DevOps建设策划研发运营退出产品项目定义设计构建测试部署执行立项完工敏捷持续集成持续部署持续交付DevOps,面向项目群(版本火车)1*处理产生事件总结核心建设思路DevOps平台更重要的是提供最佳实践示例: 版本号的管理与关联产品版本:1.0版本别名:shark代码版本(POM)1.snapshot 1.0.0-snapshot2.release 1.0.0修订号:一般引入第3位,如1.0.1,代表第一次修订构建号:一般引入第4位1.有体现在jar包名称上2.有体现在manifest文件中发布版本1.往往
7、与修订版本一致2.也有独立声明的假设再引入了微服务?1.API版本2.示例: 版本号维度的发布展现2、产品修订版本3、产品发布版本4、内部组件版本1、产品规划版本1.0示例: 代码库如何使用与构建CBRMcommitbranchreleasemergeTBDGitHubGitCCCCCCCCCCPcherry-pickBCPRBRRRBCCMBCCMmasterdevelopfeaturereleasehotfixBCC多个BRTag与release分支使用方式类似核心建设思路DevOps平台,重在让所有角色在流水线上协作,共同驱动过程的精益示例: 不同阶段的流水线开发流水线: 能最快的将代码
8、变更体现到开发联调环境上测试流水线: 多轮迭代,冒烟准入,确认可进入发布流水线发布流水线: 多环境确认,推上生产,需要必要的审核构建单元测试代码扫描介质上传开发环境部署验证构建单元测试代码扫描介质上传A环境部署验证B环境部署验证.部署验证切换流量申请发布审批生产发布示例: 从流水线上看过程关键一: 环节必选与可选关键二: 自动与人工配合关键三: 主数据,buildNumber关键四: 参与者权限核心建设思路DevOps平台,管理前移,有效指导和约束后续工作示例: 统一部署设计,驱动自动部署示例:配置资源与策略,完成自动部署nginxtomcatmysql192.168.1.2192.168.1
9、.3192.168.1.4192.168.1.5Upsteam: wtGAV: *.warGAV: *.sqlUpdateNewUpdate核心建设思路对于已有系统, DevOps平台不仅仅是通过新的工具链实现快速交付,更是一种驱动优化的变革示例: 在CI中运用多构建策略提交即触发编译时间长怎么办?架构设计有问题设置构建超时时间超时自动提bug提交即触发,我的一个产品,构建一次要20多分钟,怎么办?提交即触发执行所有Module发现架构偏差分析子系统依赖设计执行依赖Module自动提bug示例: 从CD结果中优化部署形态某客户说,因为回归测试不充分,每次发布都特别痛苦,但事实是1. 逻辑问题2
10、. 打包问题3. 多war问题为了配置,上线介质都是重新打包的一个Jboss下,21个war包出错几率大大增加启停时间特别长示例:多维度度量成员成员团队团队部门部门质量质量代码问题数构建成功率构建成功率严重Bug数缺陷移除率部署成功率千行Bug率需求覆盖率周期内生产事故数量问题打回率文档过审版本上下线周期效率效率编码效率构建频率、时长事故恢复时间Bug修复时长部署时长周期内产品数用例执行时长需求交付时长周期内项目数进度进度任务偏差项目偏差项目偏差任务滞留需求积压吞吐稳定性部署频率、交付周期变更失败率、故障恢复时长核心观点DevOps平台,并不是自动化一切,而是在可控中有选择的自动化项目上线阶段
11、 滚动升级策略下的部署转换示例部署转换:部署设计是逻辑部署架构,在实际部署时,需要结合目标环境类型、部署策略、部署模式等,将其转换为可执行的物理部署架构(执行计划)。nginxtomcatmysql滚动升级滚动升级步长设置第一个步长容易有问题第一个步长脚本预览第一个步长部署可暂停后续步长可实时调整第一步:基本设置步长失败中断值前置版本资源确认第二步:计划生成父子计划参数化第三步:计划执行参数值变更预check(沙箱化)建设思路总结 一条IT生产线 覆盖产品、项目领域 体现出最佳实践 加强协作 管理前移 优化架构 可控范围的自动化核心价值:大幅提升IT工程效率 目录 工程效率平台总览 企业Dev
12、Ops建设思路 DevOps平台实践 案例分享DevOps平台 能力矩阵项目团队冲刺角色权限任务Bug构建代码库分支/tag代码质量流水线任务编排发布执行配置下发人工干预部署部署设计策略管理脚本版本跟踪资源度量与优化构建成功率构建时长部署成功率代码质量介质库需求看板总结组件管理构建伸缩漂移备份回滚日志监控部署时长瓶颈活动实例运维测试集成服务预置缺陷逃逸问题库环境看板执行跟踪变量管理各阶段工件打通,支撑软件生命周期配置管理项目管理追踪(需求、任务)持续集成发布管理运营报表与分析测试管理与自动化项目规划与定义端到端的集成与追踪软件研发协作统一平台研发运维一体化应用配置资源监控数据辅助决策研发流程透
13、明化规范化开发人员效率提升提高软件交付质量与效率实施效果快速响应业务变化、早于客户发现问题QCAppniumAnsibleHarborOpenPLM集成开源与标准系统,保持架构开放性沟通环境&资源源码编译介仓PM测试&质量监控配置Harbor部署AnsibleFabric8中间件服务OracleAppiumArtifactoryMake针对企业网管要求,形成高可靠部署架构关键设计: 领域驱动设计,组件化叠加关键设计: 充分考虑设计产物的可执行性Word文档4+1togaf产品(系统)=开发运行线上设计接口组件容器装配输入生成、检查接口设计应用组件部署架构关键设计: 编排式的构建定义与可视化执行
14、构建定义任务管理选择模板JavaEEAndroidHtml.在项目中创建构建定义增加多个构建任务(步骤)触发规则设置触发规则,如日构建、每次变更;对编译历史设置保留策略;对一些公共变量可设置为公用参数;保留策略参数设置关键设计:支持异构设施上的多策略发布部署设计部署转换组件运营部署装配部署系统部署系统部署组件部署组件部署组件部署组件装配库提交部署环境配置库定义策略资源配置装配部署计划生成Jenkins pipeline计划执行审批AnsibleAnsibleFabric物理机OpenstackOpenshift部署组件实例A实例B部署组件实例C实例D 启动 停止 重启 修复 状态检查 组件实例
15、运营承载全新蓝绿灰度滚动升级可伸缩关键设计:流水线过程化的动态配置前置构建环境流水线发布过程支持手动触发发布过程支持在特殊分支构建触发发布过程支持定时触发发布过程支持自定义事件触发编排项目中各环境的顺序支持自动和人工审核每个环境中可支持多任务,比如部署,测试,邮件通知等跟踪流水线过程基于运营数据优化生产线通过模板化的任务封装,后续扩展出更多发布动作支持与企业CMDB打通支持与ITSM打通触发发布动作设计发布过程过程持续优化打通企业各信息系统产品截图 平台配置 组织机构产品截图 平台配置 系统配置产品截图 平台配置 业务参数产品截图 平台配置 安全审计产品截图 项目管理产品截图 组件与代码库管理
16、产品截图 持续集成产品截图 发布流水线产品截图 报表愿景: 打造可持续发展的DevOps平台易扩展方法拦截器,AOP模式实现配置化,灵活替换实现对外接口可度量度量的法则: 吞吐与稳定性三个维度: 效率、质量、进度基于数据不断推导出阈值(数据)连通性需求到代码的跟踪设计驱动最终部署架构的标准(行业)标准化流程的相似性沉淀项目模板、应用模板的通用性 目录 工程效率平台总览 企业DevOps建设思路 DevOps平台实践 案例分享 DevOps典型客户案例万达网络科技集团一家实业+互联网大型开放型平台公司,拥有支付、征信、信贷等业务资质的公司,运用大数据、云计算、人工智能、场景应用等技术为实体产业实
17、现数字化升级,为消费者提供生活圈的全新消费服务。IT工程效率提升50%工程效率提升50%6个月时间40多套核心产品周交付建立引领性度量指标交付速度工程质量运维保障用户体验业务价值建立质量评分机制需求覆盖率100%100%100%100%100%100%100%构建成功率80%70%90%85%70%75%80%单元测试覆盖率30%20%30%25%20%10%15%部署成功率90%92%95%90%88%85%90%技术债务比率35%40%30%28%60%30%36%Reopen缺陷占比2.00%3.00%0.00%0.00%2.50%5.00%2.00%缺陷逃逸率5%8%2%3%6%10%
18、3%生产环境Bug2311381缺陷密度1.21.81.61.82.52.82 615版本万达财富 630版本万达贷 0601版本统一账户 601版本统一支付 615版本统一消息 0525版本统一客服URP 2.0版本 统一风控1.21.81.61.82.52.8223113810246810120%20%40%60%80%100%120%数 据 轴项目质量展示图国家开发银行国家开发银行信息化总体规划(2015版)中明确指出“应用灵活友好,架构弹性开放”的信息化发展目标,确定了“大平台,小应用”的总体建设思路,在架构领域实现弯道超车。USE大平台的统一规划统一软件交付CDP分布式服务框架DSF
19、PaaS云平台USE 2.0 实现分布式服务架构,推动服务治理,解决中心化问题推动“大平台,小应用”,增加系统弹性和灵活性借鉴Devops理念,实现软件交付过程自动化、标准化、一体化,提升交付质量和效率。应用开发平台USE1.0+微服务平台 提供一体化的应用开发工具和运行环境到人到接口的细粒度统计全生命周期的交付跟踪中国联通联通在大混改背景下,为解决应用孤岛问题,实现能力共享,从集团处整体规划,建立面向微服务架构的研发运营一体化平台,提升项目交付效率,快速响应业务变化,同时通过容器化能力,改善资源利用率,降低运维成本。DevOps运营一体化平台能力联通新一代: 微服务平台容器云平台I-PaaS
20、平台开发平台DevOps平台千人千面: 面向平台管理面向项目管理面向资源面向服务面向开发测试面向租户,打通从资源申请到最终上线运行过程资源申请资源申请 租户租户DevOps平台平台I-PaaS平台平台I-PaaS能力申请容器化管理平台容器化管理平台微服务管理平台微服务管理平台开发平台开发平台申请审批生成订单开通能力结果通知能力申请业务开发能力访问地址业务开发业务开发提交代码代码仓库集成部署集成部署微服务注册微服务调用开发注册微服务微服务调用打包部署容器化运行发布到容器化平台运行运行管理运行管理租户能力运行情况监控租户微服务管理租户容器运行监控能力监控、管理微服务监控、管理容器运行监控、管理各模块管理API接口调用容器能力开通容器部署申请1234一体化门户效果