首页>全部课程>持续集成
持续集成
持续集成
报名课程可获赠0.0元助学金,助学金说明 >>
直播面授
课程图标 课程代码 NX0184

为什么需要该课程

“在你的公司里,仅涉及一行代码的改动需要花多长时间才能部署上线?你的处理方式是否可重复且可靠呢?” 从“决定做某种修改”到“该修改结束正式上线”的这段时间称为周期时间(cycle time)。对任何项目而言,它都是一个极为重要的度量标准。 

   在很多组织中,周期时间的度量单位是周或者月,而且发布过程也是不可重复或不可靠的。部署常常是手工操作过程,甚至将软件部署到测试环境或试运行环境都需要一个团队来完成,更不用说部署到生产环境了。我们遇到过同样复杂的项目,它们曾经也是这种状态,但是经过深入的业务流程重组后,对于某一关键的修改,团队做到了小时级别甚至分钟级别的发布。之所以能做到,就是因为我们创建了一个完全自动化、可重复且可靠的过程,让变更顺利地经过构建、部署、测试和发布过程。在这里,自动化是关键,它让开发人员、测试人员和运营人员能够通过一键式操作完成软件创建和部署过程中的所有常见任务。

软件发布应该是一个快速且可重复的过程。现在,很多公司都会在一天内发布很多次。甚至对于那些代码非常复杂的代码库来说,这样做也是可能的。我们在本课程中就会告诉你如何做到这一点。本课程将讲述如何缩短从想法到商业价值实现的时间,并使之更安全,从而彻底改变软件交付方式。

最终目标是全自动化的DevOps,课程介绍了DevOps 的起源和概览,并通过一个贯穿全课程的例子,从架构开始,到代码的存储、构建、测试、部署、监控,直至流程的跟踪,推荐了许多可用的工具和可行的示范,面向愿意承担更大责任的开发人员和系统管理员,也很适合愿意更好地支持开发人员的运维人员。无须任何DevOps 知识即可快速上手!

本课程内容广泛,包括经常提到的配置管理、模块化,源代码控制、发布计划、代码审计、编译依赖和持续集成,以及持续交付、单元/自动化测试和部署流程的自动化。我们也会讲述自动化验收测试、依赖管理、数据库迁移,以及测试和生产环境的创建与管理等技术。 

    

课程内容安排

第1单元  DevOps 最佳实践

内容一:DevOps 核心思想与原理

1.我们将为您体系化的介绍DevOps的发展历史,并从价值,原则,方法,实践和工具这5个层次为您展示DevOps知识体系的全景,建立您对DevOps的整体化,体系化认知。同时,通过对基础设施即代码(Infra As Code)这一DevOps最重要实践的解析,借助案例介绍实施DevOps过程中的策略。

2.DevOps 概念与评估框架

3.DevOps 的必要性

4.如何发展DevOps文化-敏捷与快速反馈

5.DevOps的基础人、过程和技术——的重要性

6.Docker 容器概述

7.解虚拟机和容器之间的差别

8.Docker 的安装与配置

9.DevOps应用与现状

10.DevOps工具研究和开发


第2单元  持续交付

内容一:软件交付—持续交付

1.一些常见的发布反模式

2.反模式:手工部署软件

3.反模式:开发完成之后才向类生产环境部署

4.反模式:生产环境的手工配置管理

5.如何实现自动化交付目标

6.交付团队必须接收反馈并作出反应

7.候选发布版本

8.软件交付的原则

9.创建一个可重复且可靠的过程

10.将几乎所有事情自动化

11.把所有的东西都纳入版本控制

12.提前并频繁地做让你感到痛苦的事

13.“DONE”意味着“已发布”

14.交付过程是每个成员的责任

15.持续改进

16.通过国际研发中心电信计费系统演示持续交付


第3单元  软件持续集成

内容一:软件集成

1.持续集成的定义

2.持续集成的特点

3.持续集成原则

4.持续集成的核心价值

5.持续集成实践步骤

6.如何选取最佳解决方案

7.持续集成实践计划

8.持续集成实践风险

内容二:软件集成实践---以JenKins工具为案例

1.持续集成工具介绍

2.持续集成工具Jenkins

3.为什么选用Jenkins

4.Jenkins 简介

5.搭建Jenkins 环境

6.Jenkins 的系统配置

7.Jenkins+版本控制

8.Jenkins+JUnit

9.Jenkins+Selenium


第4单元 版本/ 配置管理-一切皆代码

内容一:版本控制 

1.项目仓库

2.我们需要存储什么

3.工作拷贝和操作文件 

4.项目,目录以及文件 

5.版本从何而来

6.标签 

7.分支 

8.合并 

9.加锁策略的选择

10.配置管理(CM)

11.CVS/Subversion版本管理工具

12.Git版本管理工具

内容二:配置管理 

1.使用版本控制

2.对所有内容进行版本控制

3.频繁提交代码到主干  

4.使用意义明显的提交注释

5.软件配置管理

6.配置与灵活性

7.配置的分类

8.应用程序的配置管理 

9.跨应用的配置管理

10.管理配置信息的原则  

