快速交付软件对于高效运行云中的应用程序至关重要。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云服务,打开一个全新的世界大门