Oracle Database@Azure 中使用 Oracle Exadata Database Service 构建 Azure DevOps 管道

了解如何使用 Oracle Database@Azure 中的 Oracle Exadata Database Service 构建 Microsoft Azure CI/CD 管道,以释放 Oracle Database 的出色性能、高可用性和可扩展性,包括 Oracle Real Application Clusters (Oracle RAC) 和 Azure 应用的安全性。这使应用程序开发人员能够使用 Azure DevOps 和 Oracle Exadata Database Service on Dedicated Infrastructure 构建和部署 Microsoft Azure 管道,同时将 Oracle Exadata Cloud Infrastructure 驻留在 Azure 数据中心,与 Microsoft Azure DevOps 管道相邻运行,以实现尽可能低的延迟。

使用须知

要利用此引用体系结构,需要以下各项:
  • Microsoft Azure DevOps
  • Microsoft Azure 管道
  • 版本控制系统:Azure Repos Git、GitHub 和 TFVC
  • Microsoft Azure Kubernetes 服务 (AKS)
  • 使用以下内容配置 Oracle Database@Azure
    • 访问 Azure 订阅和目录
    • 访问 Oracle Cloud Infrastructure (OCI) 租户
    • Azure 和 Oracle 云之间的主动 Oracle Database@Azure 多云链接

在预配 Oracle Database@Azure 之前,请确保您具有足够的 Oracle Exadata Database Service 限制和 OCI 服务限制:

  1. 在 OCI 菜单中,单击监管和管理
  2. Tenancy Management(租户管理)下,单击 Limits(限制)、Quotas and Usage(限额和使用情况)
  3. 服务下拉菜单中,选择数据库

体系结构

此架构展示了如何使用 Azure DevOps 和 Oracle Exadata Database Service on Dedicated Infrastructure 构建和部署 Microsoft Azure 管道。

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

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

Kubernetes 集群可以包含多个云池,每个云池都连接到各自的可插入数据库 (PDB)。主数据库中的 PDB 部署在 Oracle Database@Azure 上,该 PDB 在 Azure 可用性区域的 Oracle Exadata Database Service on Dedicated Infrastructure 上运行。容器映像存储在 Azure 容器注册表中。用户通过公共负载平衡器对应用程序进行外部访问。

云自动化可简化 Oracle Exadata Cloud Infrastructure 和 Oracle 多租户数据库( CDBPDB )的大多数生命周期和管理任务。例如,添加服务器并纵向扩展和收缩 OCPU、创建数据库和数据库主目录、安排基础结构维护、更新和升级 VM 操作系统、Oracle Grid Infrastructure 和数据库、执行备份和恢复操作,甚至通过 Oracle Data Guard 启用灾难恢复保护。

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

下图说明了此引用体系结构。

下面是 exadata-database-service.png 的说明
插图 exadata-database-service.png 的说明

exadata-database-service-oracle.zip

该体系结构包含以下组件:

  • 区域

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

    Azure 区域是指一个或多个物理 Azure 数据中心(称为可用性区域)所在的地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

    Azure 和 OCI 区域是本地化的地理区域。对于 Oracle Database@Azure,Azure 区域连接到 OCI 区域,Azure 中的可用性区域 (AZ) 连接到 OCI 中的可用性域 (Availability Domain,AD)。选择 Azure 和 OCI 区域对以尽可能减少距离和延迟。

  • Azure 可用性区域

    可用性区域是区域中的物理上独立的数据中心,设计为具有容错能力。可用性区域足够近,可以与其他可用性区域建立低延迟连接。

    子网委派是 Microsoft 直接将托管服务(特别是平台即服务服务)注入到虚拟网络中的功能。

  • Microsoft Azure 虚拟网络

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

    子网委派是 Microsoft 直接将托管服务(特别是平台即服务服务)注入到虚拟网络中的功能。

  • Azure 管道

    Azure 管道是 Microsoft Azure 提供的 Azure DevOps 服务的一部分,用于自动构建、测试和部署代码项目,以实现持续集成、持续测试和持续交付。(CI-CD)

  • Azure Kubernetes 服务

    Azure Kubernetes Service (AKS) 是 Microsoft Azure 提供的托管 Kubernetes 服务,用于部署和管理容器化应用程序。一个 Kubernetes 集群可以包含多个 pod。

  • Kubernetes 控制层

    Kubernetes 控制层管理 Kubernetes 集群中 worker 节点和 pod 的资源。控制层组件检测和响应事件、执行调度和移动群集资源。

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service 在公有云中专门构建、优化的 Oracle Exadata Cloud Infrastructure 上提供经过验证的 Oracle Database 功能。内置的云自动化、弹性资源扩展、安全性和快速性能,适用于 OLTP、内存中分析和融合 Oracle Database 工作负载,可帮助简化管理和降低成本。

    Oracle Exadata Cloud Infrastructure 可为公有云提供更多 CPU 核心、更高的存储和更快的网络架构。Oracle Exadata 存储服务器包括 Exadata RDMA 内存 (XRMEM),可创建额外的存储层,从而提高整体系统性能。Exadata 将 XRMEM 与创新的 RDMA 算法相结合,可以绕过网络和 I/O 堆栈,从而消除昂贵的 CPU 中断和上下文切换。

    Oracle Exadata Cloud Infrastructure 可提高 100 Gbps 主动 - 主动基于融合以太网 (RoCE) 的远程直接内存访问内部网络结构的吞吐量,提供比前几代更快的互连,在所有计算和存储服务器之间实现极低延迟。

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service 是一项全托管式服务,旨在保护 Oracle 数据库免受数据丢失和网络威胁的影响。它提供更快的备份,降低数据库开销,通过经过验证的备份进行可靠的恢复,并实现实时保护,可在停机或勒索软件攻击不到一秒的时间内恢复。Oracle Database Zero Data Loss Autonomous Recovery Service 是自治恢复服务的零数据丢失选项。此服务提供集中式数据保护仪表盘,建议用于备份 Oracle 数据库。

  • Oracle Database@Azure

    Oracle Database@Azure 是部署在 Microsoft Azure 数据中心的 Oracle Cloud Infrastructure (OCI) 上运行的 Oracle Database 服务(Oracle Exadata Database Service on Dedicated InfrastructureOracle Autonomous Database Serverless )。该服务提供与 OCI 相同的功能和价格。在 Azure Marketplace 上购买该服务。

    Oracle Database@AzureOracle Exadata Database ServiceOracle Real Application Clusters (Oracle RAC)Oracle Data Guard 技术集成到 Azure 平台中。用户使用 Azure 控制台和 Azure 自动化工具管理服务。该服务部署在 Azure 虚拟网络 (VNet) 中,并与 Azure 身份和访问管理系统集成。OCI 和 Oracle Database 通用指标和审计日志在 Azure 中原生可用。该服务要求用户具有 Azure 订阅和 OCI 租户。

  • 对象存储

    通过 OCI Object Storage ,您可以访问任何内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据和丰富的内容,例如图像和视频。您可以直接从互联网或云平台安全地存储数据。您可以在不降低性能或服务可靠性的情况下扩展存储。

    将标准存储用于需要快速、立即和频繁访问的“热”存储。将归档存储用于长期保留、很少访问或很少访问的“冷”存储。

  • 服务网关

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

