--> 使用甲骨文云OCI DevOps通过Shell阶段部署具有来源证明和容器实例的Helm图表
欢迎访问深圳敏捷云计算科技有限公司!

使用甲骨文云OCI DevOps通过Shell阶段部署具有来源证明和容器实例的Helm图表

2024-01-16 原创文章

在云中高效运行应用程序的关键是快速交付软件。甲骨文云基础设施DevOps(OCI DevOps)服务为开发人员提供了一个持续集成和部署(CI/CD)平台。


您可以使用OCI DevOps服务在甲骨文云上轻松构建、测试和部署软件及应用程序。OCI DevOps构建和部署管道减少了变更引起的错误,并缩短了您在构建和部署发布上的时间。


OCI DevOps服务还提供私有Git仓库来存储您的代码,并支持连接到外部代码仓库。无论您是将工作负载迁移到甲骨文云基础设施(OCI)、从本地或其他云迁移,还是在OCI上开发新应用程序,都可以使用OCI DevOps服务简化您的软件交付生命周期。


架构

在这个参考架构中,我们将使用OCI DevOps部署一个云原生应用程序。甲骨文容器引擎的Kubernetes(OKE)和OCI容器实例被用作OCI DevOps的部署目标。此参考架构涵盖的主要特性包括:

  • 使用证明和完整性检查部署Helm图表:通过部署管道使用GNU隐私保护密钥对Helm包进行签名并验证其完整性。
  • 使用Shell阶段将应用程序部署到OCI容器实例:Shell阶段允许您在部署管道中运行自定义命令。这个阶段可以在部署管道的任何点添加。在这个参考架构中,我们使用Shell阶段将应用程序部署到OCI容器实例。
  • 触发基于文件的OCI构建管道执行:在OCI DevOps中,当您将更改提交到代码仓库时,可以自动触发构建运行。利用这一点,我们可以设置一组文件/文件夹的排除和包含,以便在代码更改期间执行构建管道。
  • 使用自定义构建运行器运行托管构建阶段:自定义构建运行器允许您设置所需的OCPU和内存,以支持运行构建指令所需的资源。
  • 在OCI DevOps构建管道中使用Terraform和远程状态后端:兼容S3的OCI对象存储桶用作远程后端存储Terraform状态。Terraform从OCI构建管道执行,该管道启用了资源主体,以便客户端可以基于策略控制资源访问。

以下图表说明了这个参考架构。

架构包含以下组件:

租户

当您注册甲骨文云基础设施时,甲骨文会在云中为您设置一个安全且独立的分区,称为租户。您可以在租户内创建、组织和管理甲骨文云中的资源。租户与公司或组织同义。通常,一家公司会有一个租户,并在该租户内反映其组织结构。单个租户通常与单个订阅关联,而单个订阅通常只有一个租户。


地区

甲骨文云基础设施区域是一个地理上的局部区域,包含一个或多个数据中心,称为可用性域。各个区域彼此独立,它们之间可能相隔很远(跨越国家甚至大洲)。


分区

分区是甲骨文云基础设施租户内跨区域的逻辑分区。使用分区来组织甲骨文云中的资源,控制对资源的访问,并设置使用配额。为了控制对给定分区中资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行的操作。


代码仓库

OCI DevOps服务可以托管私有Git仓库。您可以使用OCI DevOps代码仓库来存储、管理和开发源代码。


构建管道

构建管道定义了构建过程的一系列阶段:构建、测试和编译软件工件,将工件交付到OCI仓库,以及可选地触发部署。


托管构建阶段

托管构建阶段,使用快速且可扩展的OCI DevOps服务托管构建运行器构建和测试您的软件,该运行器运行构建指令。在这个参考架构中,我们使用具有默认形状(预定义的OCPU和内存)和自定义形状(用户定义的OCPU和内存值)的构建阶段。


交付工件阶段

交付工件阶段是构建阶段之一,帮助将工件或容器镜像推送到OCI容器注册表或OCI工件注册表,紧随托管构建阶段之后。


部署管道

一系列步骤,用于将一组工件部署到目标环境。部署管道包含顺序或并行运行的阶段。


Helm图表部署阶段

Helm是Kubernetes的开源包管理器,提供共享、打包和部署为Kubernetes构建的软件的能力。OCI DevOps服务支持将Helm图表部署到容器引擎的Kubernetes(OKE)集群。Helm图表部署阶段还会在部署前验证Helm图表的完整性。


