使用 Oracle Cloud Infrastructure DevOps 构建连续部署管道
要有效地在云中运行应用,必须快速交付软件。Oracle Cloud Infrastructure (OCI) DevOps 为开发人员提供了端到端的连续部署体验。OCI DevOps 包括部署管道,以将持续软件部署流程 (CD) 自动化到 OCI 平台:Container Engine for Kubernetes (OKE)、函数和计算实例。
通过管道部署自动完成软件发行版,提高开发人员工作效率,并帮助您更频繁地发布特性,同时减少错误。它有助于避免部署期间的停机,并自动更新应用程序的复杂性。OCI DevOps 可以由从内部部署或其他云迁移负载到 OCI 的客户以及在 OCI 上开发新应用的客户使用。
体系结构
在此参考体系结构中,使用 OCI DevOps 部署了一个 Hello World 应用程序样例。Hello World 应用程序已构建,可以部署。应用程序部署到三个不同的目标环境 :OKE、计算实例和函数。为了简化流程,Terraform 用于基础设施自动化。
下图说明了此参考体系结构。

插图 dev-ops-deployment-p pipeline.png 的说明
deploy-pipeline-devops-arch-oracle.zip
- 区域
OCI 区域是本地化地理区域,包含一个或多个数据中心,称为可用性域。区域独立于其他区域,大片距离可以分开(跨国家甚至大陆)。
该体系结构使用单个区域。
- DevOps project(项目)
DevOps 项目是实现连续集成和部署 (CI/CD) 负载所需资源的逻辑分组。DevOps 资源可以是工件、部署管道和环境。通过 DevOps 项目,可以轻松地为所有 DevOps 资源启用日志记录、监视和通知。
- 部署管道
部署管道满足向环境提供一组工件所必须满足的要求。管道包含阶段,这些阶段是管道的构建块。管道可以有串行或并行运行的阶段,因此您可以控制软件发行版的流和逻辑。
- 部署阶段阶段是在运行管道期间执行的单个操作。DevOps 部署管道包括以下预定义的阶段类型,供您在发行版流程中使用:
- 滚动部署:OKE、Functions 或实例组的增量发行版。
- 等待:等待 N 秒。
- 人工审批:如果提供了审批,则继续;如果拒绝审批,则停止。
- 调用函数:通过调用函数和传递请求参数的 Artifact 来执行定制任务和集成。
- DevOps 对象
DevOps Artifact 是对构成应用程序的任何文件、二进制文件、程序包、清单或映像的引用或指针。创建对象时,必须向 Oracle DevOps 通知实际对象的源位置。DevOps 支持 OCI 容器映像注册表和 OCI Artifact 注册表资料档案库。
- Artifact 资料档案库
Artifact 资料档案库用于创建资料档案库以对类似 Artifact 进行分组。创建资料档案库后, 可以将 Artifact 上载到它们。这些工件是将传送到目标部署环境的文本文件、二进制文件和部署清单的集合。每个项目对象都有一个名称,由其路径:版本组成。路径是用于组织对象的字符串。
- OCI 日志记录和通知服务
OCI 日志记录服务存储与部署相关的日志。部署运行时输出和部署的最终结果显示为日志条目。通过 OCI 通知服务,您可以查看部署项目及其资源的最新状态,并采取任何必要的操作。例如,当重要事件(如部署管道中的阶段等待审批)时,会通知您。当收到通知消息时,您可以转至 DevOps 部署管道并审批该阶段。
- 部署环境
环境是部署对象时客户计算资源的集合。环境可以是功能、计算虚拟机 (VM) 或裸金属实例,也可以是 OKE 集群。
- Oracle Kubernetes 集群 (OKE):Oracle Container Engine for Kubernetes 是完全托管、可扩展的高可用性服务,可用于将容器化应用部署到云中。
- 计算实例:OCI 计算服务允许您在云中预配和管理计算主机。您可以使用符合 CPU、内存、网络带宽和存储资源要求的配置来启动计算实例。
- 函数:Oracle Functions 是一个完全托管的多租户、高度可扩展的按需功能即服务平台。它基于企业级 OCI,由 Fn 项目开源引擎提供支持。
建议
- 计算配置
此体系结构使用具有 E3 或 E4 灵活配置的 Oracle Linux OS 映像以及最小资源来托管 OKE 群集节点中的计算主机。如果您的应用需要更多的内存或核心,则可以选择不同的配置。
- VCN
创建 VCN 时,请根据您计划附加到 VCN 中的子网的资源数量确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
创建 VCN 后,可以更改、添加和删除其 CIDR 块。
此体系结构使用公共 VCN 来托管 Oracle Container Engine for Kubernetes。您还可以使用专用 VCN。在这种情况下,请使用 NAT 网关通过公共互联网授予群集访问权限。
- OKE
此体系结构将 OKE 群集部署为目标环境之一。Worker 节点部署在 E3 或 E4 Oracle Linux OS 上。此体系结构使用集群中的三个 worker 节点,但每个集群最多可创建 1,000 个节点。
- 函数
如果选择将体系结构部署到 OCI 功能,将在租户中创建新的函数应用程序和函数。
- 实例组
如果您选择将架构部署到实例组,您的租户中会创建您所选配置的新计算实例。
- 容器映像注册表
此体系结构将注册表部署为专用 Docker 注册表以供内部使用。Docker 映像将推送到注册表中并从中提取。您还可以将注册表用作公共 Docker 注册表,使具有互联网访问权限的任何用户以及相应 URL 的知识从 Oracle Cloud 中的公共资料档案库中提取映像。
- Artifact 注册表
此体系结构为实例组、OKE 和函数部署使用的软件和配置创建对象。该体系结构创建用于内部使用的 Artifact 注册表资料档案库。软件二进制文件、文本和部署配置将上载到 Artifact 注册表资料档案库并从中下载。
考虑事项
部署此引用体系结构时,请考虑以下几点。
- DevOps 支持的部署
DevOps 支持部署到 OKE、计算主机和函数。此体系结构部署至 OKE 群集。根据要求考虑部署到其他端点。
- Linux 支持服务
到计算实例的实例组部署只支持 Linux 主机。
- 已部署 Artifact
使用 DevOps 部署的对象需要位于 OCI 对象注册表或容器映像注册表资料档案库中。
- 应用程序分组
作为最佳做法,将每个应用程序及其所有微服务归入一个项目中。
部署
此参考体系结构的 Terraform 代码可用作 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈。您还可以从 GitHub 下载代码并对其进行定制以满足您的特定要求。
- 使用 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈进行部署:
- 在 GitHub 中使用 Terraform 代码部署:
- 转至 GitHub。
- 将资料档案库克隆或下载到本地计算机。
- 按照
README文档中的说明进行操作。