转载本文需注明出处:微信公众号EAWorld,违者必究。
引言:
项目群,是项目管理中的一个重要概念,一般上规模的公司,都有可能多个项目组成一个项目群并行进行。
软件开发类型的项目,在DevOps产品中项目群管理模式是如何进行的呢?本文将阐述在DevOps产品中,项目群模式下如何进行多项目的过程管理、持续交付和改进。
目录:
一、缘起
二、项目群的基本介绍
三、DevOps产品中的项目群
四、展望
一、缘起
普元公司的DevOps产品中原来没有项目群的概念,曾经规划想做(因为对于有一定规模的大企业来说,多项目并行基本是个常态);但是在5.0,5.1,5.2版本中,一直没来的及做,可能是缺乏一个契机。
在今年的九江银行客户实施DevOps的过程中,客户有很强的的项目群需求,于是就在5.3版本中增加了对项目群的支持。
二、项目群的基本介绍
项目群,顾名思义,是一组项目的集合。根据百度百科里面的定义:项目群管理是指为了实现组织的战略目标和利益,而对一组项目进行的统一协调管理;项目群中的项目需要共享隔离资源等。
我们这里所说的项目是指软件开发类型的项目,在DevOps中,一个项目包括的主要内容是过程管理、持续集成/交付、持续改进。
- 过程管理主要是对需求、任务、缺陷、版本、里程碑相关的项目管理过程。
- 持续集成/交付是指CI/CD,对源代码持续进行构建、部署。
- 持续改进是和软件开发精益相关,对项目过程和CICD进行监控度量,持续优化软件生产。
项目群相关概念模型
项目群本身的概念有子项目、风险、里程碑、发布流水线、文档、报表等。
项目群通过关联子项目及其版本把里程碑、风险、工作项任务统一协调。
项目群通过发布流水线把项目的构建部署统一协调。
三、DevOps产品中的项目群
DevOps产品中的项目群实现了子项目、版本的关联管理,里程碑和风险的管理以及发布编排等。
- 1、DevOps产品中的项目群-子项目关联
关联子项目,可以配置关联的子项目及其版本,并且可以设置标签(主项目或者配合项目)。
- 2、DevOps产品中的项目群-里程碑管理
DevOps产品中的项目群实现了里程碑管理,以及显示所有项目的里程碑。
- 3、DevOps产品中的项目群-风险管理
项目群风险管理,可以创建、编辑、删除风险。
- 4、DevOps产品中的项目群-发布流水线
发布流水线,就是把项目中发布定义串联起来,一键发布。
- 在发布概览中,可以查看每个项目中的最新发布环境状态。
- 在发布编排中,可以编排项目的发布定义顺序。
DevOps产品中的项目群-发布流水线编排
发布流水线编排,可以关联子项目中的发布定义,并行或者串行发布。
在发布历史中,可以查看历史发布信息及其日志。
DevOps产品中的项目群-发布流水线发布历史
发布历史,发布流水行历史发布记录,可以查看发布起止时间、进度、状态、日志等。
DevOps产品中的项目群-发布流水线发布日志
发布流水线的发布日志,可以查看任何一个子项目的发布定义的日志,在树形菜单上可以选择查看某一个发布环境,或者构建部署任务的日志。
- 5、DevOps产品中的项目群-成员管理
项目群成员管理,就是可以添加删除某人到项目群中,并且可以配置项目群角色。
- 6、DevOps产品中的项目群-授权
项目群授权,是指可以对项目群的角色进行管理,并且可以配置每个角色的菜单、按钮、环境权限。
四、展望
DevOps5.3对项目群的关键能力做了支持,对于软件开发类型的项目有了大规模、全生命周期的支撑,后续版本还要在文档管理、报表等方面细化增强。
精选提问:
问1:在项目群中,对应jiRA ISSUE类型是啥?或者在咱们DevOps中的项目群对应JIRA是什么ISSUE类型?
答:项目群对应的jira还是一个项目,和issue类型无关。
问2:ci这一块,底层也是用jenkins做的吗?也是用pipeline script做的吗?那你们的job是devops自动创建,还是预先创建好的?
答:是用jenkins做的;是pipeline;自动创建,自动销毁。
问3:那程序日志获取,是读的Jenkins console 还是程序的日志?
答:jenkins job build console。不是程序日志,是构建发布日志,应用的日志需要专门处理,不是一回事。
问4:项目群在JIRA中的项目与子项目是弱关联的关系吗?是通过EPIC 实现跨项目的关联吗?
答:是弱关联;devops产品中目前没有epic的概念。DevOps产品中,目前没有跨项目的任务。多项目目前是通过里程碑进行过程协调的。没有对jira中的项目做关联要求,关联关系是DevOps产品自己维护的。九江银行有任务单的概念,DevOps产品中有扩展字段可以配置任务单,但只是一个标记作用。