使用 Oracle Exadata Database Service 构建 Azure DevOps CI/CD 管道

拆分堆栈是指在两个云之间部署工作负载,即在 Microsoft Azure 上部署应用,在 Oracle Cloud Infrastructure (OCI) 上部署 Oracle Database 服务。

应用程序堆栈到堆栈是指由 Azure 中的应用程序和数据库组成的一个完整堆栈与位于 OCI 中的另一个全堆栈(应用程序和 Oracle Database)互操作和共享数据。

出于各种业务和技术考虑,您可以选择跨 Oracle Cloud 和 Microsoft Azure 分配云工作负载。为了确保安全性并尽可能减少延迟,需要在 Oracle Cloud 和 Azure Cloud 环境之间实现安全互连。

Oracle 和 Microsoft 在特定区域创建了 Oracle Cloud Infrastructure 与 Microsoft Azure 之间的专用跨云连接 (Oracle Interconnect for Microsoft Azure )。Oracle Interconnect for Microsoft Azure 允许您设置跨云工作负载,而无需云之间的流量通过互联网传输。

因此,用户可以在 Oracle Cloud Infrastructure 上使用 Oracle Exadata Database Service on Dedicated Infrastructure 构建和部署 Azure DevOps CI/CD 管道,并配置支持的虚拟网络基础设施资源,以实现此拆分堆栈部署,从而实现高性能和高可用性解决方案。

体系结构

在此参考架构中,您将使用 Azure DevOps 和 Oracle Exadata Database Service on Dedicated Infrastructure 构建和部署 CI/CD 管道。

应用程序和数据库源代码托管在 Azure DevOps 代码库或 Github 或类似代码上。用户将更改提交到触发 CI 管道的代码资料档案库中。此阶段包括运行单元测试、集成测试、静态代码分析,以及测试 Azure Kubernetes Service (AKS) 集群中的容器以验证部署就绪。

测试完成后,构建管道将创建 Docker 映像并将其推送到 Azure 容器注册表。然后,这些构建构件将启动 CD 管道。在 CD 阶段,对象将部署到 AKS 中运行端到端和系统测试,以确保微服务在 Kubernetes 环境和 Oracle Database 中正常运行。然后,使用蓝色/绿色或金丝雀部署等策略启动暂存和生产环境,以实现新更改的零停机部署。

此架构的一个关键组件是 Oracle Database Operator,它管理 Oracle Database 的生命周期,自动执行预配、扩展、备份、更新和维护等任务。此集成可确保高效的数据库管理和 AKS 和 Oracle Database 中的微服务之间的无缝交互。微服务使用 Azure ExpressRoute 和 Oracle FastConnect 通过互连安全地连接到 Oracle Database,从而保持安全可靠的数据库连接,并通过 Azure Key Vault 管理凭证。

使用 Azure Monitor、OCI 和 Oracle Database 的 Unified Observability OpenTelemetry 框架等工具持续监视整个 CI/CD 进程的度量、日志和跟踪,该框架从位于 Azure 上的应用程序入口点、所有子系统以及 Oracle Database 提供跟踪,确保微服务和数据库的性能和可靠性。此方法可确保为在云原生环境中部署和管理现代应用提供强大、高效、可扩展的解决方案。

下图说明了此参考体系结构。



oracle-exadata-azure-arch-oracle.zip

