2.1.3 Git 概念与使用 4
2.2 持续集成、持续交付 6
2.2.1 持续集成 6
2.2.2 持续交付 8
2.3 敏捷开发 10
2.3.1 迭代式开发 10
2.3.2 分支策略 11
2.4 DOCKER容器 13
2.4.1 核心概念 13
2.4.2 国内现状 15
2.4.3 实现方法 16
2.4.4 与持续交付的整合 18
3 系统设计 19
3.1 项目设计 19
3.2 交付流程 19
4 系统实施 20
4.1 环境搭建 20
4.2 流程配置 22
4.3 演示过程 27
5 结论 29
致谢 30
参考文献 31
附录 32
1 绪论
软件工程中有一配置管理的概念,主要负责开发和运维之间的持续集成与持续交付部分。对整个项目工程需要做一定了解,并且能够发现软件开发过程中的问题,尽早进行修正,降低项目开发风险,并且一定程序上组织协调好各个技术部分的关系,确保各个环节的进行。本课题主要通过容器技术手段,来实现在敏捷开发中的交付环节,提升软件发布的效率及可靠性,并且侧重于容器技术。
1.1 本课题研究的背景
在普遍的软件开发过程当中,一般针对不同类别的技术范畴划分不同的技术部门,将软件开发生命周期中的各项环节分割开来,实现高效率。常见的必要组织架构包括开发、测试、运维与产品。一般的过程是由产品收集需求,开发编写代码,提供给测试人员进行测试,测试通过后由运维人员将代码发布到生产环境,交付给客户使用。这种方式非常普遍,在整个生命周期的运转方式又分为多种,较早期使用的是瀑布流式开发,这种开发方式比较传统,效率一般,因此很多技术团队转型为敏捷开发,敏捷开发引入了一系列概念,如用户故事、迭代等。目前大部分研发团队采用的是老式的瀑布流式开发,这种方式周期交付给客户的速度过慢,不适合满足客户的快速需求,因此有必要进行转型,适应现代互联网模式的用户需求。
因为技术部门的割裂,在部门之间往往存在壁垒,尤其是在开发与运维两者之间,经常出现二者因不协调而导致的研发进度减缓。根本原因在于二者并不了解对方的技术与规范,仅仅考虑自身环节的部分,致使向下一环节过渡时,造成技术上的断档。针对此类情况,需要运维开发(DevOps)的思想概念。DevOps是一套在敏捷过程中的方法与系统的集合,可以协调软件开发过程各个环节关系,打破组织架构间的壁垒,构成一套可靠的持续集成、持续交付体系。在国内外,DevOps都是一种刚出现的思想概念,正在不断推广和研究中。