Shell部署阶段

Shell阶段允许您在部署管道中运行自定义命令。这个阶段可以在部署管道的任何点添加。


容器实例

OCI容器实例是一种无服务器计算服务,使您能够快速轻松地运行容器,无需管理任何服务器。容器实例在为容器工作负载优化的无服务器计算上运行您的容器,提供与虚拟机相同的隔离。


保险库

甲骨文云基础设施保险库使您能够集中管理保护数据的加密密钥和用于安全访问云中资源的秘密凭证。您可以使用保险库服务创建和管理保险库、密钥和秘密。


对象存储

甲骨文云基础设施对象存储服务是一个互联网规模、高性能的存储平台,提供可靠且成本效益高的数据持久性。对象存储服务可以存储任何内容类型的无限量非结构化数据,包括分析数据和丰富内容,如图像和视频。


日志记录

甲骨文云基础设施日志记录服务是一个高度可扩展且完全托管的单一视窗,用于您租户中的所有日志。日志记录提供对甲骨文云基础设施资源日志的访问。这些日志包含描述资源性能和访问方式的关键诊断信息。


通知

使用甲骨文云基础设施通知服务设置通信渠道,通过主题和订阅发布消息。


建议

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


  • 创建VCN时,根据您计划连接到VCN子网中的资源数量确定所需的CIDR块数量及每个块的大小。使用标准私有IP地址空间内的CIDR块。
  • 选择不与任何其他网络(在甲骨文云基础设施、您的本地数据中心或您打算设置私有连接的其他云提供商)重叠的CIDR块。
  • 创建VCN后,您可以更改、添加和移除其CIDR块。
  • 设计子网时,考虑您的流量流向和安全需求。将特定层或角色内的所有资源附加到相同的子网,它可以作为安全边界。


计算形状

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


工件注册表

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


容器镜像注册表

此架构将注册表部署为内部使用的私有Docker注册表。Docker镜像被推送到注册表并从中拉取。您还可以将注册表用作公共Docker注册表,使任何具有互联网访问权限并了解适当URL的用户能够从甲骨文云中的公共仓库拉取镜像。


完整性与安全性

在这里有几个重点领域,以确保应用软件的安全性和完整性。OCI保险库用于存储helm图表加密,并确保在部署前验证图表。注册表(工件和容器)确保应用程序镜像和工件以必要的安全性保存和存储。通过OCI虚拟云网络执行几个安全规则和必要的路由规则,只允许应用程序和基础设施的必要网络流量。此外,对象存储标记为私有,以确保流量安全和受控。


对象存储

对象存储提供对大量结构化和非结构化数据的快速访问,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全、安心地存储数据,然后直接从互联网或云平台内检索数据。您可以无缝扩展存储,而不会经历性能下降或服务可靠性下降。对于需要快速、立即、频繁访问的“热”存储,使用标准存储。对于长时间保留且很少或极少访问的“冷”存储,使用归档存储。应用程序代码设置在私有托管的仓库中。在所有必要的资源之上,OCI身份政策相应地执行。


考虑因素

在使用OCI DevOps服务部署持续集成和部署(CI/CD)平台时,考虑以下因素。


DevOps支持的部署

DevOps支持向甲骨文容器引擎的Kubernetes(OKE)、计算主机和OCI函数进行部署。本架构部署到OKE集群,并使用Shell阶段进行其他可能的目标部署。根据您的具体需求,考虑部署到其他端点。


部署工件

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


分组应用程序

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


部署

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

使用甲骨文云基础设施资源管理器中的示例堆栈部署:点击,如果您尚未登录,请输入租户和用户凭证。选择您希望部署堆栈的区域。按照屏幕上的提示和指示创建堆栈。创建堆栈后,点击Terraform操作,选择计划。等待作业完成,并审查计划。若要进行任何更改,请返回到堆栈详细信息页面,点击编辑堆栈,并进行必要的更改。然后,再次运行计划操作。如果不需要进一步更改,请返回到堆栈详细信息页面,点击Terraform操作,并选择应用。

使用GitHub中的Terraform代码部署:访问GitHub。克隆或下载仓库到您的本地计算机。按照README文档中的说明操作。


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

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

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

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

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


如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: