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

利用甲骨文云基础设施DevOps和OCI实例构建CI/CD流水线:加速软件交付的云端解决方案

2024-02-29 原创文章

在云中高效运行应用程序,软件的快速交付至关重要。甲骨文DevOps服务为开发人员提供了一个持续集成和部署(CI/CD)平台。您可以使用DevOps服务在甲骨文云上轻松构建、测试和部署软件及应用程序。DevOps构建和部署流水线减少了变更引起的错误,并减少了客户在构建和部署发布上的时间。该服务还提供了私有Git仓库来存储您的代码,并支持连接到外部代码仓库。无论您是将工作负载迁移到OCI(从本地或其他云),还是在OCI上开发新应用程序,都可以使用DevOps服务简化您的软件交付生命周期。


架构

这个参考架构展示了如何构建一个现代应用程序,然后将其部署到OCI计算实例。此演示使用基于Graal Enterprise/Micronaut的Java应用程序。该应用程序通过OCI负载均衡器暴露,确保在活动部署期间流量平稳转移。


以下图表展示了这种架构。

这种架构包含以下组件:


地域

一个OCI地域是包含一个或多个数据中心的地理区域,这些数据中心称为可用性域。地域彼此独立,距离可以非常遥远(跨越国家甚至大洲)。该架构使用单一地域。


DevOps项目

实现CI/CD工作流所需的DevOps资源的逻辑分组。DevOps资源可以是工件、构建流水线、部署流水线、外部连接、触发器和环境。DevOps项目使得为所有DevOps资源启用日志、监控和通知变得简单。


构建流水线

构建流水线从您的源代码仓库中取得提交ID,并使用该源代码来运行您的构建指令。构建流水线定义了构建过程的一系列阶段:构建、测试和编译软件工件,将工件交付给OCI仓库,以及可选地触发部署。您在构建规范文件中定义构建运行的流程和指令。


构建阶段

阶段是流水线运行期间发生的单个动作。这里提到的各种构建阶段包括:

  • 管理构建阶段——一个用于构建和测试源代码的管理构建阶段。
  • 交付工件阶段——一个阶段,用于将构建阶段的输出推送到各种仓库。比如将容器镜像推送到容器仓库,将部署清单推送到工件注册中心。
  • 调用部署——一旦构建阶段完成,调用部署流水线的阶段,同时将从管理构建阶段导出的变量解析到部署流水线的阶段。


代码仓库

由DevOps服务托管的私有Git仓库。您可以在我们的DevOps代码仓库中存储、管理和开发源代码。


部署流水线

用于将一组工件交付和部署到目标环境的一系列步骤。通过定义可以串行或并行运行的阶段,可以控制软件发布的流程和逻辑。


部署阶段

阶段是流水线运行期间发生的单个动作。在本例中,我们使用了计算实例组滚动阶段,在部署流水线中,它将相应地将应用程序安装到OCI计算实例上。


DevOps工件

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


工件仓库

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


OCI日志和通知服务

OCI日志服务存储与部署相关的日志。部署运行时输出和部署的最终结果显示为日志条目。OCI通知服务提供了对部署项目及其资源的最新状态的可见性,并采取必要措施。例如,当部署流水线中的一个阶段等待批准时,您会收到通知。收到通知消息时,您可以前往DevOps部署流水线并批准该阶段。


部署环境

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


OCI计算实例

甲骨文云基础设施提供快速、灵活且经济的计算能力,以适应任何工作负载需求,从高性能的裸机服务器和VM到轻量级容器。OCI计算提供独特灵活的VM和裸机实例,以获得最佳的性价比。此架构使用OCI计算,操作系统镜像为甲骨文Linux。


OCI负载均衡器

甲骨文云基础设施负载均衡服务提供了从一个入口点到可通过您的虚拟云网络(VCN)访问的多个服务器的自动流量分配。该服务提供一个负载均衡器,您可以选择公共或私有IP地址,并提供预分配的带宽。


建议

在使用甲骨文云基础设施DevOps和OCI实例构建CI/CD流水线时,以下建议可作为起点。您的需求可能与这里描述的架构不同。


计算形状

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


VCN

  • 创建VCN时,根据您计划连接到VCN子网的资源数量确定所需的CIDR块数量及每个块的大小。使用标准私有IP地址空间内的CIDR块。
  • 创建VCN后,您可以更改、添加和移除其CIDR块。
  • 此架构使用公共VCN托管甲骨文容器引擎用于Kubernetes。您也可以使用私有VCN。在这种情况下,使用NAT网关使集群能够通过公共互联网访问。


实例组

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


工件注册表

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


考虑因素

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


DevOps支持的部署

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

Linux支持

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

部署的工件

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

应用程序分组

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


部署

此参考架构的Terraform代码作为示例堆栈在甲骨文云基础设施资源管理器中可用。您也可以从GitHub下载代码并根据您的特定需求进行定制。

使用甲骨文云基础设施资源管理器中的示例堆栈部署:

1.点击,如果您尚未登录,请输入租户和用户凭据。


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

3.按照屏幕上的提示和指示创建堆栈。

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

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云服务,打开一个全新的世界大门。