使用 Oracle API Gateway 连接多云微服务
通过 Oracle API Gateway 服务,您可以发布具有专用端点(可从您的网络访问)的 API,如果您希望这些端点接受互联网流量,则可以使用公共 IP 地址公开这些端点。
在创建企业解决方案时,您可能会发现,由于特定需求或团队对云供应商的偏好,解决方案的不同部分已部署在不同的云中(甚至在内部部署中)。例如,扩展 Office 365 的服务可能已部署在 Azure 上,但 ERP 等核心服务可能驻留在 OCI 上。
如果您随后希望向合作伙伴公开其中某些服务作为 API,则不希望尝试在不同的云中运行多个网关。在不同的云中拆分 API 可能会让 API 使用者感到困惑 - 更不用说风险,让用户更有机会进行更改。此外,如果在使用 API 时存在某种限制或控制,则管理此类控制将变得非常困难。在这种情况下,您可以通过 Oracle API 网关将多个后端服务链接到单个合并 API 端点。
Oracle API Gateway 服务与 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 集成,通过本机 Oracle Cloud Infrastructure (OCI) 身份功能提供轻松验证。在不同的云上运行服务(例如 OCI、Oracle SaaS、任何第三方云:例如 Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Computing 等)时,您可以使用 Oracle API Gateway 向服务客户端公开所有这些服务。
- 支持多云架构:避免供应商锁定、满足合规性要求、提高弹性、灵活性和风险管理。允许用户在任何云上运行服务后端以满足合规性要求(不会锁定到单个云供应商),但无论后端服务在何处运行,仍会向客户端公开统一端点。
- 允许在不同的云上运行不同的服务;提供统一的端点,而不考虑后端的实施位置。
- 允许向 API 客户端提供统一端点,而不考虑后端的实施位置。有时,法规可能会规定后端可以在何处部署,而 Oracle API Gateway 可确保客户端不受影响。
使用 Oracle API Gateway 有助于应对以下挑战:
客户质询 | Oracle API Gateway 解决方案 |
---|---|
使用统一端点在不同的云中实施多云架构并运行不同的微服务 |
|
微服务可以进行内部更改,并且还可以从一个云迁移到另一个云 | 已在其他云上运行的微服务可以继续执行此操作(例如,基于 Microsoft 的应用可以继续在 Microsoft Azure 上运行) |
利用这些微服务的客户端应用需要统一无中断地访问在不同云上运行的所有微服务 | 在不同云上运行的所有微服务都可以使用 OracleAPI 网关向客户端公开。 |
体系结构
此参考架构展示了如何使用 Oracle API Gateway 连接在 OCI 和其他云(或数据中心,例如 OCI、Oracle SaaS、任何第三方云或内部部署网络)上运行的服务,并将这些服务公开给您的服务客户端。
下图说明了此参考体系结构的数据流。
oci-multicloud-api-gateway-flow-oracle.zip
- 在第三方云上的虚拟机上运行的容器化服务和服务。
- Oracle SaaS 应用(例如 Oracle Fusion Cloud Applications 或 Oracle Fusion Cloud Enterprise Performance Management )(可使用 Oracle 集成等服务进行集成)。
- Oracle Autonomous Database 服务
- 云原生服务,例如 OCI 功能和容器引擎 for Kubernetes (OKE)。
- 内部部署应用(使用 OCI VPN 或 FastConnect 连接)。例如,在数据中心运行的应用程序。
- 基于 Internet 的客户机。例如,网页和移动应用通过互联网访问服务。
建立正确的网络连接后,OCI API 网关可以连接到不同的后端服务提供商,抽象这些服务的复杂性(根据需要),并公开服务客户端可以轻松使用的服务 API。
下图说明了此参考体系结构。
oci-multicloud-api-gateway-arch-oracle.zip
该体系结构具有以下组成部分:
- 区域
Oracle Cloud Infrastructure 区域是一个局部地理区域,包含一个或多个称为可用性域的数据中心。区域独立于其他区域,广阔的距离可以将其分开(跨国家甚至大陆)。
- 可用性域
可用性域是区域中的独立独立数据中心。每个可用性域中的物理资源与提供容错能力的其他可用性域中的资源隔离。可用性域不共享基础设施(例如电源或冷却设备)或内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 虚拟云网络 (VCN) 和子网
VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后对其进行更改。您可以将 VCN 细分为多个子网,这些子网可以限定到区域或可用性域。每个子网包含一系列不与 VCN 中的其他子网重叠的连续地址。创建后可以更改子网的大小。子网可以是公共子网,也可以是专用子网。
- Oracle Cloud Applications
我们全面的 SaaS 应用云套件为企业资源计划、供应链管理和人力资本管理以及广告和客户体验等重要业务职能提供了一致的流程和单一信息源。这些应用可帮助您改善客户互动、提高业务敏捷性并更快地响应变化。
- 集成
Oracle Integration 是一项完全托管的服务,可用于集成应用、自动执行流程、深入洞察业务流程以及创建可视化应用。
- Autonomous Database
Oracle Cloud Infrastructure Autonomous Database 是一个完全托管的预配置数据库环境,可用于事务处理和数据仓库负载。您不需要配置或管理任何硬件,或安装任何软件。Oracle Cloud Infrastructure 可处理数据库创建以及备份、打补丁、升级和调优数据库。
- API 网关
使用 Oracle API Gateway,您可以发布具有专用端点的 API,这些端点可通过网络访问,并且您可以根据需要向公共互联网公开。端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。
- 站点到站点 VPN
站点到站点 VPN 可以在内部部署网络与 Oracle Cloud Infrastructure 中的 VCN 之间建立 IPSec VPN 连接。IPSec 协议套件在将数据包从源传输到目标之前加密 IP 通信,并在到达时解密通信。
-
Oracle Cloud Infrastructure FastConnect 提供了在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简便方式。FastConnect 与基于 Internet 的连接相比,可提供更高的带宽选项和更可靠的网络体验。
- 函数
Oracle Functions 是一个完全托管的多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。
建议
- 虚拟云网络 (VCN)
创建 VCN 时,根据计划附加到 VCN 中的子网中的资源数,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
创建 VCN 时,根据计划附加到 VCN 中的子网中的资源数,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑您的流量流和安全要求。将特定层或角色中的所有资源连接到可充当安全边界的同一子网。
使用区域子网。
- 安全性
使用 Oracle Cloud Guard 主动监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用检测器配方,您可以定义这些配方来检查资源是否存在安全漏洞,以及监视操作员和用户进行有风险的活动。检测到任何配置错误或不安全活动时,Cloud Guard 会根据您可以定义的响应器配方建议更正操作并帮助执行这些操作。
对于需要最高安全性的资源,Oracle 建议您使用安全区域。安全区域是与基于优秀实践的安全策略的 Oracle 定义的配方关联的区间。例如,不能从公共互联网访问安全区域中的资源,必须使用客户管理的密钥加密资源。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。
考虑事项
部署 Oracle API Gateway 时,请考虑以下选项。
- 性能
OCI API 网关通过与外部高速缓存服务器(例如 Redis 或 KeyDB 服务器)集成来支持响应缓存,这有助于避免在后端服务上进行不必要的加载。高速缓存响应时,如果收到类似的请求,可以通过从响应高速缓存检索数据而不是将请求发送到后端服务来完成响应。这样可以减少后端服务的负载,从而有助于提高性能和降低成本。
OCI API 网关还会缓存 Auth 令牌(基于其离开 TTL 的时间),减少身份提供商的负载并提高性能。
- 安全性
OCI 云服务使用 IAM 策略,例如允许 API 网关调用函数。API 网关还可以使用 OAuth 验证和授权控制访问。IAM 允许通过 IAM 联合进行身份验证和授权 - 因此,API 网关有权针对各种服务和身份验证设置进行身份验证。
- 高可用性
请考虑根据您的部署需求和区域来使用高可用性选项。这些选项包括在一个区域中的多个可用性域之间分配资源,以及在可用性域内的容错域中分配资源。对于在单个可用性域中部署的工作负载,容错域具有出色的可恢复性。要在应用层实现高可用性,请在不同的容错域中部署应用服务器,并使用负载平衡器在应用服务器上分配客户端流量。