瞄定六大目标,达成信创DevOps平台的“适、快、精”

2022-06-15 19:02:32 浏览数 (1)

转载本文需注明出处:微信公众号EAWorld,违者必究。

谷缜:在国家大力推动信创产业发展和国产化的大背景下,支撑不同行业和企业之间差异化的需求,工具链的替换与迁移,安全合规管控等给DevOps带来了新的机遇和挑战。

01

推进DevOps信创工作落地,

我们遇到了哪些挑战

DevOps平台作为一条支撑软件研发全生命周期的IT生产线,平台所提供的支撑能力需要覆盖软件研发的各个阶段。从需求的管理及拆分到整个研发过程的管理,再到后期交付到运维,发现问题后进行持续的反馈,再进行研发过程的持续交付,是一个全生命周期的管理。

在管理过程中,平台也提供了相关的能力以保障质量和安全的管控要求。

在推进DevOps信创工作的落地,我们碰到了一些挑战。包括不同企业项目管理的差异化需求、国外商业项目管理软件的迁移替换、不同企业应用特点的差异,如技术栈,中间件,基础设施等、安全合规管控要求等。

★项目及工作项管理的差异化需求

不同行业,不同企业之间的项目管理方式都有所不同。大多数企业都有自己的项目管理系统,针对一些版本发布的流程做管控,但很多没有对工作项(就是开发任务)进行系统的管理,还是使用看板加便签的管理方式。

也有部分企业使用国外的商业软件进行项目管理,其中最常见到的就是JIRA。还有一部分使用禅道进行管理,但相比于JIRA,禅道缺少了灵活配置的能力,真正用起来的企业也不多。

普元DevOps平台建设之初,项目及工作项管理这块就是采用集成的方式,对JIRA和禅道都进行了适配。在不少客户实施也都是采用这种集成的方式进行项目管理。

那么,在信创环境下,如何通过DevOps平台实现软件研发的全生命周期管理,满足各行业的项目管理需求,并兼容企业不同的项目管理之间的差异,支撑从商业项目管理软件到DevOps的平滑迁移呢?

我们将不同的项目管理模式定义成不同的项目模板。项目模板包含人员角色模板和工作项方案。人员角色模板定义了一类项目管理模式中涉及到的人员角色。不同的人员角色有不同的权限配置。工作项方案包含了一类项目管理模式中涉及到的工作项管理,工作项分为不同的类型(故事,任务,缺陷等),不同工作项对应的页面及属性也不同(就是针对某个工作项创建,编辑等页面也可以不同)。每个工作项类型的状态及流转过程也不同。

普元DevOps提供了整套自定义工作项管理方案的能力,用户可以基于该能力配置出一套适合自身的工作项管理的方案。

我们通过对使用JIRA做项目管理的客户进行项目管理模式,工作项管理方案的梳理,通过DevOps平台提供的自定义工作项方案的能力,协助客户将整个项目及工作项管理的过程迁移到DevOps平台上来进行。

★技术栈,中间件,异构基础设施等差异

不同行业,不同企业应用技术栈,用到的部署中间件,基础设施等都存在或多或少的差异。普元DevOps如何支撑不同技术栈应用的构建需求,不同中间件的部署需求,以及不同基础设施的应用发布需求?

普元DevOps平台通常将完整的构建和发布需求分解成一个个通用的原子任务,并默认提供涵盖构建、工具、测试、部署等多个维度,共计70 的原子任务,适用于企业应用构建和发布的各种场景。如一个完整微服务应用构建过程,包含拉取代码、执行maven构建、制品安全合规扫描、制品上传这些原子任务。用户通过原子任务编排的方式,完成应用的构建过程配置。

为了满足扩展性需求,普元DevOps还设计了基于动态表单 静态脚本的方式扩展原子任务的模式。该模式通过sql文件实现原子任务的页面及属性定义,然后通过静态脚本实现具体的任务执行逻辑。基于这样一套扩展性极强的框架,用户可以基于自身的需求,扩展支撑国产应用服务器的部署。

★安全合规管控

安全合规在当前信创生态环境下是所有企业绕不开的话题。DevOps测试类原子任务中提供了包含代码安全扫描、制品安全合规扫描等多种工具。用户可以在应用的持续集成过程中添加对应的原子任务,对代码安全及制品安全合规进行管控,实现保障制品安全合规的目标。

代码安全扫描可以发现代码的漏洞及BUG,并提供相应的示例说明。用户可以通过配置质量阈对扫描结果进行验证,若存在漏洞或BUG则报错并抛出异常,相关任务可以根据扫描信息对问题进行修复。

制品安全合规扫描可以对持续集成过程中生成的制品进行扫描,可以扫描制品的依赖(如依赖的jar包),并获取jar包的license信息和漏洞信息。若存在漏洞或者不合规的license会进行告警。用户也可以下载扫描结果的安全合规报告。

★国产化环境运行

DevOps平台也需要适配信创生态进行调整,让整个平台及其依赖的工具能够部署运行在国产操作系统上。

