评论

收藏

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

开发技术 开发技术 发布于:2022-08-17 11:34 | 阅读数:229 | 评论:0

业务现状分析
  典型软件开发趋势:瀑布模型和敏捷模型共存(稳态敏态)
   企业在发展过程中会面临诸多的问题与挑战,传统企业的典型系统级产品开发和项目以瀑布模型和改进V模型为主,开发周期长,变更成本高。随着企业数字化转型,产品开发和项目逐渐演变为以业务为导向,通过拆解细化业务问题,快速进行探索和验证,减少时间及成本浪费的同时,也能快速找到业务前进方向。以上定位于企业专业化产品能力持续提升,逐步提升企业行业内的核心竞争力。    DSC0000.png    传统企业建设现状
      
  •        研发工具分散,管理要求与工具软件未统一平台,数据孤岛多

      
  •        各阶段的数据未打通:项目管理、需求管理与测试管理脱节,数据追溯不便;

      
  •        管理要求与工具软件未结合:管理软件与工具软件分离,度量数据采集分析困难。
      
  •        研发环境难以满足制度要求,研发过程缺乏组织视角

      
  •        代码托管分散:没有统一的代码托管服务;缺少知识积累;

      
  •        发布上线无控制:多途径自由发布,风险扩大;质量要求落实不力;

      
  •        研发过程不持续:多环节没有打通,工具性太强;没有统一平台;

      
  •        源码不可追溯:无平台支撑发布版本与源码的对应关系维护;
   综上,致使企业各个团队都有自己的做法和工具,难以执行的统一的流程、规范和标准。  
      
  •        自动化集成程度不高,手工作业影响工作效率和项目质量

      
  •        大部分活动依赖人工,浪费大量时间,依赖个人经验,影响交付质量。
  软件研发过程面临主要问题

      
  •        需求变更后,需求影响分析和跟踪依赖手工统计;

      
  •        研发周期紧张,研发资源不足,缺乏资源监控手段;

      
  •        质量合规要求高,文档手工编写工作量大;

      
  •        项目的成果积累分散,各部门大量重复功能开发;

      
  •        外部开发与内部开发并行,代码合并易出错;

      
  •        系统耦合性高,升级维护不方便,容易造成版本混乱;

      
  •        产品开发和系统资源分散,运维人员不足,监控困难。
  引进BizDevOps
   BizDevOps旨在统一业务、开发和运维的一种软件工程文化和实践。其核心理念包括:价值、文化、自动化、精益、度量、共享,最终目标是将软件开发的所有环节进行自动化和全面监控。主要包含以下功能特点:  
      
  •        价值导向,需求溯源

      
  •        需求结构化,变更可分析

      
  •        业务测试,持续验证

      
  •        细粒度需求、微服务设计

      
  •        频繁提交代码、快速反馈缺陷

      
  •        每日集成与构建

      
  •        质量关卡、自动测试

      
  •        高频、低风险发布

      
  •        高频、自动部署

      
  •        快速故障探测与恢复

      
  •        全面监测、可视化工作过程
    DSC0001.png    提高研发活动的自动化水平
   企业研发一体化实现目标主要是为应对易变、不确定、复杂、模糊的研发新常态,满足用户对产品快速价值交付要求,引入业界优秀实践,基于持续交付流水线平台,逐步实现软件的自动化编译构建、自动化部署、自动化测试、自动化监测、自动化数据采集与研发效能态势感知。实现从手动构建变为自动化构建;从集中发现缺陷到全过程内建质量;从测试制度化到测试自动化。总体来讲就是实现持续快速交付高质量,以及有价值的产品及服务。   提升软件工程生产力的模型:DevOps全球状态报告
   现如今,大部分互联网厂商均在引入研运一体的概念,包括但不限于金融行业以及各个运营商。通过Gartner报告分析可知,DevOps在以下几方面确实提高了研发效率与质量:  
      
  •        可用、易用的工具

      
  •        内部和外部搜索

      
  •        减少技术债务,手段包括:提升代码可维护性、解耦的架构、监控

      
  •        心理安全的文化
    DSC0002.png    软件研运一体化平台应用实践
  建设目标
   建立集项目管理、需求管理、代码仓库、持续集成、自动化测试、持续部署及度量采集分析的自动化、标准化、数字化软件研发平台。          DSC0003.png    系统思维
   对于大型企业来讲,除了工具上面的配套,服务的方面配套所需更多。因此在研运一体项目的实施过程当中,云智慧通过制度、平台、培训三者结合,即加强论证,分而治之,提升效能的敏捷方式来解决企业业务需求繁多且复杂场景需求。整个系统建设是通过统一规划分布建设的方式,来支撑企业从传统瀑布型至矩阵式敏捷研发新形态的转变。          DSC0004.png    质量思维
   云智慧通过以下三方面内容,完成了企业研运一体的质量内建:  
      
  •        定义统一质量指标,形成指标体系和比较基准;

      
  •        建立组合的质量管理内控要求,固化到研发平台;

      
  •        借助工具实现自动化的质量管控。
  软件研发业务流程示例
   下图为软件研发业务流程示例图。对于装备制造业来讲,整个研发生命周期会包括需求分析、软件设计、编码测试。与传统金融及互联网企业不同,装备制造业会在联试后再进行验收交付和售后服务,这是装备制造业的一个典型特点。          DSC0005.png          下图为业务流程图示例,云智慧根据企业研发组织人员数量对企业进行了分级。  
      
  • 底层团队级:通过需求的多次迭代完成研发过程。  
  •        上层组织级:是多产品、多团队的。即将多层级的 CICD 或者是需求设计形成一种关联的研发关系。组织级比在团队级上线之前多涉及一个联试过程。
         DSC0006.png          软件研运一体化平台开发流程是从业务需求部门或者需求订单开始,随后需求进到开发中心,开发中心结束之后交到运维中心做运维维护,随后通过迭代开发的方式完成整个开发过程,最后完成投产验证。          DSC0007.png    研运一体化平台业务架构
   下图为研运一体化平台业务架构,包含基础层、服务层和应用层。基础层和服务层是底层能力,设计的思想为平台加应用。应用层包含实现需求开发、测试管理、引用发布等功能。          DSC0008.png          下图为客户典型实例场景介绍。从项目开始,负责人通过软件研运一体化平台创建项目,随后开发人员通过环境管理来进行环境准备,如所需服务器、配置等进行申报。项目负责人项目创建完之后,进行项目的派发和拆解。随后以任务为中心,串联整个研发流程。上述过程的核心指标便是在开发过程跑通所有的CI/CD。          DSC0009.png         技术架构
   软件研运一体化平台的基础架构采用的是微服务架构,包括注册管理、服务监控、统一认证、链路追踪、消息队列、日志分析等功能。          DSC00010.png         流水线调度引擎(可集成工具链)
   云智慧软件研运一体化平台除了可集成云加速内部产品外,还可通过流水线调度引擎集成其他产品,如JIRA、Jfrog等热门产品。无需 hard coding,通过拖拉拽的方式即可进行数据的集成,打通整体开发流水线。          DSC00011.png         平台部署架构(容器平台+物理机)
   软件研运一体化平台部署架构包括通过容器、平台和物理机进行部署,此外,也可以通过云部署以及支持虚拟机的方式去部署。那最小的配置与企业用户数相关,目前最低配需至少要有 4 台以上的服务器。          DSC00012.png         研发一体化平台特点
      
  •        自主可控流水线引擎,标准接口
         
    •            简单易用:可视化拖拽设计流水线   
    •            原子级脚本:丰富可扩展的流水线脚本,定制接入新工具   
    •            全环节支持:持续集成、持续部署各环节   
    •            极致体验:面向不同角色的使用设计,良好的用户体验   
      
      
  •        全面的代码检查,提升代码质量
         
    •            语言支持: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 面对面交流~          DSC00013.png
关注下面的标签,发现更多相似文章