DevOps 能力现状调研
本文是 DevOps 能力现状调研
汇总
各厂商现状
Amazong CodePipeline
名词解释
管道(Pipeline)
即发布模板:软件更改如何经历一个发布过程的工作流程结构。您通过一系列阶段和操作定义该工作流程。
使用 get-pipeline AWS CLI 命令来获取现有管道的 JSON 结构。然后,您可以使用 JSON 和 create-pipeline AWS CLI 命令来创建与现有管道具有相同结构的新管道。
阶段(Stage)
阶段指一个或多个操作的组。管道可以具有两个或更多个阶段。
操作(Action)
操作指对修订版执行的任务。管道操作以特定顺序、以串行或并行方式发生,具体在阶段的配置中确定。
每个操作都有一个类型。根据类型,操作可能具有以下一项或两项(操作之间是可以互相传值的):
- 输入项目,它是操作在运行过程中使用或处理的项目。
- 输出项目,它是操作的输出。
管道中的每个输出项目必须具有唯一的名称。操作的每个输入项目必须与管道中的以前操作的输出项目匹配
审批操作可防止管道过渡到下一个操作。
操作对应的 UI 界面,都是有函数逻辑在里面,并不是 input/select 等能够满足
项目
即插件互相传递的中间产物:源操作将该代码的最新版本输出为源项目,而构建操作将读入它。编译后,构建操作将构建输出上传为另一个项目,后面的部署操作将读取该项目。
总体流程
按照 Source -> Build -> Test -> Staging -> Production 这五步进行总流程划分
Source
支持 AWS CodeCommit、GitHub、Amazon ECR 或 Amazon S3 等各种触发源
- 主动点击触发
- 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 文档来定义管道结构。这些文档使您能够更新现有管道,以及提供用于创建新管道的起始模板。
使用方法
- 创建应用
- 创建管道
- 配置权限(操作 Bucket 的权限等)
- 添加源阶段(Source Code 的来源)
- 添加构建阶段
- 添加部署阶段