--> 通过整合甲骨文云OCI队列与函数,优化异步工作流程:提高效率的云端解决方案
欢迎访问深圳敏捷云计算科技有限公司!

通过整合甲骨文云OCI队列与函数,优化异步工作流程:提高效率的云端解决方案

2024-01-16 原创文章

甲骨文云基础设施(OCI)队列服务允许您以异步方式在系统之间发送消息,从而帮助您解耦系统并提高其性能。它旨在处理大量的交易数据,并确保消息在没有丢失或重复的情况下得到处理。

OCI队列服务是完全托管的,能够基于生产者和消费者的吞吐量自动扩展,使用开放标准来支持与任何客户端或生产者的通信,几乎不需要任何努力。无服务器应用程序通常依赖于各种服务(如API网关、函数等)的组合来正常运作。然而,为了使这些分布式组件能够相互通信,队列服务至关重要。它还允许您的应用程序将通信扩展到OCI的其他组件甚至OCI之外。


架构

该参考架构在Oracle容器引擎(OKE)上部署了一个Python示例应用程序,该应用程序定期轮询配置的队列以获取新消息,使用获取的消息调用配置的函数,并在成功执行后,从队列中移除这些消息。

应用程序在与OCI服务交互时,会以实例主体的身份进行身份验证。队列和函数可以位于任何地区,且在堆栈创建期间必须指定队列和函数的OCID。如果在Terraform部署后需要更新队列和函数的OCID,您可以编辑Kubernetes部署工件(创建的OCI DevOps项目的一部分)。

Terraform部署包括创建在OCI DevOps服务中所需的管道和存储库,以自动化将应用程序源代码全面投入生产所需的步骤。应用程序源代码托管在DevOps代码存储库上。用户随后可以将代码提交到存储库,这将触发构建管道的启动。

下图展示了这一参考架构。



架构包含以下组件:


地区

甲骨文云基础设施(OCI)地区是一个地理区域,包含一个或多个数据中心,称为可用性域。地区彼此独立,相隔很远(跨国甚至跨洲)。


DevOps项目

实现CI/CD工作流所需的DevOps资源的逻辑分组。DevOps资源可以是工件、构建管道、部署管道、外部连接、触发器和环境。DevOps项目便于为所有DevOps资源启用日志记录、监控和通知。


构建管道

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



代码存储库

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


部署管道

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


部署阶段

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

  • 滚动部署:向OKE、函数或实例组逐步发布。
  • 等待:等待N秒。
  • 手动审批:如果获得批准则继续;如果拒绝则停止。
  • 调用函数:通过调用函数并传递请求参数的工件执行自定义任务或集成。


DevOps工件

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


OCI日志和通知服务

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


部署环境

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

OKE集群:OCI容器引擎用于Kubernetes是一种完全托管、可扩展、高可用的服务,可用于将容器化应用程序部署到云中。

计算实例:OCI计算服务使您能够在云中配置和管理计算主机。您可以部署满足CPU、内存、网络带宽和存储资源要求的计算实例。

函数:Oracle函数是一个完全托管的、多租户的、高度可扩展的、按需的函数即服务平台。该服务建立在企业级Oracle云基础设施上,并由Fn项目开源引擎提供支持。 环境可以位于与部署管道不同的OCI地区。这种分离使开发人员能够使用相同的部署管道在多个OCI地区进行部署。


IAM动态组和策略

动态组是一种特殊类型的组,包含符合您定义的规则的资源(如计算实例)(因此,随着匹配资源的创建或删除,成员资格可以动态变化)。这些实例作为“主体”行动者,可以根据您为动态组编写的策略对服务进行API调用。

策略是一个文档,指定谁可以访问哪些资源以及如何访问。访问权限在组和区域层面授予,这意味着您可以编写一个策略,为一个组在特定区域内或对租约本身提供特定类型的访问权限。


建议

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


部署

通过资源管理器部署架构时,尽量保留默认值,除非确实需要明确更改。


考虑事项

在部署解决方案和使用应用程序时,请考虑以下方面:


部署解决方案

设置所需动态组和相关策略需要管理员权限。授权OCI DevOps Git存储库和在OKE设置秘密需要OCI用户名和认证令牌。


使用应用程序

可以在创建的DevOps项目中通过修改queue_automation.py程序开始处的变量以及设置OKE中的OCIR秘密来调整Python应用程序的参数。


部署

这次部署的Terraform代码以及Python应用程序源代码都可在GitHub上找到。

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

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

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

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

5.等待作业完成,并审查计划。如需进行任何更改,请返回到堆栈详情页面,点击编辑堆栈,并进行必要的更改。然后,再次运行计划操作。

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


Agilewing让你的Oracle云旅程更加便捷高效

Agilewing作为Oracle的高级合作伙伴,彻底改变了用户体验Oracle云服务的方式。Agilewing提供简化的开户流程和一流的技术支持,使用户无需复杂繁琐的开户流程,以及复杂操作。一站式服务,快速完成云服务开户启用,就可以轻松获取Oracle云的各项服务。

Agilewing的AgileCDN融合CDN服务,完美结合OCI云基础服务,为业务国际化提供全球内容加速解决方案。客户可以享受到超过2800个全球POP节点和7000多个直连点带来的网络效率和稳定性。这意味着无论企业的业务遍布全球哪个角落,Agilewing都能确保其高效运行。

Agilewing利用Oracle云的优势,帮助云服务搭建、云迁移和业务出海,免去了自行研究和摸索Oracle云服务的复杂过程。这种合作模式为客户提供了经济高效的解决方案,使他们能够专注于自己的核心业务,同时享受Oracle云带来的高性能和安全性。

甲骨文云服务是一片充满潜力的领域,它的高性能、安全性和全球统一服务标准为企业提供了无限可能。通过Agilewing的专业服务,普通用户和企业都可以轻松进入这个新世界,充分利用Oracle云的所有优势。现在,通过Agilewing开始您的Oracle云服务之旅,探索这个技术革新和高效能的新时代。


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

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

微信公众号

微信技术交流社群: