DevOps产品中的企业项目群模式

Stella981
• 阅读 157

DevOps产品中的企业项目群模式

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

引言:

项目群,是项目管理中的一个重要概念,一般上规模的公司,都有可能多个项目组成一个项目群并行进行。

软件开发类型的项目,在DevOps产品中项目群管理模式是如何进行的呢?本文将阐述在DevOps产品中,项目群模式下如何进行多项目的过程管理、持续交付和改进。

目录:

一、缘起

二、项目群的基本介绍

三、DevOps产品中的项目群

四、展望

一、缘起

DevOps产品中的企业项目群模式

普元公司的DevOps产品中原来没有项目群的概念,曾经规划想做(因为对于有一定规模的大企业来说,多项目并行基本是个常态);但是在5.0,5.1,5.2版本中,一直没来的及做,可能是缺乏一个契机。

在今年的九江银行客户实施DevOps的过程中,客户有很强的的项目群需求,于是就在5.3版本中增加了对项目群的支持。

二、项目群的基本介绍

DevOps产品中的企业项目群模式

项目群,顾名思义,是一组项目的集合。根据百度百科里面的定义:项目群管理是指为了实现组织的战略目标和利益,而对一组项目进行的统一协调管理;项目群中的项目需要共享隔离资源等。

我们这里所说的项目是指软件开发类型的项目,在DevOps中,一个项目包括的主要内容是过程管理、持续集成/交付、持续改进。

  1. 过程管理主要是对需求、任务、缺陷、版本、里程碑相关的项目管理过程。

  2. 持续集成/交付是指CI/CD,对源代码持续进行构建、部署。

  3. 持续改进是和软件开发精益相关,对项目过程和CICD进行监控度量,持续优化软件生产。

DevOps产品中的企业项目群模式

项目群相关概念模型

项目群本身的概念有子项目、风险、里程碑、发布流水线、文档、报表等。

项目群通过关联子项目及其版本把里程碑、风险、工作项任务统一协调。

项目群通过发布流水线把项目的构建部署统一协调。

三、DevOps产品中的项目群

DevOps产品中的项目群实现了子项目、版本的关联管理,里程碑和风险的管理以及发布编排等。

DevOps产品中的企业项目群模式

  • 1、DevOps产品中的项目群-子项目关联

DevOps产品中的企业项目群模式

关联子项目,可以配置关联的子项目及其版本,并且可以设置标签(主项目或者配合项目)。

  • 2、DevOps产品中的项目群-里程碑管理

DevOps产品中的企业项目群模式

DevOps产品中的项目群实现了里程碑管理,以及显示所有项目的里程碑。

  • 3、DevOps产品中的项目群-风险管理

DevOps产品中的企业项目群模式

项目群风险管理,可以创建、编辑、删除风险。

  • 4、DevOps产品中的项目群-发布流水线

DevOps产品中的企业项目群模式

发布流水线,就是把项目中发布定义串联起来,一键发布。

  1. 在发布概览中,可以查看每个项目中的最新发布环境状态。

  2. 在发布编排中,可以编排项目的发布定义顺序。

DevOps产品中的项目群-发布流水线编排

DevOps产品中的企业项目群模式

发布流水线编排,可以关联子项目中的发布定义,并行或者串行发布。

在发布历史中,可以查看历史发布信息及其日志。

DevOps产品中的项目群-发布流水线发布历史

DevOps产品中的企业项目群模式

发布历史,发布流水行历史发布记录,可以查看发布起止时间、进度、状态、日志等。

DevOps产品中的项目群-发布流水线发布日志

DevOps产品中的企业项目群模式

发布流水线的发布日志,可以查看任何一个子项目的发布定义的日志,在树形菜单上可以选择查看某一个发布环境,或者构建部署任务的日志。

  • 5、DevOps产品中的项目群-成员管理

DevOps产品中的企业项目群模式

项目群成员管理,就是可以添加删除某人到项目群中,并且可以配置项目群角色。

  • 6、DevOps产品中的项目群-授权

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产品中有扩展字段可以配置任务单,但只是一个标记作用。

推荐阅读

DevOps组件高可用的思路

普元DevOps5.2版本新特性发布

DevOps驱动的人保微服务平台建设之路

DevOps产品中的企业项目群模式 关于作者:武玉厚,现任普元软件产品部资深开发工程师,毕业于大连民族大学,长期致力于IT技术研究、产品设计与开发等工作,擅长CI/CD、微服务、云计算等领域技术。负责EOS产品后端设计开发工作;负责DevOps产品后端设计开发工作。

DevOps产品中的企业项目群模式 关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!

本文分享自微信公众号 - EAWorld(eaworld)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
6个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
光头强的博客 光头强的博客
6个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
6个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
3天前
租房类微信小程序-基于微信云开发-小程序端集成了管理员后台-一键部署,快速发布
温馨提醒本项目使用MITLicense协议,仅适用于学习交流,并且不提供无偿的、不提供无偿的、不提供无偿的维护修改服务(但可提issue)。若直接将本项目用于商用,因本项目带来的所有后果由使用者自行承担。如需商用升级版,请联系我微信,微信二维码在本博客页面右上角在此奉劝某些人,请尊重作者的劳动成果,做人积点德吧!最近发现有人拿我的源码进行二次分
小森森 小森森
3天前
计划助手V1.0-微信小程序(QQ小程序)-源代码分享
疫情期间在家感觉好无聊啊,于是利用空闲时间做了一个用来记录和管理小目标时间的小程序,命名为《小沙漏》。QQ版本小程序同步上线,QQ小程序叫《时间小沙漏》,欢迎大家前来体验,后期也会添加其他的新功能哦【区别】:微信小程序的代码与QQ小程序的源码是不一样的。微信小程序的源码基于微信小程序云开发,需要在有网络的情况下使用,具有同步功能,所有记录在删除小
小森森 小森森
6个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
6个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
helloworld_28799839 helloworld_28799839
6个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue