企业实践|基于软件研运一体化DevOps平台的应用解析

原创
08/16 17:45
阅读数 1.3K

业务现状分析

典型软件开发趋势:瀑布模型和敏捷模型共存(稳态敏态)

企业在发展过程中会面临诸多的问题与挑战,传统企业的典型系统级产品开发和项目以瀑布模型和改进V模型为主,开发周期长,变更成本高。随着企业数字化转型,产品开发和项目逐渐演变为以业务为导向,通过拆解细化业务问题,快速进行探索和验证,减少时间及成本浪费的同时,也能快速找到业务前进方向。以上定位于企业专业化产品能力持续提升,逐步提升企业行业内的核心竞争力。

传统企业建设现状

  1. 研发工具分散,管理要求与工具软件未统一平台,数据孤岛多
  • 各阶段的数据未打通:项目管理、需求管理与测试管理脱节,数据追溯不便;
  • 管理要求与工具软件未结合:管理软件与工具软件分离,度量数据采集分析困难。
  1. 研发环境难以满足制度要求,研发过程缺乏组织视角
  • 代码托管分散:没有统一的代码托管服务;缺少知识积累;
  • 发布上线无控制:多途径自由发布,风险扩大;质量要求落实不力;
  • 研发过程不持续:多环节没有打通,工具性太强;没有统一平台;
  • 源码不可追溯:无平台支撑发布版本与源码的对应关系维护;
综上,致使企业各个团队都有自己的做法和工具,难以执行的统一的流程、规范和标准。
  1. 自动化集成程度不高,手工作业影响工作效率和项目质量
  • 大部分活动依赖人工,浪费大量时间,依赖个人经验,影响交付质量。

软件研发过程面临主要问题

  • 需求变更后,需求影响分析和跟踪依赖手工统计;
  • 研发周期紧张,研发资源不足,缺乏资源监控手段;
  • 质量合规要求高,文档手工编写工作量大;
  • 项目的成果积累分散,各部门大量重复功能开发;
  • 外部开发与内部开发并行,代码合并易出错;
  • 系统耦合性高,升级维护不方便,容易造成版本混乱;
  • 产品开发和系统资源分散,运维人员不足,监控困难。

引进BizDevOps

BizDevOps旨在统一业务、开发和运维的一种软件工程文化和实践。其核心理念包括:价值、文化、自动化、精益、度量、共享,最终目标是将软件开发的所有环节进行自动化和全面监控。主要包含以下功能特点:
  • 价值导向,需求溯源
  • 需求结构化,变更可分析
  • 业务测试,持续验证
  • 细粒度需求、微服务设计
  • 频繁提交代码、快速反馈缺陷
  • 每日集成与构建
  • 质量关卡、自动测试
  • 高频、低风险发布
  • 高频、自动部署
  • 快速故障探测与恢复
  • 全面监测、可视化工作过程

提高研发活动的自动化水平

企业研发一体化实现目标主要是为应对易变、不确定、复杂、模糊的研发新常态,满足用户对产品快速价值交付要求,引入业界优秀实践,基于持续交付流水线平台,逐步实现软件的自动化编译构建、自动化部署、自动化测试、自动化监测、自动化数据采集与研发效能态势感知。实现从手动构建变为自动化构建;从集中发现缺陷到全过程内建质量;从测试制度化到测试自动化。总体来讲就是实现持续快速交付高质量,以及有价值的产品及服务。

提升软件工程生产力的模型:DevOps全球状态报告

现如今,大部分互联网厂商均在引入研运一体的概念,包括但不限于金融行业以及各个运营商。通过Gartner报告分析可知,DevOps在以下几方面确实提高了研发效率与质量:
  • 可用、易用的工具
  • 内部和外部搜索
  • 减少技术债务,手段包括:提升代码可维护性、解耦的架构、监控
  • 心理安全的文化

软件研运一体化平台应用实践

建设目标

建立集项目管理、需求管理、代码仓库、持续集成、自动化测试、持续部署及度量采集分析的自动化、标准化、数字化软件研发平台。
 

系统思维

对于大型企业来讲,除了工具上面的配套,服务的方面配套所需更多。因此在研运一体项目的实施过程当中,云智慧通过制度、平台、培训三者结合,即加强论证,分而治之,提升效能的敏捷方式来解决企业业务需求繁多且复杂场景需求。整个系统建设是通过统一规划分布建设的方式,来支撑企业从传统瀑布型至矩阵式敏捷研发新形态的转变。
 

质量思维

