-->
甲骨文云基础设施(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部署管道包括以下预定义阶段类型,供您在发布过程中使用:
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的高级合作伙伴,彻底改变了用户体验Oracle云服务的方式。Agilewing提供简化的开户流程和一流的技术支持,使用户无需复杂繁琐的开户流程,以及复杂操作。一站式服务,快速完成云服务开户启用,就可以轻松获取Oracle云的各项服务。
Agilewing的AgileCDN融合CDN服务,完美结合OCI云基础服务,为业务国际化提供全球内容加速解决方案。客户可以享受到超过2800个全球POP节点和7000多个直连点带来的网络效率和稳定性。这意味着无论企业的业务遍布全球哪个角落,Agilewing都能确保其高效运行。
Agilewing利用Oracle云的优势,帮助云服务搭建、云迁移和业务出海,免去了自行研究和摸索Oracle云服务的复杂过程。这种合作模式为客户提供了经济高效的解决方案,使他们能够专注于自己的核心业务,同时享受Oracle云带来的高性能和安全性。
甲骨文云服务是一片充满潜力的领域,它的高性能、安全性和全球统一服务标准为企业提供了无限可能。通过Agilewing的专业服务,普通用户和企业都可以轻松进入这个新世界,充分利用Oracle云的所有优势。现在,通过Agilewing开始您的Oracle云服务之旅,探索这个技术革新和高效能的新时代。
如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463 或 woshiwhw123
或者可以进入以下群组进行咨询:
微信公众号
微信技术交流社群: