项目管理之自动化构建部署(CICD)
1. 研发管理概述
【目标】
理解敏捷项目管理
【路径】
1:了解研发管理概念
2:了解敏捷开发
3:了解DevOps
【讲解】
1.1. 研发管理概念
研发管理就是在研发体系结构设计的基础之上,借助信息平台对研发进行的团队建设、流程设计、绩
效管理、风险管理、成本管理、项目管理和知识管理等活动。
管理活动的目的是实现组织目标。研发团队通过科学的研发管理方法可以保证软件开发及交付的稳定
性,更高效的实现团队目标。
1.2. 研发管理能帮助企业做到什么
- 准确把控项目的全局和细节
- 使软件发布变成一件轻松、简单的事情
- 不断改进优化软件发布流程
- 提高软件发布质量
- 更快交付产品,快速将研发团队的工作转变为商业价值
1.3. 敏捷开发概述
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。其实就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
1.3.1. 经典敏捷方法 Scrum
Scrum 是用于管理产品开发的单个团队过程框架,采用迭代(Sprint)方法来交付工作产品。Scrum
是运行在 1 个月或更少的时间段上的,其中包含持续时间一致的多个迭代,在这些迭代中会产生潜在可
发布的产品增量。Scrum 的重点是最大化开发团队的能力,从而对项目和客户需求中的变更快速作出响
应。
角色
Scrum 团队包含产品负责人(Product Owner)、Scrum 主管(Scrum Master)和开发团队
(Scrum Team)。产品负责人负责实现产品价值的最大化Scrum 主管负责确保 Scrum 过程获得相应
支持且 Scrum团队遵从时间和规则,并指导团队消除障碍。开发团队是一个跨职能自组织团队,其开发
成员拥有所需的一切资源,可在不依赖团队外部其他资源的情况下交付工作产品。
流程
一个 Scrum 的标准流程为:收集 Backlog(需求)- 挑选Backlog(产品待办列表) 到 Sprint(迭代)
中 - 执行Sprint - 交付、验收Sprint 成果 - 总结 Sprint
- 收集 Backlog
执行者:产品经理
任务:收集 Backlog、制定优先级
产品经理根据市场需求、产品定位等汇总出本次项目的所有
待办事项,并将每个待办事项制定相应的优先级。 - 选取 Backlog 中的事项加入到 Sprint 中
执行者:开发团队
参与者:Scrum Master
任务:按照优先级挑选待办事项到下一次的迭代中
需要注意的是开发团队在挑选的时候根据开发的人力资源来
选择挑选的数量,但是必须按照优先级从高到底的顺序来挑
选。 - 开始执行 Sprint
执行者:开发团队
参与者:Scrum Master
任务:完成本次迭代的所有待办事项
一个 Sprint 即是一次迭代,往往设置为一周到两周。 - 交付、验收 Sprint
执行者:开发团队
参与者:产品经理、Scrum Master
任务:交付最终产品给产品经理验收 - 总结 Sprint
执行者:Scrum Master
参与者:开发团队、产品经理
任务:总结本次 Sprint 什么做得好、什么做的不好、后续应该怎么做
Scrum 提供了一套基于团队的敏捷方法,引入「Backlog」
的概念来衡量团队的工作量,可以根据优先级交付工作任
务,简单易用,有效帮助敏捷落地。
1.4. DevOps
1.4.1.概念
在最开始的编程工作中,开发人员就是运维人员。随着软件开发复杂度不断增加,技术团队角色逐渐
增多(如开发工程师、运维工程师、测试工程师等),这种情况就导致组织里充斥着「部门墙」,大家
都自行其是,形成了一种天然壁垒。
DevOps 是「Development」和「Operations」的合成词,表示在软件产品交付的过程中,「研发
团队」和「运维团队」进行高效沟通和协作,旨在更快、更可靠地发布高质量软件。通过自动化「软件
交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
DevOps 与敏捷研发
敏捷是 DevOps 的一部分。早期的 DevOps 主要注重研发、运维等技术团队各角色高效协作,目
前,DevOps 包含敏捷研发的内容。
1.4.2.软件发布的反模式
- 手工部署软件
1)需要花费大量的时间编写一份非常详尽的文档,该文档描述了执行步骤及每个步骤中易出错的地
方;
2)在发布时,常常要在发布的过程中去修正问题;
3)如果是集群环境部署,经常发现在集群中各个服务器环境的配置都不相同;
发布结果不可预测,经常会遇到不可预见的问题,从而不得不进行版本回滚。 - 开发完成之后才向生产环境部署
1)如果软件是全新开发的,那么第一次将它部署到试运行环境时,可能会非常棘手;
2)开发环境与生产环境差异性越大,开发过程中所做的那些假设与现实之间的差距就越大。 - 生产环境的手工配置管理
1)多次部署到试运行环境都非常成功,但当部署到生产环境时就失败;
运维团队需要较长时间为每次发布准备环境;
2)系统无法回滚到之前部署的某个配置,这些配置包括操作系统、应用服务器、关系型数据库
管理系统、Web服务器或其他基础设施设置;
3)不知道什么时候起,集群中的某些服务器所用的操作系统、第三方基础设施、依赖库的版本
或补丁级别就不同了。
1.4.3.部署流水线
在软件发布的过程中,持续集成与持续交付是 DevOps 的核心流程,而部署流水线是持续集成与持续
交付的关键。部署流水线是指一个软件产品从构建、部署、测试到发布整个过程的自动化实现。
部署流水线的目标有三个:
*首先,它让软件构建、部署、测试和发布过程对所有人可见,促进了合作。
*其次,它改善了反馈,以便在整个过程中,我们能够更早地发现并解决问题。
*最后,它使团队能够通过一个完全自动化的过程在任意环境上部署和发布软件的任意版本。
1.4.4.收益
DevOps 的收益是创建了一个发布流程,这个流程是可重复、可靠的且可预见的,从而大大缩短了发
布周期,使新增功能和缺陷修复能更早被用户使用。
一个新功能只有被用户使用了,才算实现了它的商业价值。DevOps 能够帮助企业尽早实现增量部分
的商业价值,提高企业市场竞争力。
【小结】
1:了解研发管理概念
2:了解敏捷开发
3:了解DevOps
2. 研发管理协作工具ONES
【目标】
学会使用ONES
【路径】
1:了解ONES
2:了解教职人员操作
3:掌握项目组长及项目成员操作
【讲解】
2.1. ONES简介
ONES是一款项目研发管理协作工具,内部 包括 ONES Project(项目进度管理)、ONESPlan(项目
集管理)、ONES Wiki(知识库管理)、ONES TestCase(测试用例与测试计划管理)、
ONESPipelline(持续集成与交付管理)等专业研发管理协作工具,使技术团队各角色成员紧密协作,
提升个人创造力与团队效率,从而提升产品交付质量,帮助企业更好更快发布产品。
2.2. 教职人员操作
2.2.1. 邀请项目组长并分配权限
在工作中,会以整个项目部作为一个大团队。这个大团队的Leader就是每个部门的项目经理(或管理)。同时部门会被
分为若干个项目组。由项目经理邀请每组的某一位小组成员作为项目组长,项目组长后期可以邀请自己项目
团队成员、创建迭代、发布需求等。
在主界面中,点击右上角邀请成员符号。
接着就可以进入到邀请新成员界面。在该页面中,输入被邀请成员的邮箱,同时授权产品位置,取消
勾选Plan。如需一次邀请多名成员,当输入完邮箱地址后,按回车即可进行后续输入。
当点击发送邀请后,对应邮箱就会收到邀请邮件。
对应邮箱接收到邀请邮件后,点击加入团队即可。
同时就会进入到登录页面,如果是第一次被邀请的话,需要设置自己的用户名和密码信息。
接着进入团队配置中心,给用户分配项目组长权限。
接着点击团队权限,给被操作用户分配邀请团队成员【项目组长只需要拥有该权限即可】
2.2.2. 创建项目
项目经理会针对每个分组在ONES当中建立一个对应的项目。操作步骤:ONES Project–>新建项目
项目名称:即小组名称。可以是自己起的公司名称,或者项目+分组名称都可以。只要便于区分就行。
项目模板:选择默认的敏捷项目管理。
完成编辑后,点击下一步,选择项目成员,将该项目组长选中即可。
然后点击完成,弹出提示框确认即可,至此一个项目就创建完成了。
2.2.3. 指定组长为项目负责人
创建完项目后,项目的负责人默认仍然为项目创建人,也就是当前项目经理。需要转移项目负责人为组长。
操作步骤:ONES Project -> 要操作的项目 -> 项目负责人。并选择被分配的项目组长。
当分配完之后,点击项目名称,即可进入到项目概览页面,此时可以看到,项目负责人已经变为指定的项目组长。且该组长拥有这个项目当中的所有权限。
2.3. 项目组长及项目成员操作
2.3.1. 操作流程说明
2.3.2. 组建开发团队
首先项目组长进入项目后,需要对项目开发团队进行组建,邀请组内成员进入到项目中。开发团队组建分为两种情况:
-
成员不在系统中
当成员不在系统中时,需要通过邀请的方式将该成员添加到系统中,方式与上述邀请项目组长相同。
-
成员已在系统中
当成员已在系统中,可通过项目中的 【成员】 中,将该成员添加到当前项目中。
2.3.3. 创建迭代
对于敏捷项目管理,迭代是一个很重要的概念,本着小步快跑的思想,一般来说,基本是每周一个迭代。然后在迭代中去添加需求和任务。
1)创建迭代
首先需要在当前项目中创建一个迭代。
操作步骤:ONESProject -> 当前项目 ->迭代 ->新建迭代
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YubqJl1O-1648780945723)(img\57.png)]
接着需要在弹出页面中,输入迭代名称、选择迭代负责人、迭代开始日期和结束日期。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-imVZrhfG-1648780945724)(img\58.png)]
当点击 确定后,即可进入到迭代详情页面中。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h19ziIGb-1648780945724)(img\59.png)]
2.3.4. 导入项目需求
项目组长在创建完迭代后,需要将当前项目要开发的需求列表导入到 【需求】 中。需求列表由教师提供给项目组长。
1)需求文档模版下载
需求文档是由产品经理提供,但也需知晓其文档模版是从何处下载的。

本文详细介绍了项目管理的流程,包括使用ONES进行项目管理、敏捷开发的Scrum框架、DevOps中的自动化构建与部署,以及GitLab的安装与使用。通过ONES创建项目、分配任务,使用GitLab进行代码托管,并在Idea中集成GitLab进行代码提交和冲突解决。进一步讲解了Jenkins的安装、配置、任务构建与自动化部署,实现从代码提交到自动部署的完整流程。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



