企业实践|基于软件研运一体化 DevOps 平台的应用解析
业务现状分析
典型软件开发趋势:瀑布模型和敏捷模型共存(稳态敏态)
企业在发展过程中会面临诸多的问题与挑战,传统企业的典型系统级产品开发和项目以瀑布模型和改进 V 模型为主,开发周期长,变更成本高。随着企业数字化转型,产品开发和项目逐渐演变为以业务为导向,通过拆解细化业务问题,快速进行探索和验证,减少时间及成本浪费的同时,也能快速找到业务前进方向。以上定位于企业专业化产品能力持续提升,逐步提升企业行业内的核心竞争力。
传统企业建设现状
研发工具分散,管理要求与工具软件未统一平台,数据孤岛多
各阶段的数据未打通:项目管理、需求管理与测试管理脱节,数据追溯不便;
管理要求与工具软件未结合:管理软件与工具软件分离,度量数据采集分析困难。
研发环境难以满足制度要求,研发过程缺乏组织视角
代码托管分散:没有统一的代码托管服务;缺少知识积累;
发布上线无控制:多途径自由发布,风险扩大;质量要求落实不力;
研发过程不持续:多环节没有打通,工具性太强;没有统一平台;
源码不可追溯:无平台支撑发布版本与源码的对应关系维护;
综上,致使企业各个团队都有自己的做法和工具,难以执行的统一的流程、规范和标准。
自动化集成程度不高,手工作业影响工作效率和项目质量
大部分活动依赖人工,浪费大量时间,依赖个人经验,影响交付质量。
软件研发过程面临主要问题
需求变更后,需求影响分析和跟踪依赖手工统计;
研发周期紧张,研发资源不足,缺乏资源监控手段;
质量合规要求高,文档手工编写工作量大;
项目的成果积累分散,各部门大量重复功能开发;
外部开发与内部开发并行,代码合并易出错;
系统耦合性高,升级维护不方便,容易造成版本混乱;
产品开发和系统资源分散,运维人员不足,监控困难。
引进 BizDevOps
BizDevOps 旨在统一业务、开发和运维的一种软件工程文化和实践。其核心理念包括:价值、文化、自动化、精益、度量、共享,最终目标是将软件开发的所有环节进行自动化和全面监控。主要包含以下功能特点:
价值导向,需求溯源
需求结构化,变更可分析
业务测试,持续验证
细粒度需求、微服务设计
频繁提交代码、快速反馈缺陷
每日集成与构建
质量关卡、自动测试
高频、低风险发布
高频、自动部署
快速故障探测与恢复
全面监测、可视化工作过程
提高研发活动的自动化水平
企业研发一体化实现目标主要是为应对易变、不确定、复杂、模糊的研发新常态,满足用户对产品快速价值交付要求,引入业界优秀实践,基于持续交付流水线平台,逐步实现软件的自动化编译构建、自动化部署、自动化测试、自动化监测、自动化数据采集与研发效能态势感知。实现从手动构建变为自动化构建;从集中发现缺陷到全过程内建质量;从测试制度化到测试自动化。总体来讲就是实现持续快速交付高质量,以及有价值的产品及服务。
提升软件工程生产力的模型:DevOps 全球状态报告
现如今,大部分互联网厂商均在引入研运一体的概念,包括但不限于金融行业以及各个运营商。通过 Gartner 报告分析可知,DevOps 在以下几方面确实提高了研发效率与质量:
可用、易用的工具
内部和外部搜索
减少技术债务,手段包括:提升代码可维护性、解耦的架构、监控
心理安全的文化
软件研运一体化平台应用实践
建设目标
建立集项目管理、需求管理、代码仓库、持续集成、自动化测试、持续部署及度量采集分析的自动化、标准化、数字化软件研发平台。
系统思维
对于大型企业来讲,除了工具上面的配套,服务的方面配套所需更多。因此在研运一体项目的实施过程当中,云智慧通过制度、平台、培训三者结合,即加强论证,分而治之,提升效能的敏捷方式来解决企业业务需求繁多且复杂场景需求。整个系统建设是通过统一规划分布建设的方式,来支撑企业从传统瀑布型至矩阵式敏捷研发新形态的转变。
质量思维
云智慧通过以下三方面内容,完成了企业研运一体的质量内建:
定义统一质量指标,形成指标体系和比较基准;
建立组合的质量管理内控要求,固化到研发平台;
借助工具实现自动化的质量管控。
软件研发业务流程示例
下图为软件研发业务流程示例图。对于装备制造业来讲,整个研发生命周期会包括需求分析、软件设计、编码测试。与传统金融及互联网企业不同,装备制造业会在联试后再进行验收交付和售后服务,这是装备制造业的一个典型特点。
下图为业务流程图示例,云智慧根据企业研发组织人员数量对企业进行了分级。
底层团队级:通过需求的多次迭代完成研发过程。
上层组织级:是多产品、多团队的。即将多层级的 CICD 或者是需求设计形成一种关联的研发关系。组织级比在团队级上线之前多涉及一个联试过程。
软件研运一体化平台开发流程是从业务需求部门或者需求订单开始,随后需求进到开发中心,开发中心结束之后交到运维中心做运维维护,随后通过迭代开发的方式完成整个开发过程,最后完成投产验证。
研运一体化平台业务架构
下图为研运一体化平台业务架构,包含基础层、服务层和应用层。基础层和服务层是底层能力,设计的思想为平台加应用。应用层包含实现需求开发、测试管理、引用发布等功能。
下图为客户典型实例场景介绍。从项目开始,负责人通过软件研运一体化平台创建项目,随后开发人员通过环境管理来进行环境准备,如所需服务器、配置等进行申报。项目负责人项目创建完之后,进行项目的派发和拆解。随后以任务为中心,串联整个研发流程。上述过程的核心指标便是在开发过程跑通所有的 CI/CD。
技术架构
软件研运一体化平台的基础架构采用的是微服务架构,包括注册管理、服务监控、统一认证、链路追踪、消息队列、日志分析等功能。
流水线调度引擎(可集成工具链)
云智慧软件研运一体化平台除了可集成云加速内部产品外,还可通过流水线调度引擎集成其他产品,如 JIRA、Jfrog 等热门产品。无需 hard coding,通过拖拉拽的方式即可进行数据的集成,打通整体开发流水线。
平台部署架构(容器平台+物理机)
软件研运一体化平台部署架构包括通过容器、平台和物理机进行部署,此外,也可以通过云部署以及支持虚拟机的方式去部署。那最小的配置与企业用户数相关,目前最低配需至少要有 4 台以上的服务器。
研发一体化平台特点
自主可控流水线引擎,标准接口
简单易用:可视化拖拽设计流水线
原子级脚本:丰富可扩展的流水线脚本,定制接入新工具
全环节支持:持续集成、持续部署各环节
极致体验:面向不同角色的使用设计,良好的用户体验
全面的代码检查,提升代码质量
语言支持:Java、C/C++、JavaScript 等主流语言支持
代码扫描:集成商用、自研、开源扫描工具
安全检查:JAR 包黑名单、资源文件白名单、groupid 和 version 规范、禁止快照上线等
智能提示:根据扫描结果给出智能修复提示和样例
服务团队协作、管控和改进
协作平台:让所有团队协作的项目管理平台
质量关卡:提升发布软件质量和质量管控力度
度量报表:为持续改进提供依据,落地研发项目度量规范
强大的研发平台,扩展资源能力
编译加速:多种技术提升代码编译 30%-80%
资源交付:虚拟化、容器等资源自动化部署
业务成功:全面支撑 Biz/Dev/Ops 一体化
国产化适配:适配国产化操作系统
平台建设收益
适用于多种交付模式(整包、批次、按需),实现交付价值。
质量内嵌,通过自动化手段提高交付质量。
开发协同,问题/需求反馈更及时,提高交付速率。
主动发现研发过程潜在风险,降低交付成本。
承载工程师文化,增强团队成功交付信心,提升团队交付能力。
多维度指标自动采集分析展示,支持研发效能持续改进。
FlyFish 开源福利
云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。
点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:https://gitee.com/CloudWise/fly-fish
微信扫描识别下方二维码,备注【飞鱼】加入 AIOps 社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~
版权声明: 本文为 InfoQ 作者【云智慧AIOps社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/4746303c2aa83439f4ed22db8】。文章转载请联系作者。
评论