云智慧通过以下三方面内容,完成了企业研运一体的质量内建:
  • 定义统一质量指标,形成指标体系和比较基准;
  • 建立组合的质量管理内控要求,固化到研发平台;
  • 借助工具实现自动化的质量管控。

软件研发业务流程示例

下图为软件研发业务流程示例图。对于装备制造业来讲,整个研发生命周期会包括需求分析、软件设计、编码测试。与传统金融及互联网企业不同,装备制造业会在联试后再进行验收交付和售后服务,这是装备制造业的一个典型特点。
 
 
下图为业务流程图示例,云智慧根据企业研发组织人员数量对企业进行了分级。
  • 底层团队级:通过需求的多次迭代完成研发过程。
  • 上层组织级:是多产品、多团队的。即将多层级的 CICD 或者是需求设计形成一种关联的研发关系。组织级比在团队级上线之前多涉及一个联试过程。
 
 
软件研运一体化平台开发流程是从业务需求部门或者需求订单开始,随后需求进到开发中心,开发中心结束之后交到运维中心做运维维护,随后通过迭代开发的方式完成整个开发过程,最后完成投产验证。
 

研运一体化平台业务架构

下图为研运一体化平台业务架构,包含基础层、服务层和应用层。基础层和服务层是底层能力,设计的思想为平台加应用。应用层包含实现需求开发、测试管理、引用发布等功能。
 
 
下图为客户典型实例场景介绍。从项目开始,负责人通过软件研运一体化平台创建项目,随后开发人员通过环境管理来进行环境准备,如所需服务器、配置等进行申报。项目负责人项目创建完之后,进行项目的派发和拆解。随后以任务为中心,串联整个研发流程。上述过程的核心指标便是在开发过程跑通所有的CI/CD。
 
 

技术架构

软件研运一体化平台的基础架构采用的是微服务架构,包括注册管理、服务监控、统一认证、链路追踪、消息队列、日志分析等功能。
 
 

流水线调度引擎(可集成工具链)

云智慧软件研运一体化平台除了可集成云加速内部产品外,还可通过流水线调度引擎集成其他产品,如JIRA、Jfrog等热门产品。无需 hard coding,通过拖拉拽的方式即可进行数据的集成,打通整体开发流水线。
 
 

平台部署架构(容器平台+物理机)

软件研运一体化平台部署架构包括通过容器、平台和物理机进行部署,此外,也可以通过云部署以及支持虚拟机的方式去部署。那最小的配置与企业用户数相关,目前最低配需至少要有 4 台以上的服务器。
 
 

研发一体化平台特点

  1. 自主可控流水线引擎,标准接口
    1. 简单易用:可视化拖拽设计流水线
    2. 原子级脚本:丰富可扩展的流水线脚本,定制接入新工具
    3. 全环节支持:持续集成、持续部署各环节
    4. 极致体验:面向不同角色的使用设计,良好的用户体验
  1. 全面的代码检查,提升代码质量
    1. 语言支持:Java、C/C++、JavaScript等主流语言支持
    2. 代码扫描:集成商用、自研、开源扫描工具
    3. 安全检查:JAR包黑名单、资源文件白名单、groupid和version规范、禁止快照上线等
    4. 智能提示:根据扫描结果给出智能修复提示和样例
  1. 服务团队协作、管控和改进
    1. 协作平台:让所有团队协作的项目管理平台
    2. 质量关卡:提升发布软件质量和质量管控力度
    3. 度量报表:为持续改进提供依据,落地研发项目度量规范
  1. 强大的研发平台,扩展资源能力
    1. 编译加速:多种技术提升代码编译30%-80%
    2. 资源交付:虚拟化、容器等资源自动化部署
    3. 业务成功:全面支撑Biz/Dev/Ops一体化
    4. 国产化适配:适配国产化操作系统

平台建设收益

  • 适用于多种交付模式(整包、批次、按需),实现交付价值。
  • 质量内嵌,通过自动化手段提高交付质量。
  • 开发协同,问题/需求反馈更及时,提高交付速率。
  • 主动发现研发过程潜在风险,降低交付成本。
  • 承载工程师文化,增强团队成功交付信心,提升团队交付能力。
  • 多维度指标自动采集分析展示,支持研发效能持续改进。

FlyFish开源福利

云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。
 
点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:https://gitee.com/CloudWise/fly-fish
 
微信扫描识别下方二维码,备注【飞鱼】加入AIOps社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~
 
展开阅读全文
加载中

作者的其它热门文章

打赏
0
4 收藏
分享
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部