注意事项

规划部署此参考体系结构时,请考虑以下几点:

  • 更新 YAML 文件

    使用连接字符串更新 Azure Kubernetes 服务部署的 YAML 文件。您可以在 OCI 控制台中找到与数据库的连接字符串。

  • 性能
    • 建议使用 Oracle 多租户架构来构建微服务架构的持久层,实现数据边界上下文隔离、安全性和高可用性。

      使用 Oracle 多租户体系结构,Oracle Database 可以充当包含多个可插入数据库 (PDB) 的容器数据库 (Container Database,CDB)。这使具有各种数据类型和工作负载的微服务能够使用单个融合容器数据库。通过利用 PDB,Oracle 可以在 CDB 中提供隔离的微服务数据库,并允许在物理容器之间移动 PDB。微服务可以连接到在 Oracle Exadata Database Service on Dedicated Infrastructure 上运行的 Oracle Database 实例。

  • 安全
    • 考虑使用 Vault,而不是将应用程序的数据库连接信息、密码和 wallet(如果适用)存储在适用于 Azure Kubernetes 服务的 Kubernetes 密钥中。
  • 网络
    • 至少需要一个具有委派子网的 Oracle Database 网络附加的 Azure 虚拟网络 (VNet)。

    • 考虑在同一 VNet 中部署 Microsoft Azure Kubernetes 服务子网和 Oracle Exadata Database Service VM 集群客户端子网。

  • 可用性
    • 考虑使用和配置通用连接池 (Universal Connection Pool,UCP)、Oracle JDBC Driver 和 Oracle RAC,以利用 Oracle Database 的高可用性 (High Availability,HA) 功能在计划内和计划外停机期间提供连续服务,从而保持应用的持续可用性。

      UCP 支持所有 Oracle Database 配置和任务关键型功能(可用性、可扩展性和负载平衡),包括 Oracle RACOracle Data Guard 、Oracle Sharding、异步 API、运行时负载平衡、XA、应用程序连续性、Transaction Guard、透明应用程序故障转移、单客户机访问名称 (SCAN) 和前端到数据库驻留连接池 (DRCP)。对于 Oracle RAC 系统,可以从多个服务器节点平均访问任何 Oracle 数据库服务。如果某个节点或 Oracle RAC 群集的子集发生故障或脱机进行维护,则仍可通过剩余的活动节点访问数据库。

    • 以下是使用 Oracle Database 实现应用高可用性所需的构建块:

      1. 使用数据库服务
      2. 配置 URL 或连接字符串以实现高可用性
      3. 启用快速应用程序通知 (FAN)
      4. 为 Java 应用实现精简和持续的数据库可用性
    • 考虑按照建议使用 Oracle Database Autonomous Recovery Service 作为 Oracle Database 的备份目标。

      以下是存储备份的两个可用选项:在 Oracle Exadata Database Service 所在的同一 Azure 区域中,或与 Azure 区域关联的默认 OCI 区域中

浏览更多

详细了解 Oracle Cloud Infrastructure (OCI) 和 Microsoft Azure:

查看以下其他资源:

如果您没有 Oracle Cloud 账户或 Microsoft Azure 账户,请参阅以下内容以注册免费账户:

确认

  • 授权者Leo Alvarado, Paul Parkinson, Julien Silverston, Thomas Van Buggenhout, Tammy Bednar