ShiningDan的博客

DevOps 能力业内现状调研

DevOps 能力现状调研

本文是 DevOps 能力现状调研

汇总

各厂商现状

Amazong CodePipeline

名词解释

概念

管道(Pipeline)

即发布模板:软件更改如何经历一个发布过程的工作流程结构。您通过一系列阶段和操作定义该工作流程。

使用 get-pipeline AWS CLI 命令来获取现有管道的 JSON 结构。然后,您可以使用 JSON 和 create-pipeline AWS CLI 命令来创建与现有管道具有相同结构的新管道。

阶段(Stage)

阶段指一个或多个操作的组。管道可以具有两个或更多个阶段。

操作(Action)

操作指对修订版执行的任务。管道操作以特定顺序、以串行或并行方式发生,具体在阶段的配置中确定。

每个操作都有一个类型。根据类型,操作可能具有以下一项或两项(操作之间是可以互相传值的):

  1. 输入项目,它是操作在运行过程中使用或处理的项目。
  2. 输出项目,它是操作的输出。

管道中的每个输出项目必须具有唯一的名称。操作的每个输入项目必须与管道中的以前操作的输出项目匹配

审批操作可防止管道过渡到下一个操作。

操作对应的 UI 界面,都是有函数逻辑在里面,并不是 input/select 等能够满足

项目

即插件互相传递的中间产物:源操作将该代码的最新版本输出为源项目,而构建操作将读入它。编译后,构建操作将构建输出上传为另一个项目,后面的部署操作将读取该项目。

总体流程

按照 Source -> Build -> Test -> Staging -> Production 这五步进行总流程划分

Source

支持 AWS CodeCommit、GitHub、Amazon ECR 或 Amazon S3 等各种触发源

  1. 主动点击触发
  2. code Commit 触发

Build/Test

在 AWS CodeBuild 中运行构建和单元测试

在此部分,用户使用 AWS 默认提供的 Docker 环境,也可以提供自己的 Docker 环境。总的来说,这部分是有机器承载的。

Deploy Staging/Production

部署到 AWS 自己的服务上,也可以集成第三方负载或集成在 CodeBuild 完成构建后启动的用户界面测试工具(例如 BlazeMeter 和 Ghost Inspector),从而将持续集成工作流程轻松扩展到持续交付

监控

提供日志查看与监控能力:

显示构建任务的开始时间、结束时间、状态和提交 ID 等信息,CodeBuild 还会将构建任务指标和日志传输到 CloudWatch。您可以使用 CloudWatch 创建自定义控制面板、设置 CloudWatch 警报、排查构建问题或查看构建日志。

自定义插件

声明式模板

通过 JSON 文件修改已有 Pipeline。

指定您发布工作流程及其阶段和操作的声明性 JSON 文档来定义管道结构。这些文档使您能够更新现有管道,以及提供用于创建新管道的起始模板。

使用方法

  1. 创建应用
  2. 创建管道
  3. 配置权限(操作 Bucket 的权限等)
  4. 添加源阶段(Source Code 的来源)
  5. 添加构建阶段
  6. 添加部署阶段

参考