11.运行环境管理

12.环境管理的工具  

13.变更过程管理

14.通过大量项目案例分析如果大规模版本管理


第5单元  模块化和依赖管理

内容一:模块化/组件化/包基本原则

1.在向组件中分配类时应该依据什么原则?

2.应该使用什么设计原则来管理组件之间的关系?

3.组件的设计应该先于类呢(自顶向下),还是类的设计应该先于组件(自底向上)?

4.组件实体以什么方式存在呢?

5.组件创建好后,我们应当将它们用于何种目的?

6.包的设计原则

7.REP 重用发布等价原则 

8.CRP 共同重用原则

9.CCP 共同封闭原则

10.ADP 无环依赖原则

11.SDP 稳定依赖原则

12.SAP 稳定抽象原则

10.项目案例分析

第6单元  持续检测代码质量-

内容一:代码质量持续检测 

1.代码质量度量

2.代码质量审查和评审

3.代码度量指标

4.代码质量度量的工具

5.持续评估代码质量

内容二:软件代码可维护性4个分类标准

1.代码内部质量的核心标准

2.可分析性(ANALYZABILITY:找到错误在代码中的位置或者软件中必须修改的部分容易程度

3.可修改性(CHANGEABILITY):即要完成一个修改需要的工作量

4.稳定性(STABILITY):即修改之后出问题的程度

5.可测试性(TESTABILITY):即能够验证修改的结果

内容三:软件代码质量指标

1.ANALYZABILITY = VG + STMT + AVGS + COMF 

2.CHANGEABILITY = PARA + LVAR + VOCF + GOTO 

3.STABILITY = NBCALLING + RETU + DRCT_CALLS + PARA

4.TESTABILITY = DRCT_CALLS + LEVL + PATH + PARA

内容四:自动化预防-AEP 

1.Automated Error Prevention(简称AEP),是指通过整个软件开发周期中自动地预防错误来提高产品质量

2.自动化错误预防五大法则

3.应用行业最佳实践来防止普遍错误并建立全方位的错误预防基础---案例分析

4.按需要修改实践来预防特殊的错误

5.确保每个小组正确地,始终如一地贯彻执行AEP

6.循环渐进地采用每一个实践

7.利用统计来稳定每一个过程,让它发挥价值

8.通过案例进行分析,某研发中心代码自动化预防机制建立

内容五:BugDetective 

1.BugDetective概述

2.BugDetective规则

3.Parasoft公司旗下产品C++Test BugDetective分析技术,该技术使用了几种分析技巧,包括模拟应用程序执行路径,以识别可能触发运行时缺陷的路径。检测到的缺陷包括,使用未初始化的内存、引用空指针、除数为零、内存和资源泄漏。

9.通过案例进行分析,某研发中心代码自动化预防机制建立


第7单元  自动化测试

内容一:理解单元测试 

1.什么是单元测试?

2.为什么要写单元测试,为什么不写单元测试

3.理解单元测试--第一个单元测试案例

4.好的测试是什么样子的,为什么要写"好"的单元测试

5.单元测试的维护成本

6.单元测试与自动化测试

7.分析真实项目,如何做单元测试

8.通过案例分析,了解基本的单元测试

内容二:自动化验收测试 

1.自动化验收测试

2.为什么验收测试是至关重要的  

3.如何创建可维护的验收测试套件  

4.分析人员和测试人员的角色

5.将验收条件变成可执行的规格说明书

6.窗口驱动器模式:让测试与GUI解耦

7.实现验收测试  

8.验收测试中的状态

9.验收测试阶段

10.通过案例进行分析,自动化测试最佳实践


第8单元  持续数据库集成

内容一:持续数据机集成和更新

1.持续数据库集成

2.自动化数据监测和更新

3.使用本地数据库验证

4.利用版本控制数据库更新

5.自动化根据开发工程师培训修改数据库

6.让DBA和开发一起


第9单元  持续部署

内容一:持续部署环境准备

1.随时随地发布可工作的软件

2.为库中的资产打上标签

3.得到干净的环境

4.为每一个构建版打上标签

5.执行所有的测试

6.创建构建反馈报告

7.回滚构建的过程能力

内容二:持续部署

1.持续部署与发布

2.创建发布策略 

3.应用程序的部署和晋级

4.对发布过程进行建模并让构建晋级

5.部署回滚和零停机发布

6.蓝绿部署和金丝雀发布

7.紧急修复和持续部署

8.记录部署活动

9.快速失败

10.不要直接对生产环境进行修改


第10单元  持续反馈

内容一:持续反馈

1.用问题跟踪器做什么? 

2.工作流和问题的一些例子

3.我们需要从问题跟踪器里得到什么?

4.问题跟踪器激增所带来的问题 

5.所有的跟踪器

6.Bugzilla 

7.Trac 

8.所有正确的东西

9.使用持续反馈机制

10.电子邮件/文本消息

内容二:持续交付信息反馈----看板和Dashboard

1.如何建立Dashboard来快速定位整个系统的质量弱点

2.大规模自动化测试的Dashboard实际演示与详解

3.通过率、各种Top10及缺陷与用例的关联