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

使用甲骨文云OCI API网关连接多云微服务:技术革新的桥

2024-02-29 原创文章

甲骨文API网关服务让您能够发布具有私有端点的API,这些端点在您的网络内部可以访问,并且如果您希望它们接收互联网流量,您还可以将它们暴露为公共IP地址。

在创建企业解决方案时,您可能会发现解决方案的不同部分已在不同的云(甚至是本地)部署,这可能是因为特定需求或团队对云服务商的偏好。例如,扩展Office 365的服务可能已部署在Azure上,但核心服务如ERP可能驻留在OCI上。

如果您希望将其中一些服务作为API向合作伙伴公开,您肯定不想尝试在不同的云中操作多个网关。将API分散在不同的云中可能会让API使用者感到困惑——更不用说增加了用户更改的可能性。此外,如果在使用API时涉及某种限制或控制,管理这种控制将非常具有挑战性。在这种情况下,甲骨文API网关使您能够将多个后端服务链接到一个统一的API端点。

甲骨文API网关服务与甲骨文云基础设施身份和访问管理(OCI IAM)集成,提供了与原生甲骨文云基础设施(OCI)身份功能的轻松身份验证。当您在不同的云上运行服务(如OCI、甲骨文SaaS、任何第三方云:如亚马逊Web服务(AWS)、微软Azure、谷歌云计算等),您可以使用甲骨文API网关将所有这些服务暴露给您的服务客户端。

使用甲骨文API网关提供以下好处:

  • 支持多云架构:避免供应商锁定,满足合规要求,提高弹性、灵活性和风险管理。使用户能够在任何云上运行服务后端,以满足合规性要求(不受单一云供应商的限制),但仍然向客户端暴露统一的端点,无论后端服务运行在何处。
  • 使不同的服务能够在不同的云上运行;无论后端如何实施,都提供统一的端点。
  • 无论后端如何实施,都能向API客户端提供统一的端点。有时候,立法可能会规定后端可以和不可以部署的地方,但甲骨文API网关确保客户不会受到影响。
  • 使用甲骨文API网关有助于应对以下挑战:

架构

本参考架构展示了如何使用甲骨文API网关连接在OCI和其他云(或数据中心,如OCI、甲骨文SaaS、任何第三方云或本地网络)上运行的服务,并将这些服务暴露给您的服务客户端。

下图展示了本参考架构的数据流程。

可能存在不同的服务提供商。例如:

  • 在第三方云上运行的容器化服务和虚拟机服务。
  • 甲骨文SaaS应用程序,如甲骨文Fusion Cloud应用程序或甲骨文Fusion Cloud企业绩效管理(可以通过诸如甲骨文集成之类的服务进行集成)。
  • 甲骨文自主数据库服务。
  • 云原生服务,如OCI函数和用于Kubernetes的容器引擎(OKE)。

这些服务可以被以下方面消费:

  • 本地应用程序(使用OCI VPN或FastConnect连接)。例如,在数据中心运行的应用程序。
  • 基于互联网的客户端。例如,通过互联网访问服务的网页和移动应用。
  • 一旦建立了适当的网络连接,OCI API网关可以连接到不同的后端服务提供商,根据需要抽象这些服务的复杂性,并暴露出易于服务客户端消费的服务API。

下图展示了本参考架构。

该架构包含以下组件:

地区

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

可用性域

可用性域是地区内独立的、自主的数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供故障容忍。可用性域不共享基础设施,如电力或冷却系统,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该地区的其他可用性域。

虚拟云网络(VCN)和子网

VCN是您在甲骨文云基础设施地区中设置的可定制、软件定义的网络。像传统数据中心网络一样,VCN使您能够完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改它们。您可以将VCN分割成子网,这些子网可以是地区范围或可用性域范围。每个子网由不与VCN中其他子网重叠的连续地址范围组成。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

甲骨文云应用程序

我们完整的SaaS应用程序云套件为最重要的商业功能——从企业资源规划、供应链管理和人力资本管理到广告和客户体验——提供了一致的流程和单一的真相来源。这些应用程序帮助您改善客户参与度,增加企业的敏捷性,并比以往更快地应对变化。

集成

甲骨文集成是一种完全托管的服务,允许您集成您的应用程序、自动化流程、了解您的业务流程,并创建可视化应用程序。

自主数据库

甲骨文云基础设施自主数据库是一种完全托管的、预配置的数据库环境,您可以用它来处理事务和数据仓库工作负载。您无需配置或管理任何硬件,也无需安装任何软件。甲骨文云基础设施负责创建数据库,以及备份、打补丁、升级和调优数据库。

API网关

甲骨文API网关使您能够发布具有私有端点的API,这些端点在您的网络内部可以访问,并且如有需要,您可以将它们暴露给公共互联网。这些端点支持API验证、请求和响应转换、CORS、身份验证和授权以及请求限制。

站点到站点VPN

站点到站点VPN在您的本地网络和甲骨文云基础设施中的VCN之间提供IPSec VPN连接。IPSec协议套件在源和目的地之间传输数据包之前对IP流量进行加密,并在数据包到达时解密。

甲骨文云基础设施FastConnect提供了一种在您的数据中心和甲骨文云基础设施之间创建专用、私有连接的简便方法。与基于互联网的连接相比,FastConnect提供了更高的带宽选项和更可靠的网络体验。

功能

甲骨文功能是一个完全托管的、多租户的、高度可扩展的、按需的功能即服务(FaaS)平台。它由Fn Project开源引擎提供支持。功能允许您部署您的代码,并直接调用它或响应事件触发它。甲骨文功能使用托管在甲骨文云基础设施注册表中的Docker容器。

建议

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

虚拟云网络(VCN)

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

安全性

使用甲骨文云卫士主动监控和维护您在甲骨文云基础设施中的资源的安全。云卫士使用您可以定义的检测器配方来检查您的资源是否存在安全弱点,并监控操作者和用户是否存在风险活动。当检测到任何配置错误或不安全活动时,云卫士会推荐纠正措施,并根据您可以定义的响应者配方协助采取这些措施。

对于需要最高安全性的资源,甲骨文建议您使用安全区。安全区是与基于最佳实践的甲骨文定义的安全策略配方相关联的隔间。例如,安全区中的资源不得从公共互联网访问,并且必须使用客户管理的密钥加密。当您在安全区中创建和更新资源时,甲骨文云基础设施会根据安全区配方中的策略验证操作,并拒绝违反任何策略的操作。

考虑因素

在部署甲骨文API网关时,考虑以下选项。

性能

OCI API网关通过与外部缓存服务器(如Redis或KeyDB服务器)集成,支持响应缓存,有助于避免对后端服务的不必要负载。当响应被缓存时,如果收到类似请求,可以通过从响应缓存中检索数据来完成请求,而不是将请求发送到后端服务。这减少了后端服务的负载,从而有助于提高性能和降低成本。

OCI API网关还缓存身份验证令牌(基于它们的生存时间TTL),减少了身份提供者的负载并提高了性能。

安全性

OCI云服务使用IAM策略,如允许API网关调用函数。API网关还可以使用OAuth身份验证和授权来控制访问。IAM允许认证和授权,可以通过IAM联合 - 因此API网关有能力对广泛的服务和身份验证设置进行认证。

高可用性

根据您的部署要求和地区,考虑使用高可用性选项。选项包括在地区内的多个可用性域中分布资源,以及在一个可用性域内的故障域中分布资源。故障域为在单个可用性域内部署的工作负载提供了最佳的弹性。为了在应用层实现高可用性,请在不同的故障域部署应用服务器,并使用负载均衡器分配客户端流量到应用服务器。