欢迎访问深圳敏捷云计算科技有限公司!

使用甲骨文云OCI 基础设施DevOps构建持续部署管道

2024-03-20 原创文章

快速交付软件对于高效运行云中的应用程序至关重要。Oracle云基础设施(OCI)DevOps为开发者提供了端到端的持续部署体验。OCI DevOps包括部署管道,用于自动化您的持续软件部署过程(CD)到OCI平台:容器引擎Kubernetes(OKE)、Functions和计算实例。通过管道部署自动化软件发布,可以提高开发者生产力,并允许您更频繁、更少错误地发布功能。它有助于避免部署期间的停机,并自动化更新应用程序的复杂性。OCI DevOps可以被从本地或其他云迁移工作负载到OCI的客户以及在OCI上开发新应用的客户使用。

架构

在这个参考架构中,使用OCI DevOps部署了一个示例Hello World应用程序。Hello World应用程序已经构建好,准备部署。该应用程序部署到三个不同的目标环境:OKE、计算实例和Functions。为简化流程,使用Terraform进行基础设施自动化。

下图展示了此参考架构。

此架构包含以下组件:

地域

OCI地域是包含一个或多个数据中心的本地化地理区域,这些数据中心称为可用性域。地域彼此独立,相隔很远(跨越国家甚至大洲)。

该架构使用单一地域。

DevOps项目

DevOps项目是实施持续集成和部署(CI/CD)工作负载所需资源的逻辑分组。DevOps资源可以是工件、部署管道和环境。DevOps项目使启用日志记录、监控和通知以及所有DevOps资源变得简单。

部署管道

部署管道包含了将一组工件交付到环境中所必须满足的要求。管道包含阶段,这些阶段是管道的构建模块。管道可以有串行或并行运行的阶段,因此您可以控制软件发布的流程和逻辑。

部署阶段

阶段是管道运行期间发生的单个动作。DevOps部署管道包括以下预定义阶段类型,供您在发布过程中使用:

滚动部署:向OKE、Functions或实例组逐步发布。

等待:等待N秒。

手动审批:如果获得批准则继续;如果批准被拒绝则停止。

调用函数:通过调用函数并传递工件或请求参数来执行自定义任务和集成。

DevOps工件

DevOps工件是对构成您应用程序的任何文件、二进制文件、包、清单或镜像的引用或指针。创建工件时,您必须告知Oracle DevOps实际工件的源位置。DevOps支持OCI容器镜像注册表和OCI工件注册表仓库。

工件仓库

工件仓库用于创建仓库以对类似的工件进行分组。一旦创建了仓库,就可以将工件上传到其中。这些工件是将交付给目标部署环境的文本文件、二进制文件和部署清单的集合。每个工件都有一个名称,由其路径:版本组成。路径是用于组织工件的字符串。

OCI日志和通知服务

OCI日志服务存储与部署相关的日志。部署运行时输出和部署的最终结果显示为日志条目。OCI通知服务提供对部署项目及其资源的最新状态的可见性,并采取必要的行动。例如,当重要事件发生时,比如部署管道中等待批准的阶段,您会收到通知。收到通知消息后,您可以进入DevOps部署管道并批准该阶段。

部署环境

环境是客户计算资源的集合,工件在其中部署。环境可以是函数、计算虚拟机(VM)或裸机实例,或OKE集群。

Oracle Kubernetes集群(OKE):Oracle容器引擎用于Kubernetes是一项完全托管、可扩展且高可用的服务,您可以使用它将容器化应用程序部署到云中。

计算实例:OCI计算服务使您能够在云中配置和管理计算主机。您可以启动符合CPU、内存、网络带宽和存储资源需求的计算实例形状。

函数:Oracle Functions是一项完全托管的、多租户的、高度可扩展的、按需的函数即服务平台。它建立在企业级OCI上,并由Fn Project开源引擎驱动。

环境可以位于与部署管道不同的OCI地域中。这允许开发者使用相同的部署管道在多个OCI地域部署。

建议

使用以下建议作为起点。您的需求可能与此处描述的架构不同。

计算形状

此架构使用带有E3或E4弹性形状的Oracle Linux OS镜像,以最小资源配置托管OKE集群节点中的计算主机。如果您的应用程序需要更多内存或核心,您可以选择不同的形状。

VCN

创建VCN时,根据您计划附加到VCN子网中的资源数量,确定所需CIDR块的数量和每个块的大小。使用标准私有IP地址空间内的CIDR块。

创建VCN后,您可以更改、添加和移除其CIDR块。

此架构使用公共VCN来托管Oracle容器引擎Kubernetes。您也可以使用私有VCN。在这种情况下,使用NAT网关让集群能够通过公共互联网访问。

OKE

此架构将OKE集群作为一个目标环境部署。工作节点部署在E3或E4 Oracle Linux OS上。此架构在集群中使用三个工作节点,但您可以在每个集群上创建多达1000个节点。

函数

如果您选择将架构部署到OCI函数,您的租户中将创建新的函数应用程序和函数。

实例组

如果您选择将架构部署到实例组,您的租户中将创建新的计算实例,可根据您的选择形状创建。

容器镜像注册表

此架构将Registry部署为内部使用的私有Docker注册表。Docker镜像被推送到并从注册表中拉取。您也可以将Registry用作公共Docker注册表,使任何有互联网访问权限并了解适当URL的用户都能从Oracle Cloud中的公共存储库拉取镜像。

工件注册表

此架构为实例组、OKE和Functions部署使用的软件和配置创建一个工件。架构为内部使用创建一个工件注册表仓库。软件二进制文件、文本和部署配置被上传到并从工件注册表仓库下载。

考虑因素

部署此参考架构时,请考虑以下几点。

DevOps支持的部署

DevOps支持部署到OKE、计算主机和Functions。此架构部署到OKE集群。根据需求考虑部署到其他端点。

Linux支持

只有Linux主机支持实例组部署到计算实例。

部署工件

使用DevOps部署的工件需要位于OCI工件注册表或容器镜像注册表仓库中。

分组应用程序

作为最佳实践,将每个应用程序及其所有微服务分组到一个项目中。

部署

这个参考架构的Terraform代码以Oracle云基础设施资源管理器中的示例堆栈形式提供。您还可以从GitHub下载代码,并根据您的具体需求进行定制。

使用Oracle云基础设施资源管理器中的示例堆栈进行部署:

a. 点击您特定用例的部署按钮以访问资源管理器:

如果您尚未登录,请输入租户和用户凭证。

1. 选择您希望部署堆栈的地域。

2. 按照屏幕上的提示和说明创建堆栈。

3. 创建堆栈后,点击Terraform操作,并选择计划。

4. 等待作业完成,并审查计划。

5. 如需进行任何更改,返回至堆栈详情页面,点击编辑堆栈,并进行必要更改。然后,再次运行计划操作。

6. 如果不需要进一步更改,返回至堆栈详情页面,点击Terraform操作,并选择应用。

使用GitHub中的Terraform代码部署:

1. 访问GitHub。

2. 克隆或下载仓库到您的本地电脑。

3. 遵循README文档中的说明操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门