同时,DevOps自身应用war包也可以运行在国产中间件上,并且针对国产数据库我们也做了适配,已经支持人大金仓和达梦数据库,也已经在客户的环境中经过了充分的验证。

02

瞄定DevOps平台实施过程中的

六大目标,

达成“适、快、精”价值

基于流程和数据的打通,通过度量的方式帮助管理者进行软件全生命周期过程的优化,是DevOps建设的最终目标。但是在DevOps实施过程中,需要先瞄定管理前移、全链路追溯、量化评估、自主掌控、多架构适配、驱动协同六大目标来解决问题,以利于面向信创生态,达成研发运维一体化平台的价值。

★管理前移

通过流程数据的打通,DevOps平台可以提前感知项目存在的风险,项目进度是否有延迟,质量与预期的目标是否有偏差,帮助管理者能更早的发现问题并介入处理,以便能更早的规避风险。这是促进管理前移的问题。

★全链路追溯

数据流程的打通能够帮助DevOps平台建立全链路的信息,比如针对工作项和缺陷处理,开发人员可以提交代码并进行工作项关联,构建过程可以记录是基于哪个代码库,哪次编译,哪个构建号,并将这些信息关联到构建生成的制品。在制品发布到具体环境时,记录发布的相关信息,如机器资源等。通过这种方式打通从工作项-代码-构建-制品-发布-实例运维的一整条链路信息,以便发现问题时能很方便的进行链路追溯和问题排查。

★量化评估

打通流程和数据之后,DevOps平台可以基于报表相关数据对各个阶段的工程效率进行度量,也能更好进行资源分配。同时,DevOps平台还可以更准确评估完成需求需要的时间,以便合理的指定开发计划。

★自主掌控

DevOps平台需要对代码源头、编译过程、发布过程进行管控,以达到企业自主掌控的信创要求。

★多架构适配

DevOps平台支持各种技术栈应用的编译,编译环境管理,支持不同的中间件应用发布。在一个统一的平台上形成完整的资产和信息链。屏蔽一些差异化,通过相对标准的配置就能进行管理。

★驱动协同

这里不仅仅针对开发和运维,而是覆盖完整的软件全生命周期,从需求、开发、测试到运维,甚至质量与安全等。所使用的方式,也就是之前提到的横向维度的集成,打通部门之间的壁垒,实现高效的驱动协同。

瞄定以上六大目标解决问题后,研发运维一体化平台的实施落地,从客户价值来说,就可以归结为“适,快,精”三个字。

★适——打造适合企业自身的最佳实践

在实施落地的过程中,对企业来说,适配性非常重要。因为每个客户都是存在差异的,IT建设过程中都形成了一套符合自身的体系。从适的维度来说,就是要结合企业自身的规范标准、应用特点,打造一条适合企业的IT生产线,在功能上实现“开箱即用”的基础上,还可以在实施上满足企业适配需要。

★快——促进高效协作,提升交付效率

建设DevOps平台,快是显而易见的。从软件交付来看,DevOps平台提高了交付效率;从整体效果来看,DevOps平台通过全流程打通,促进了各部门和人员之间高效的协作。

★精——资产的精益运营

从度量的维度来看,DevOps平台通过量化评估和度量以及过程的可视化来进行资产的追溯,来帮助企业了解资产的状态以及自身的短板,然后协助企业进行优化,特别是运营的优化。

03

面向信创生态的DevOps功能

普元DevOps的定位,是一条支撑软件全生命周期的IT生产线,从全景图来看,它展现了软件研发的四个主要阶段:启动阶段、规划阶段、研发阶段、投产阶段。每个阶段都会有相关的活动,DevOps的能力支撑也体现在这些阶段中。

从产品功能架构,也是从全生命周期管理划分来看,整个平台的能力矩阵更为清晰。

项目管理:进行项目的团队管理、人员权限管理、版本与里程碑管理或者是敏捷的迭代管理、人员角色及权限管理等。

工作项管理:进行工作项管理,包含需求、开发任务、缺陷等。看板管理,可通过自定义看板结合过滤器的能力定制各种展示面板。

代码管理:进行代码库的管理、分支标签管理、代码对比、代码合并、代码质量扫描、代码提交关联工作项等。

测试管理:测试用例、自动化测试、测试计划、测试过程、测试结果、缺陷管理等。

持续集成:应用组件、构建定义、执行跟踪、制品及镜像等构建产物的管理。

持续交付:资源管理、部署编排、执行跟踪、全链路、应用实例运维等。

精益度量:项目进度、工程质量、研发效率、风险预警、综合大屏等。

个人工作台:用户可以配置展示并管理个人的事项,包含任务面板、构建面板、发布面板、工单面板等。

从项目管理、持续集成和发布、质量管理以及可视化和度量这四个主要IT管理核心的维度,能够看到我们DevOps平台实现了全流程打通、多架构适配等核心功能。

1. 项目管理

全流程打通:通过梳理企业项目管理流程,明确相关系统集成接口,以集成的方式拉通流程。在这个过程中识别自动化流程,并对全流程过程进行简化和优化。

项目差异化管理:为应对项目管理的差异化需求,梳理企业项目管理模式,包括人员角色及权限、工作项问题类型、状态流转、属性定义、页面定义等。通过项目模板绑定项目管理模式,以及强大的工作项方案自定义的能力,满足企业项目管理差异化需求。

多维看板:工作项展示支持详情、列表、看板、树等多种视图,结合过滤器提供的按条件筛选的能力,实现多维看板。用户可自由定制工作项展示的方式和内容,并通过选中的过滤器进行看板切换。

IDE集成:通过开发工具插件进行集成,在开发工具上就能够进行工作项处理,以及代码提交关联工作项。

需求及任务追溯:通过需求和任务的关联,实现变更历史、缺陷和测试用例的关联,以及工作项和代码的关联等,从而进行需求及任务追溯。

2. 持续集成和发布

代码分支策略:通过梳理企业代码分支管理策略,在不改变已有的管理模式的基础上进行优化,并结合已有代码构建相关的原子任务,实现代码分支管理与构建过程的打通。

代码跟踪:代码提交关联工作项之后,可对代码进行跟踪,查看工作项关联。构建之后,基于构建的代码获取工作项对应关联,进行制品与工作项的关联。

资产库:建立三方库,组织级二方库管理规范。建立制品库管理规范,对构建生成的制品进行管理。支持制品的链路追溯,支持制品的版本对比。

编排及可视化执行:支持通过原子任务的编排配置构建和部署过程,支持导出导入模板,支持触发规则、保留等策略,支持变量等配置。支持对构建过程进行追溯,可以查看每一步任务执行情况和日志。

全链路追溯:支持对已部署的应用进行全链路追溯,支持对应用部署、制品、构建、代码、工作项等关联信息进行查看。

3. 质量管理

代码质量:支持单元测试执行、覆盖率统计及测试结果查询。支持代码质量扫描、报告查看下载、质量门禁配置。

手工测试管理:支持测试用例、测试计划、测试执行、缺陷管理、测试报告等管理。

自动化测试:通过扩展测试原子任务,如使用已有的rebotframework测试原子任务,以构建配置执行,并获取测试报告及展示测试结果。

制品扫描:通过制品扫描原子任务对构建制品扫描,或对已有的制品目录手动触发扫描。可以在线查看结果并导出报告。

4. 可视化和度量

可视化:项目管理过程透明化,任务看板、应用组件、构建及执行、发布及执行、应用运维、全链路跟踪等可视化。

个人工作台:将个人事项进行聚合展现以及处理,不用切换项目或菜单。可以对需求、任务、构建、发布、工单等事项进行面板定义与管理。

度量指标:提供丰富的度量指标库,涵盖质量、效率、进度等多个维度。

项目大屏:基于不同的人员角色,提供不同的报表视图。项目经理可以通过项目大屏,查看项目的进度、人员、研发效率、工程质量等数据。更高一级的管理者可以通过项目总览大屏,查看不同项目对比的情况,包含项目健康状况、项目进度、研发效率以及项目质量。

04

DevOps信创项目典型实践

普元研发运维一体化平台DevOps成功应用于金融、政府、军工、通信、教育、能源等行业,推进典型实践。在金融客户的应用场景中,普元帮助客户满足特色需求,实现DevOps信创实践的全面落地。

某国有银行DevOps可视化平台项目

背景:

行内虽然使用了项目管理、测试管理、Jenkins、部署平台等,但数据分散在各平台中,生产上线过程还停留在手工模式,无法形成完整的信息追溯链,难以清晰地掌握从需求到投产上线的全流程。

同时,开发、测试等多个环境管理混乱,缺乏有效的制品晋级管控措施,使得组织级质量目标难以落地。

希望通过DevOps可视化平台项目的建设实现开发、测试、运维一体化门户,形成串联开发、测试、生产的一键部署能力,以及贯穿度量和过程数据的持续度量能力。

难点:

  • 深度定制了JIRA,将日常办公所有的事项都放在了JIRA,导致性能瓶颈。
  • 不同的项目有不同的人员角色,以及不同的工作项管理模式。
  • 云上有两套环境,都需要完成自动发布。

某城市商业银行持续集成平台项目

背景:

随着数字化转型浪潮席卷而来,银行的信息化平台建设正在经历新的考验。IT各部门之间的隔阂导致的信息传递失真、软件研发过程的数据割裂等原因使得银行的数字化转型面临极大的阻碍。

该城商行将借助持续集成平台打造一套适合自身IT系统的生产线,从“需求->开发->测试->发布->运维->运营”端到端支持的协同工作流程,持续提升IT运营效率。

针对代码提交、代码检查、代码分支管理、编译打包、测试、部署等各个环节形成统一的规范,提高发布版本的质量。

针对项目进度、需求到任务、任务到应用系统、代码到版本、版本到缺陷等可以可视化跟踪和统计分析,从效率、进度和质量等多个维度展现,支持 IT 研发精细化管理。

难点:

实现新核心及70 外围配合改造系统的一键发布。

0 人点赞