体系结构具有以下组成部分:

  • 租户

    租户是 Oracle 在您注册 Oracle Cloud Infrastructure 时在 Oracle Cloud 中设置的安全隔离分区。您可以在您的租户内的 Oracle Cloud 中创建、组织和管理您的资源。租户是公司或组织的同义词。通常,公司将具有单个租户,并在该租户内反映其组织结构。单个租户通常与单个订阅关联,而单个订阅通常只有一个租户。

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化的地理区域,其中包含一个或多个称为可用性域的数据中心。区域独立于其他区域,远距离可以区分它们(跨国家甚至大陆)。

  • 区间

    区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源、控制对资源的访问以及设置使用限额。要控制对给定区间中资源的访问,您可以定义策略来指定哪些人可以访问资源以及他们可以执行哪些操作。

  • 可用性域

    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错功能。可用性域不共享基础设施(例如电源或冷却设备),也不共享内部可用性域网络。因此,一个可用性域出现故障不太可能影响区域中的其他可用性域。

  • 容错域

    容错域是可用性域内一组硬件和基础设施。每个可用性域具有三个具有独立电源和硬件的容错域。在多个容错域之间分配资源时,应用可以承受容错域内的物理服务器故障、系统维护和电源故障。

  • 虚拟云网络 (VCN) 和子网

    VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为多个子网,这些子网可以限定在某个区域或可用性域中。每个子网都包含一系列不与 VCN 中的其他子网重叠的地址。您可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 负载平衡器

    Oracle Cloud Infrastructure Load Balancing 服务提供从单个入口点到后端多个服务器的自动流量分配。

  • 安全列表

    对于每个子网,您可以创建安全规则来指定必须允许传入和传出子网的通信的源、目的地和类型。

  • 服务网关

    通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,并且从不通过互联网传输。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 提供了一种在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简单方式。与基于 Internet 的连接相比,FastConnect 提供了更高的带宽选项和更可靠的网络体验。

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service on Dedicated Infrastructure 在 OCI 上的 Oracle Exadata Cloud Infrastructure 上运行。对于那些想要在公有云中运行的人来说,这是在云中运行企业级数据库即服务的理想解决方案。您可以充分利用 Oracle Database 的强大功能和 Exadata 平台的强大功能。它专为您服务,但仍提供了 Oracle 管理基础设施、广泛的云自动化以及按使用付费的云经济性的所有云优势。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全、安全地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会在性能或服务可靠性方面出现任何下降。将标准存储用于“热”存储,以便您快速、立即和频繁地访问。将归档存储用于长时间保留的“冷”存储,很少或很少访问。

  • 身份和访问管理 (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的访问控制层。通过 IAM API 和用户界面,您可以管理身份域和身份域中的资源。每个 OCI IAM 身份域表示一个独立的身份和访问管理解决方案或不同的用户群体。

  • 审计

    Oracle Cloud Infrastructure Audit 服务将对所有受支持的 Oracle Cloud Infrastructure 公共应用编程接口 (API) 端点的调用自动记录为日志事件。目前,所有服务都支持 Oracle Cloud Infrastructure Audit 进行日志记录。

此架构支持以下 Microsoft Azure 组件。

  • Microsoft Azure VNet 和子网

    Microsoft Azure Virtual Network (VNet) 是 Azure 中专用网络的基本构建块。VNet 支持多种类型的 Azure 资源,例如 Azure 虚拟机 (VM),以安全地相互通信、互联网和内部部署网络。

    在 Azure 中定义 VNet。它可以具有多个不重叠的 CIDR 块子网,您可以在创建 VNet 后添加这些子网。您可以将 VNet 细分成子网,您可以将子网的范围扩展到区域或可用性区域。每个子网都包含一系列不与 VNet 中的其他子网重叠的连续地址。使用 VNet 可在网络级别以逻辑方式隔离 Azure 资源。

  • Virtual network gateway(虚拟网络网关)

    虚拟网络网关允许 Azure VNet 与 Azure 之外的网络之间的流量(通过公共 Internet 或使用 ExpressRoute),具体取决于您指定的网关类型。此网络网关不用于 Oracle Database Service for Microsoft Azure 网络链路。相反,您可以使用它来管理 VNet 中到内部部署的网络,在 Azure 中对 OracleDB 进行对等连接。

  • Microsoft Azure 路由表(用户定义的路由 - UDR)

    路由表在 Azure 子网、VNets 和 Azure 之外的网络之间直接通信。

    虚拟路由表包含用于将流量从子网路由到 VNet 以外目标(通常通过网关)的规则。路由表与 VNet 中的子网关联。

  • Microsoft Azure 可用性域

    Azure 可用性域或可用性集是虚拟机的逻辑分组。

推荐

使用以下建议作为起点。您的要求可能与此处介绍的体系结构有所不同。
  • VCN

    创建 VCN 时,请根据您计划附加到 VCN 中的子网的资源数确定所需的 CIDR 块数和每个块的大小。使用位于标准专用 IP 地址空间内的 CIDR 块。

    选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。

    创建 VCN 后,您可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑流量和安全要求。将特定层或角色内的所有资源连接到同一子网,该子网可以充当安全边界。

  • 安全

    使用 Oracle Cloud Guard 主动监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用可以定义的检测器配方来检查您的资源是否存在安全弱点,并监视操作员和用户是否有风险活动。检测到任何配置错误或不安全活动时,Cloud Guard 会根据您可以定义的响应器配方建议更正操作并帮助采取这些操作。

    对于需要最高安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,不能从公共 Internet 访问安全区域中的资源,并且必须使用客户管理的密钥对资源进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

  • Cloud Guard

    克隆和定制 Oracle 提供的默认配方以创建定制检测器和响应器配方。通过这些配方,您可以指定哪种类型的安全违规生成警告以及允许对它们执行哪些操作。例如,您可能希望检测可见性设置为公共的对象存储存储桶。

    在租户级别应用 Cloud Guard 以涵盖最广泛的范围并减轻维护多个配置的管理负担。

    您还可以使用托管列表功能将某些配置应用于检测器。

  • 安全区域

    对于需要最高安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,不能从公共 Internet 访问安全区域中的资源,并且必须使用客户管理的密钥对资源进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

  • 网络安全组 (NSG)

    可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而非安全列表,因为 NSG 支持您将 VCN 的子网体系结构与应用的安全要求分开。

注意事项

规划部署此引用体系结构时,请考虑以下几点。

  • 实现
    计划实施此解决方案时,请查看以下内容:
    • 在预配之前,请确保您具有足够的 Oracle Exadata Database Service 限制和 OCI 服务限制。有关详细信息,请参阅 OCI 服务限制请求提高服务限制
    • 规划网络拓扑:
      • 您至少需要一个可以与相应的 OCI 虚拟云网络 (VCN) 配对的 Azure 虚拟网络 (VNet)。
      • 任何 Azure VNets 和 OCI VCN 的 CIDR 块不得重叠。
    • Oracle Interconnect for Microsoft Azure 先决条件:
      • Oracle Cloud 账户。如果没有帐户,可以注册 Oracle Cloud Free Tier 帐户
      • Azure 账户。如果没有帐户,您可以注册 Azure 免费帐户
      • 根据此引用体系结构中所述的拓扑部署资源的所需权限和资源限额。
      • 收集 OCI 区域、Azure 区域、互连区域和吞吐量要求。
    • 网络

      Azure 中的应用程序和 OCI 中的 Oracle Database 必须位于同一地理区域。例如,Azure West European(位于荷兰阿姆斯特丹)和 Oracle Database in OCI(位于荷兰西北部)(阿姆斯特丹)的应用。区域是一个本地化的地理区域,它由一个或多个可用性域组成。区域独立于其他区域,远距离可以区分它们(跨国家或各大洲)。

  • 可用性

    Oracle Exadata Database Service on Dedicated Infrastructure 提供内置的 Oracle 优秀实践功能。使用云自动化部署您的数据库,以获得卓越的性能、可用性和安全性,并且您的系统将经过优化配置以提供最高服务级别。它自动部署 Oracle RAC,以提供可扩展的高可用性数据库,该数据库经过调优,可在 Oracle Exadata Database Service 云平台上运行。Oracle RAC 通过在多个数据库实例之间分配工作来防止计划外故障。此外,它通过自动将即将进行维护的工作迁移到其他保持联机状态的工作,消除了维护活动的停机时间。

    Oracle Data Guard 提供实时灾难保护。如果主数据库或数据中心丢失,您可以将工作负载故障转移到由 Oracle Data Guard 自动维护的备用站点。借助基于专用基础设施的 Oracle Exadata Database Service on Dedicated Infrastructure,您可以轻松地通过单个 API 调用或在 UI 中使用云自动化单击几下鼠标来启用 Oracle Data Guard。同样,自动化支持关键用例,例如将主数据库切换到灾难恢复站点、切换回主数据库以及在故障转移后重新插入主数据库。

    Oracle Exadata Database Service 支持所有 Oracle 高可用性 (MAA) 技术,构成了云端 Oracle 数据库的高可用性蓝图。

确认

Authors: Leo Alvarado, Suzanne Holliday, Paul Parkinson