课程简介
配置管理是持续集成及DevOps实施的重要技术支撑及实施基础。本课程全面细致地介绍配置管理的理论及最佳实践,包括版本控制、协同开发、跨产品版本管理、安全策略、构建管理、持续集成的完整过程。为多人快速协同开发、敏捷测试、DevOps、持续集成及持续发布建设坚实的配置管理基础支撑。
目标收益
学员可以系统性地掌握配置管理的相关知识、并合理进行分支管理、基线管理等实战。通过本次培训可以为快速协同开发环境及持续交付的项目要求提供有效支持。
将在课程中要逐一解决的问题:
1. 如何保证源码库中的代码的可用性?
2. 在什么情况下使用分支?
3. 基线的类型有几种?分别在什么情况下使用?
4. 公司的项目背景对代码安全比较敏感,多个团队工作在一个大项目里,但希望每个团队只能访问自己团队部分的源码,而技术上又彼此依赖,有没有解决方案?
5. 哪些类型的文件适合纳入版本库?哪些文件类型不适合?希望有个最佳实践的规范建议
6. 公司有的是项目型开发、有的是产品型开发,这两种类型的版本管理有何不同?
7. 多团队协同开发的情况下应该如何合理进行版本控制?既能保证版本清晰、又不会因为一些改动影响效率。
培训对象
• 配置管理员
• 开发人员
• 持续集成实施人员
• 开发经理、项目经理
课程大纲
第一章【软件配置管理基础理论】 这一模块先系统性地介绍软件配置管理以及版本控制的理论知识;让学员从原理上掌握版本管理的运行机制,为后续建设配置管理体系的实战打下坚实的基础。 |
(1)什么是软件配置管理 (2)案例分享:对比导入版本控制之前之后的实际变化 (3)源代码版本控制的原理 (4)版本管理工具的演进:集中式版本控制分布式版本控制 (5)一个比较难招到人才的岗位:配置管理员 |
第二章【协同开发】 多人共同编辑和修改同一段源代码是开发团队的常见现象。这是协同开发必须面对的现象,本模块介绍配置管理的协同开发原则及冲突处理的方法,目标效果是在多人协同开发模式下保障版本清晰、版本演进、及项目效率 |
(1)工作空间与版本库的定位与用途 (2)代码传递从星形模式到网状模式 (3)版本覆盖的预防 (4)版本冲突的处理方法和原则 (5)用任务单元来组织工作 |
第三章【版本分支的使用及规范】 分支是版本控制中的重要内容,它就像一把双刃剑,使用得当则配置管理灵活又强大、反之则增加了复杂性和混乱。本章内容分享分支的原理及重点讲解分支使用的最佳实践。 |
(1)深入理解何为版本分支 (2)库级分支的配置及使用 (3)文件级分支的版本规则及应用 (4)分支的分支 (5)分支的合并及冲突处理 (6)扩展讨论:开发库-受控库-产品库模式的优缺点 |
第四章【基线的使用及规范】 基线同样是配置管理中的重要内容,合理使用基线可以化繁为简,通过各阶段的基线规则,可以让复杂的源码项目管理变得清晰。更重要的是,基线可以极大提高版本管理的可靠性。 |
(1)基线的概念及作用 (2)开发进程中的基线设置 (3)阶段性成果的基线应用 (4)发布级的基线设置 (5)分支和基线的混合应用 (6)基线的合理使用,最佳实践分享 |
第五章【跨产品版本管理及构建管理】 越来越多的软件或应用以产品包的形式出现,例如微软的Office中有Word、Excel、PPT等;Adobe的CS中有Photoshop、Light Room、Illustrator等。这些软件即相对独立又有很多通用共用的代码块。这一章重点讲解跨产品版本管理的实践及方法 |
(1)构建管理的核心 (2)自动构建、每日构建、和构建分级自动化 (3)通过构建级别的定义及使用支撑跨产品技术集成 (4)产品内可使用的构建等级 (5)跨产品可使用的构建等级 (6)产品包级别的构建等级 |
第六章【配置管理的角色及安全设置】 源代码是团队的核心工作成果,所以安全是源代码管理中的核心关注点。本章用一个多团队协同开发的实例讲解配置管理的安全策略、最佳实践、需要哪些角色、以及每一个角色的权限设置。 |
(1)系统级管理员的设定及权限 (2)项目级管理员的设定及权限 (3)用户角色设定及权限 (4)全部访问控制及部分访问控制 (5)实例分享:多团队协同开发的安全策略 |
第七章【持续集成系统的设计及部署】 这一模块的目标是建设部署完备的持续集成系统:包括源码库、构建管理、任务调度系统、自动化系统、拓扑管理的综合应用。这将是持续集成及DevOps的核心支撑。 |
(1)构建管理的原理及与源码管理的关系 (2)构建等级定义最佳实践 (3)每日构建的原则与难点,及相应的解决方法 (4)持续集成总体建设思路 (5)自动化测试+持续集成的运行部署策略 (6)测试环境及测试数据的自动化部署 (7)如何获取及分析代码覆盖率检查 (8)多机器池自动化部署 (9)如何将大规模自动化+版本控制+持续集成部署为一个复杂完备的大型配置管理体系 |
第一章【软件配置管理基础理论】 这一模块先系统性地介绍软件配置管理以及版本控制的理论知识;让学员从原理上掌握版本管理的运行机制,为后续建设配置管理体系的实战打下坚实的基础。 (1)什么是软件配置管理 (2)案例分享:对比导入版本控制之前之后的实际变化 (3)源代码版本控制的原理 (4)版本管理工具的演进:集中式版本控制分布式版本控制 (5)一个比较难招到人才的岗位:配置管理员 |
第二章【协同开发】 多人共同编辑和修改同一段源代码是开发团队的常见现象。这是协同开发必须面对的现象,本模块介绍配置管理的协同开发原则及冲突处理的方法,目标效果是在多人协同开发模式下保障版本清晰、版本演进、及项目效率 (1)工作空间与版本库的定位与用途 (2)代码传递从星形模式到网状模式 (3)版本覆盖的预防 (4)版本冲突的处理方法和原则 (5)用任务单元来组织工作 |
第三章【版本分支的使用及规范】 分支是版本控制中的重要内容,它就像一把双刃剑,使用得当则配置管理灵活又强大、反之则增加了复杂性和混乱。本章内容分享分支的原理及重点讲解分支使用的最佳实践。 (1)深入理解何为版本分支 (2)库级分支的配置及使用 (3)文件级分支的版本规则及应用 (4)分支的分支 (5)分支的合并及冲突处理 (6)扩展讨论:开发库-受控库-产品库模式的优缺点 |
第四章【基线的使用及规范】 基线同样是配置管理中的重要内容,合理使用基线可以化繁为简,通过各阶段的基线规则,可以让复杂的源码项目管理变得清晰。更重要的是,基线可以极大提高版本管理的可靠性。 (1)基线的概念及作用 (2)开发进程中的基线设置 (3)阶段性成果的基线应用 (4)发布级的基线设置 (5)分支和基线的混合应用 (6)基线的合理使用,最佳实践分享 |
第五章【跨产品版本管理及构建管理】 越来越多的软件或应用以产品包的形式出现,例如微软的Office中有Word、Excel、PPT等;Adobe的CS中有Photoshop、Light Room、Illustrator等。这些软件即相对独立又有很多通用共用的代码块。这一章重点讲解跨产品版本管理的实践及方法 (1)构建管理的核心 (2)自动构建、每日构建、和构建分级自动化 (3)通过构建级别的定义及使用支撑跨产品技术集成 (4)产品内可使用的构建等级 (5)跨产品可使用的构建等级 (6)产品包级别的构建等级 |
第六章【配置管理的角色及安全设置】 源代码是团队的核心工作成果,所以安全是源代码管理中的核心关注点。本章用一个多团队协同开发的实例讲解配置管理的安全策略、最佳实践、需要哪些角色、以及每一个角色的权限设置。 (1)系统级管理员的设定及权限 (2)项目级管理员的设定及权限 (3)用户角色设定及权限 (4)全部访问控制及部分访问控制 (5)实例分享:多团队协同开发的安全策略 |
第七章【持续集成系统的设计及部署】 这一模块的目标是建设部署完备的持续集成系统:包括源码库、构建管理、任务调度系统、自动化系统、拓扑管理的综合应用。这将是持续集成及DevOps的核心支撑。 (1)构建管理的原理及与源码管理的关系 (2)构建等级定义最佳实践 (3)每日构建的原则与难点,及相应的解决方法 (4)持续集成总体建设思路 (5)自动化测试+持续集成的运行部署策略 (6)测试环境及测试数据的自动化部署 (7)如何获取及分析代码覆盖率检查 (8)多机器池自动化部署 (9)如何将大规模自动化+版本控制+持续集成部署为一个复杂完备的大型配置管理体系 |