|
|
|
持续集成原理和实施
|
|
|
|
主讲嘉宾:张老师,阿里巴巴研发协同技术专家。 |
时间地点:北京、上海、深圳根据报名开班 |
培训费用:5800元/人
(学生3折),详见 公开课学习手册
|
企业内训:可以根据企业需求,定制内训,详见
内训学习手册 |
|
|
通过原理和实验的互相结合的方式, 让学员不光对理论知识深入理解, 也可以了解实施过程中遇到的各种问题。
从零开始, 一步一步已解决问题为导向, 最终在课程结束时,构建出一套完备的持续集成流水线, 模拟实施中遇到的各种问题,
逐一解决。
提供公司成功和失败的持续集成案例, 分析案例中可以借鉴的地方, 和需要避免的问题 |
|
培训目标:
|
- 让学员可以理解持续集成的理念
- 让学员可以搭建持续集成的流水线, 以及流水线所需要的基础设施 (包管理系统,
部署系统等)
- 让学员了解如何在一个公司中实施持续集成, 以及会遇到的问题
- 让学员了解如何衡量持续集成的好坏和效果
|
|
培训对象:程序员, 测试人员, 运维,
架构师, 以及对持续集成感兴趣的人 学员基础:熟悉简单的Linux命令 |
授课方式: 定制课程 + 案例讲解
+ 小组讨论,60%案例讲解,40%实践演练 |
培训内容:
2天 |
持续集成概念
|
1、对比传统开发模型和持续集成
传统模型的问题 如何用持续集成破解这些问题
2、持续集成的优良实践 具体解释一些重要事件,解释为什么这么做 |
|
持续集成流水线设计以及持续集成server的搭建
|
1,流水线的设计
有哪些必要的流水线组件
如何针对一个系统连接这些组件 (trigger关系, trigger方式,
传递结果) 2,持续集成工具的选择
Jenkins, Go, Bamboo, Travis, home-made,
etc. 3,通知机制
合理选择通知人员
email, IM通知
大屏通知
Nabaztag兔子通知 |
|
分支策略和代码管理工具
|
1,分支策略
SVN和Git的分支策略 2,代码管理工具
如何和持续集成工具集成 3,如何提交代码
在绿灯时提交代码
尽可能频繁提交
本地做好验证再提交
Bug tracking System集成 |
|
代码级别质量控制
|
1,单元测试
单元测试的重要性
单元测试要快
单元测试成功率必须100% 2,覆盖率
什么事覆盖率
覆盖率要做到多少
哪类代码不需要覆盖率 3,静态代码扫描
原理和静态代码扫描的工具介绍 4,圈复杂度
圈复杂度的计算方法 |
|
打包以及依赖管理
- 构建物版本以及构建物的状态
- 构建物存储系统
- 构建物依赖的管理
|
1,包的版本以及包状态
版本需要有意义 (revision, 时间戳等)
给经过不同测试的包打状态
只做一次打包动作 2, 构建物存储系统
如何搭建一套构建物存储系统 3, 构建物依赖管理
构建工具, 例如mavem
操作系统本身
手动管理
Docker Image管理 |
|
部署管理
|
1,
开发环境
开发环境和测试环境的区别
构建工具Puppet 2, 测试环境和线上环境
部署 约等于 部署包+配置
不同的环境部署方式要一致
Chef介绍 |
|
持续集成度量
- 发现被测代码的问题
- 发现持续集成本身的问题
- 衡量持续集成的成效
|
1,
发现被测代码的问题
任务成功率, 代码覆盖率, 静态代码扫描, 圈复杂度, 运行时间, 测试用例成功率
2, 发现持续集成本身的问题
任务时长, 任务跳跃, 系统监控 3, 衡量持续集成的成效
开始阶段会降低效率
代码质量提升 (记录在bug系统中的bug数量)
研发周期的缩短 (对比使用前后)
发布周期的确定性 (问题可见, 项目更加可预期)
|
|
Docker
和 持续集成
- Docker 简介
- Docker在持续集成中的应用
|
1,
Docker介绍
Docker原理和简单命令 2, Docker在持续集成中的应用
Docker承担持续集成server的角色
使用Docker Image持续集成 |
|
持续集成实施
- 程序员和测试本身的提升
- 代码遗留问题的解决
- 基础设施改进
- 小步前进, 阶段性成效
- 明星项目分享, 说服老板
|
1,
程序员和测试本身的提升
工作习惯会被改变
需要学习更多知识 (单元测试, 编译工具, 持续集成等) 2,
代码遗留问题
大范围重构
紧箍咒法则 3, 基础设施改进
代码仓库, 包仓库, 部署工具等 4, 小步前进,
阶段性成效 5, 明星项目分享,
说服老板 |
|
成功和失败案例
|
|
|
|
|
其他人还看了课程 |
|
|
|
|