logo资料库

CI/CD持续集成/持续部署.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
CI/CD持续集成/持续部署
CI/CD 持续集成/持续部署 敏捷软件开发(英语:Agile software development),又称敏捷开 发,是一种从 1990 年代开始逐渐引起广泛关注的一些新型软件开发 方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名 称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团 队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有 效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地 适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人 的作用。 1,CI/CD 持续集成/持续部署 持续集成(Continuous integration)是一种软件开发实践,即团 队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也 就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包 括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 持续部署(continuous deployment)是通过自动化的构建、 测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发 团队工程化的程度,毕竟快速运转的互联网公司人力成本会高于机器, 投资机器优化开发流程化相对也提高了人的效率,让 engineering productivity 最大化。
持续交付(英语:Continuous delivery,缩写为 CD),是一种软 件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件 可以稳定、持续的保持在随时可以释出的状况。它的目标在于让软件的 建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的 成本与时间,减少风险。 与 DevOps 的关系 持续交付与 DevOps 的含义很相似,所以经常被混淆。但是它们是不同 的两个概念。DevOps 的范围更广,它以文化变迁为中心,特别是软件 交付过程所涉及的多个团队之间的合作(开发、运维、QA、管理部门 等),并且将软件交付的过程自动化。另壹方面,持续交付是壹种自动 化交付的手段,关注点在于将不同的过程集中起来,并且更快、更频繁 地执行这些过程。因此,DevOps 可以是持续交付的壹个产物,持续交 付直接汇入 DevOps; 与持续部署的关系 有时候,持续交付也与持续部署混淆。持续部署意味着所有的变更都会 被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到 生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部 署,必须先实施持续交付。 1.1、enkins 是什么? Jenkins 是一个可扩展的持续集成引擎。
主要用用途: 持续、自动的构建/测试软件项目。 监控一些定时执行的任务。、 特点: 易于安装,只要把 jenkins.war 部署到 servlet 容器 易于配置-所有配置都通过其提供的 web 界面实现。 集 成 RSS/E-mail 通 过 RSS 发 布 构 建 结 果 或 当 构 件 完 成 是 通 过 e-mail 通知。 生成 JUnit/TestNG 测试报告。 分布式构建支持 Jenkins 能够让多台计算机一起构建/测试。 文件识别:Jenkins 能够跟踪那次构建生成哪些 jar,那次构建使用哪 个版本的 jar 插入支持:支持扩展插件,可以开发适合自己团队的使用的工具。 Jenkins 的目标是监控软件的开发流程,快速显示问题。所以能保证开 发人员省事又省力提高开发效率。 2、项目版本迭代控制:、 现有的版本控制工具,如 Github、GitLab、SVN、CVS 等主流工具..
构 建 及 测 试: 通 过 Jenkins 实 现 自 动 构 建 和 测 试, 还 有 商 业 软 件 BAMBOO 来持续集成。这个收费的。免费就用 Jenkins.. 交付:以 Docker 镜像形式进行交付,提交至镜像仓库; 2.1 SVN 服务器: Subversion 是一个版本控制系统,相对于的 RCS、CVS,采用了分支 管理系统,它的设计目标就是取代 CVS。互联网上免费的版本控制服 务多基于 Subversion。 Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电 脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管 理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行 也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的 工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果 出现不正确的更改,只要撤销那一次更改操作即可。某些版本控制系统 本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专 门用来管理源代码树,并且具备许多与软件开发有关的特性——比如 对编程语言的支持或者提供程序构建工具。不过 Subversion 并不是这 样的系统,它是一个通用系统,可以管理任何类型的文件集。 2.2 CVS 服务器: CVS(Concurrent Versions System)版本控制系统是一种 GNU 软 件包,主要用于在多人开发环境下源码的维护。Concurrent 有并发的、
协作的、一致的等含义。实际上 CVS 可以维护任意文档的开发和使用, 例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS 维护的文 件 类 型 可 以 是 文 本 类 型 也 可 以 是 二 进 制 类 型 。 CVS 用 Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同 时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来, 并使其并行操作。CVS 基于客户端/服务器的行为使其可容纳多个用户。 这一特性使得 CVS 成为位于不同地点的人同时处理数据文件(特别是 程序的源代码)时的首选。 所有重要的免费软件项目都使用 CVS 作为其程序员之间的中心点,以 便能够综合各程序员的改进和更改。这些项目包括 GNOME、KDE、 THE GIMP 和 Wine 等。 2.3 GIt/github: GIT (分布式版本控制系统) Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任 何或小或大的项目。Git 的读音为/gɪt/。 Git 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小 到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开 始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之 前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源
码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的 工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。 尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们 已 经 发 现 在 很 多 其 他 自 由 软 件 项 目 中 也 使 用 了 Git 。 例 如 很 多 Freedesktop 的项目迁移到了 Git 上。 gitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 gitHub。 gitHub 于 2008 年 4 月 10 日正式上线,除了 git 代码仓库托管及基 本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文 件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前, 其注册用户已经超过 350 万,托管版本数量也是非常之多,其中不乏 知名开源项目 Ruby on Rails、jQuery、python 等。
分享到:
收藏