CI / CD 流程概述


流程概述

FIT2CLOUD 有一套高效、稳定的持续集成和部署体系,包括版本控制服务,Jenkins,Artifacts仓库和 FIT2CLOUD 等组件,通过下图可以从整体上了解 FIT2CLOUD 持续集成和部署的体系和流程。

FIT2CLOUD 持续集成和部署整体上由5步组成:

  1. 提交代码到版本控制服务器。这里我们以 Git 为例,实际上我们同样支持 CVS,SVN 等。

  2. 持续集成服务器构建代码。我们推荐用户使用 Jenkins 作为持续集成服务器,Jenkins向版本控制服务器获取到代码后完成构建工作。

  3. 上传构建结果到 Artifacts 仓库。目前 FIT2CLOUD 支持 Nexus(一个开源Maven Repo) 和阿里云 OSS 作为 Artifacts 仓库,你可以使用 FIT2CLOUD 发布的 Jenkins 插件,在构建后自动把构建結果上传到 OSS 中,或者使用 Jenkins 提供的 Maven 插件上传到 Nexus 仓库。整个上传过程完全自动化,并与 Jenkins 的构建过程整合在一起,非常快捷,高效。

  4. 触发 FIT2CLOUD 代码部署。在构建结果上传到 Artifacts 仓库后,FIT2CLOUD 会自动注册应用版本。应用版本注册后,用户就可以通过 FIT2CLOUD 控制台进行代码部署。

  5. FIT2CLOUD 主要承担环境管理、代码部署引擎职责。FIT2CLOUD 以应用为角度对主机进行分组管理并完成基础环境配置等。FIT2CLOUD部署引擎将执行代码部署,按照用户预先定义的事件脚本来实现自动化部署。

基于这个流程,用户可以做到提交代码后无需任何人工操作,即可完成全部部署工作,做到一键式持续集成和部署。如需要进一步了解我们的流程,请查看我们发表在InfoQ上面的文章:<<持续交付:当前普遍存在的三个问题与解决方案>>

FIT2CLOUD 代码部署规范

FIT2CLOUD 代码部署和AWS CodeDeploy类似,我们兼容 AWS CodeDeploy 所定义的应用部署包格式。 和传统部署方式相比,FIT2CLOUD 和 AWS 代码部署的特点是:

1. 应用代码和部署脚本是一体的

如下图所示,应用 artifact zip包中除了包括 WordPress 应用代码外,还包括 appspec.yml 和 scripts 目录。appspec.yml 文件定义了这个应用是如何进行部署的,部署中要执行的脚本则放在 scripts 目录下面。

2. 采用SOA/微服务架构,支持各个应用的局部独立部署

关于 CodeDeploy 更深入的原理,请参考我们发表在InfoQ的文章<<剖析CodeDeploy>>

或者,可以参考AWS 官方提供的 CodeDeploy 介绍视频:视频地址

这里, 我们通过一个简单的Web应用为例介绍FIT2CLOUD代码部署规范的要求。(请参考我们在GitHub上面的示例工程:Demo

这个工程中关键文件包括:

  • pom.xml 和 assembly.xml: 我们使用maven来打包应用artifact。
  • appspec.yml: 这个文件定义了应用部署中各个事件hooks所绑定的脚本。
  • scripts/*.sh等: 这个目录中包括应用部署过程中各个时间发生时所需要执行的脚本。

我们提供了一些其他平台的简单的代码部署示例应用,具体信息如下:

results matching ""

    No results matching ""