软件的快速交付对于在云中高效运行应用程序至关重要。 通过管道部署自动化软件发布可提高开发人员的工作效率,并允许您更频繁地发布功能并减少错误。 它有助于避免部署期间的停机时间,并自动执行更新应用程序的复杂性。 Oracle Cloud Infrastructure DevOps 为开发人员提供端到端的持续部署体验。 Oracle Cloud Infrastructure DevOps 服务包括部署管道,用于自动执行到 Oracle Cloud Infrastructure (OCI) 平台(Oracle Cloud Infrastructure Container Engine Kubernetes、Oracle Functions 和 Oracle Cloud Infrastructure 计算实例)的持续软件交付和部署过程 (CD)。 Oracle 云基础设施适用于在本地部署或从其他云迁移工作负载的客户,以及在 OCI 上开发新应用的客户。 此体系结构显示了使用 Oracle Cloud Infrastructure (OCI) DevOps 服务从存储库部署的 NodeJS 应用程序的示例。 应用程序将部署到 Oracle Cloud Infrastructure Container Engine Kubernetes (OKE) 集群。 为了简化流程,我们使用 Terraform 进行基础架构自动化。 下图演示了此参考体系结构。
此架构由以下组件组成:地区Oracle Cloud Infrastructure 区域是一个地理位置受限的区域,其中包含一个或多个数据中心(称为可用性域)。 区域独立于其他地区,并且可能相距很远(跨国家甚至跨大陆)。
虚拟云网络 (VCN) 和子网VCN 是在 Oracle Cloud Infrastructure 区域中设置的可定制的软件定义网络。 与传统的数据中心网络一样,VCN 可让您完全控制网络环境。 一个 VCN 可以有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。 您可以将 VCN 划分为多个子网,这些子网的范围可以限定为区域或可用性域。 每个子网都包含一系列连续地址,这些地址不与 VCN 中的其他子网重叠。 您可以在创建子网后更改子网的大小。 子网可以是公有子网,也可以是私有子网。
OCI DevOps 项目OCI DevOps 项目是实施持续集成和部署 (CI CD) 工作负载所需的资源的逻辑分组。 OCI DevOps 资源可以是构件、部署管道和环境。 借助 OCI DevOps 项目,您可以轻松为 OCI DevOps 资源启用日志记录、监控和通知功能。
构建管道生成管道从源存储库获取提交 ID,并使用该源运行生成说明。 构建管道定义了构建过程的一系列阶段:构建、测试和编译软件构件,将构件交付到 OCI 存储库,以及选择性地触发部署。 您可以在生成规范文件中定义生成运行的过程和说明。
构建阶段生成阶段是在生成管道运行期间发生的单个操作。 OCI DevOps 构建管道由三个阶段组成:
构建容器:执行构建规范YAML 指令来编译、构建和准备必要的工件。
上载工件:上载所有准备好的工件(如 Docker 映像),以推送到配置的 Oracle Cloud Infrastructure 注册表存储库。
触发部署:触发部署管道的 OKE,以将更改应用于配置。
部署管道部署管道包含将一组项目交付到环境中需要满足的要求。 管道包含阶段,这些阶段是管道的构建基块。 管道可以具有串行或并行运行的阶段,因此您可以控制软件版本的流程和逻辑。
部署阶段阶段是在管道运行期间发生的单个操作。 OCI DevOps 部署管道仅包含一个预定义阶段(称为 Deployment Helm),用于使用 Helm 图表部署 Kubernetes 应用。 helm 图表 URL 和可选值YAML 文件将作为 OCI DevOps 项目发送到部署 Helm 阶段。 在执行期间,Helm 阶段从 Oracle Cloud Infrastructure Registry 获取 Helm 图表,并将其应用于配置的 OKE OCI DevOps 环境,并选择性地提供值yaml 文件。
DevOps 工件OCI DevOps 工件是对构成应用的任何文件、二进制文件、包、清单或镜像的引用或指针。 创建工件时,必须将实际工件的源位置通知 OCI DevOps。 OCI DevOps 支持 OCI 容器注册表和 OCI 构件注册表存储库。
项目存储库物品仓库用于创建用于对相似物品进行分组的仓库。 创建存储库后,您可以上传项目。 这些项目是文本文件、二进制文件和部署清单的集合,将传递到目标部署环境。 每个工件都有一个名称,由其路径组成:version。 路径是用于组织工件的字符串。
helmHelm 是 Kubernetes 的包管理器,它将应用程序部署作为一组 Helm 图表进行管理,使您能够轻松管理单个服务及其生命周期。
Oracle Linux 的 Helm 模块将 Helm 安装到 Kubernetes 模块(集群)中。
Helm 图表Kubernetes YAML 清单将合并到一个包中,该包可以部署到 Kubernetes 集群。 Helm 图表包含 Kubernetes YAML 清单文件的模板和一个值YAML 文件来提供默认模板值。 使用 helm 图表部署应用程序或大型应用程序的组件。
OCI 日志和 OCI 通知Oracle Cloud Infrastructure 日志和 Oracle Cloud Infrastructure 通知存储与您的部署相关的日志。 部署运行时输出和部署的最终结果显示为日志条目。 OCI 通知提供对部署项目及其资源的最新状态的可见性,并采取必要的措施。
部署环境环境是客户计算资源的集合,其中部署了项目。 环境可以是函数、计算虚拟机 (VM) 或裸机实例,也可以是 OKE 群集。
Oracle Kubernetes 集群 (OKE):OCI 容器引擎是面向 Kubernetes 的完全托管、可扩展且高度可用的服务,可用于将容器化应用部署到云中。
计算实例:借助 OCI 计算,您可以在云中配置和管理计算主机。 您可以启动满足 CPU、内存、网络带宽和存储资源需求的计算实例。
功能:Oracle Functions 是一个完全托管、多租户、高度可扩展的按需功能即服务 (FaaS) 平台。 它基于企业级 OCI 构建,由 FN Project 开源引擎提供支持。
此体系结构使用 OKE 群集作为环境。 环境可以位于与部署管道的区域不同的 OCI 区域中。 这样,开发人员就可以使用相同的部署管道在多个 OCI 区域中进行部署。
使用以下建议作为起点。 您的需求可能与此处描述的体系结构不同。 虚拟云网络 (VCN)。创建 VCN 时,请根据计划连接到 VCN 子网的资源数量确定所需的 CIDR 块数和每个块的大小。 在标准专用 IP 地址空间中使用 CIDR 块。
创建 VCN 后,可以更改、添加和删除其 CIDR 块。
此体系结构使用公共 VCN 来托管 OKE 群集。 您也可以使用专用 VCN。 在这种情况下,请使用 NAT 网关使群集能够通过公共 Internet 访问。
计算形状此体系结构使用具有 E4 弹性配置的 Oracle Linux OS 映像,以最少的资源在 OKE 群集节点中托管计算主机。 如果应用程序需要更多内存或内核,则可以从不同的配置中进行选择。
kubernetes(oke)此体系结构作为目标终结点部署到 OKE 群集。 工作节点部署在 E4 Oracle Linux OS 上。 此体系结构在一个群集中使用三个工作节点,但每个群集上最多可以创建 1000 个节点。
容器镜像仓库此架构将注册表部署为供内部使用的专用 docker 注册表。 docker 映像被推送到注册表并从中拉取。 您还可以将注册表用作公共 Docker 注册表,使任何具有 Internet 访问权限并了解相应 URL 的人都可以从 Oracle Cloud 中的公共存储库中提取映像。 在此架构中,同一容器注册表也用于存储 Helm 图表。
项目注册表此体系结构为 OKE 群集使用的软件和配置创建项目。 架构将创建一个项目注册表存储库供内部使用。 软件二进制文件、文本和部署配置将上传到项目注册表存储库或从项目注册表存储库上传。
部署此参考体系结构时,请考虑以下几点。 Oracle Cloud Infrastructure DevOps 支持的部署DevOps 支持部署到 Kubernetes (OKE)、计算主机和 Oracle Functions。 此体系结构使用 helm 图表部署到 OKE 群集。 请考虑根据需要部署到其他终结点。
支持的主机仅支持将实例组部署到 Oracle Cloud Infrastructure 计算实例的 Linux 主机。
产品使用 Oracle Cloud Infrastructure DevOps 部署的工件必须驻留在 Oracle Cloud Infrastructure 工件注册表或容器映像注册表存储库中。
项目最佳做法是将每个应用程序及其所有微服务分组到一个项目中。
GitHub 上提供了此参考体系结构的 Terraform。 使用 Oracle Cloud Infrastructure Explorer 中的示例堆栈进行部署:
点击并输入租户和用户凭据(如果尚未输入)。
选择要在其中部署堆栈的区域。
按照屏幕上的提示和说明创建堆栈。
创建堆栈后,单击 Terraform 操作,然后选择 Plan。
等待作业完成并查看计划。
如果您需要进行任何更改,请返回到堆栈详细信息页面,单击编辑堆栈,然后进行必要的更改。 然后,再次运行计划操作。
如果不需要进行任何进一步的更改,请返回堆栈详细信息页面,单击 Terraform 操作,然后选择应用。
在 GitHub 中使用 Terraform 进行部署:Deploy using Terraform in GitHub:访问 GitHub。
克隆或存储库到本地计算机。
按照 README 文档中的说明进行操作。
作为甲骨文标准合作伙伴,Agilewing正在重新定义企业体验甲骨文云服务的方式。 凭借其简化的开户流程和一流的技术支持,雅居翼将复杂的开户和操作流程转变为简单、直观的体验。 借助我们的一站式服务,您可以快速启动并运行全套 Oracle 云服务,从而无缝集成到云中。 Agilewing 的 AgileCDN 服务与 OCI 基于云的服务相结合,可提供一流的全球内容加速解决方案。 由2,800多个全球POP节点和7,000个直接连接点组成的强大网络可确保您的业务扩展到全球的任何地方,都能确保高效稳定的运营。 利用 Oracle 云的先进技术,Agilewing 致力于简化云服务构建、云迁移和业务走出去的流程。 “我们的合作模式为客户提供了经济高效的解决方案,使他们能够更专注于核心业务,同时享受 Oracle 云的高性能和安全性。” Oracle 云服务是一个前景广阔的领域,凭借其高性能、安全性和全球一致的服务标准,为企业打开了通往新机遇的大门。 通过雅乐之翼的专业服务,无论是个人用户还是企业,都能轻松进入这个充满技术创新和高性能的新时代。 让 Agilewing 开始探索 Oracle 云服务,打开通往全新世界的大门。