Oracle Database@Azure에서 Oracle Exadata Database Service를 사용해 Azure DevOps 파이프라인 구축하기

Oracle Database@Azure에서 Oracle Exadata Database Service를 사용해 Microsoft Azure CI/CD Pipelines를 구축하는 방법을 확인해 보세요. Oracle Real Application Clusters(Oracle RAC) 및 Azure 애플리케이션을 위한 보안을 포함하여 최고의 Oracle Database 성능, 고가용성, 확장성을 누릴 수 있습니다. 이를 통해 애플리케이션 개발자는 Azure 데이터 센터에 상주하는 Oracle Exadata Cloud Infrastructure와 함께 Oracle Exadata Database Service on Dedicated Infrastructure와 함께 Azure DevOps를 사용하여 Microsoft Azure Pipelines를 구축 및 배포할 수 있으며, Microsoft Azure DevOps Pipelines와 근접하게 실행되어 대기 시간을 최소화할 수 있습니다.

시작하기 전에

이 참조 아키텍처를 활용하려면 다음이 필요합니다.
  • Microsoft Azure DevOps
  • Microsoft Azure 파이프라인
  • 버전 제어 시스템: Azure Repos Git, GitHub, TFVC.
  • AKS(Microsoft Azure Kubernetes Service)
  • 다음을 사용하여 Oracle Database@Azure를 구성합니다.
    • Azure 구독 및 디렉토리에 액세스
    • OCI(Oracle Cloud Infrastructure) 테넌시에 액세스
    • Azure와 Oracle 클라우드 간의 활성 Oracle Database@Azure 멀티클라우드 링크

Oracle Database@Azure를 프로비저닝하기 전에 적절한 Oracle Exadata Database Service 한도 및 OCI 서비스 한도가 있는지 확인하세요.

  1. OCI 메뉴에서 거버넌스 및 관리를 누릅니다.
  2. 테넌시 관리에서 제한, 할당량 및 사용량을 누릅니다.
  3. 서비스 드롭다운 메뉴에서 데이터베이스를 선택합니다.

구조

이 아키텍처는 Oracle Exadata Database Service on Dedicated Infrastructure와 함께 Azure DevOps를 사용해 Microsoft Azure Pipelines를 구축 및 배포하는 방법을 보여줍니다.

애플리케이션 및 데이터베이스 소스 코드는 Microsoft Azure DevOps 코드 저장소, GitHub 또는 이와 유사한 방식으로 호스팅됩니다. 사용자가 CI(지속적 통합) 파이프라인을 트리거하는 코드 저장소에 변경 사항을 커밋합니다. 이 단계에는 실행 단위 테스트, 통합 테스트, 정적 코드 분석 및 배포 준비 여부를 확인하기 위한 Azure Kubernetes Service(AKS) 클러스터 내의 컨테이너 테스트가 포함됩니다.

테스트가 완료되면 빌드 파이프라인이 Docker 이미지를 생성하고 이를 Azure 컨테이너 레지스트리에 푸시합니다. 그런 다음 이러한 아티팩트는 CD(지속적 전달) 파이프라인을 시작합니다. CD 단계에서 아티팩트는 Kubernetes 환경 및 Oracle Database 내에서 마이크로서비스가 올바르게 작동할 수 있도록 종단간 및 시스템 테스트가 실행되는 AKS에 배포됩니다. 그런 다음 Blue/Green 또는 Canary 배치와 같은 전략을 사용하는 스테이징 및 운용 환경이 새 변경사항의 다운타임 없이 배치되도록 시작됩니다.

Kubernetes 클러스터에는 각각 고유한 PDB(플러거블 데이터베이스)에 연결하는 여러 POD가 포함될 수 있습니다. 기본 데이터베이스의 PDB는 Azure 가용성 영역의 Oracle Exadata Database Service on Dedicated Infrastructure에서 실행되는 Oracle Database@Azure에 배포됩니다. 컨테이너 이미지는 Azure 컨테이너 레지스트리에 저장됩니다. 사용자는 공용 로드 밸런서를 통해 외부적으로 애플리케이션에 접근합니다.

클라우드 자동화는 Oracle Exadata Cloud Infrastructure 및 Oracle 멀티테넌트 데이터베이스(CDB, PDB)에 대한 대부분의 라이프사이클 및 관리 작업을 간소화합니다. 예를 들어 서버를 추가하고 OCPU를 확장 및 축소하고, 데이터베이스 및 데이터베이스 홈을 만들고, 인프라 유지보수 일정을 잡고, VM 운영체제, Oracle Grid Infrastructure 및 데이터베이스를 업데이트 및 업그레이드하고, 백업 및 복구 작업을 수행하고, Oracle Data Guard를 통해 재해 복구 보호를 사용으로 설정할 수 있습니다.

전체 CI/CD 프로세스의 측정지표, 로그 및 추적은 Azure Monitor, Oracle Cloud Infrastructure(OCI) 및 Oracle Database의 Unified Observability OpenTelemetry 프레임워크와 같은 도구를 사용하여 지속적으로 관찰됩니다. 이 프레임워크는 Azure, 모든 하위 시스템, Oracle Database에 상주하는 애플리케이션의 시작점에서부터 마이크로서비스 및 데이터베이스의 성능과 안정성을 보장합니다. 이 접근 방식은 클라우드 전용 환경에서 최신 애플리케이션을 배포하고 관리하기 위한 강력하고 효율적이며 확장 가능한 솔루션을 보장합니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

다음은 exadata-database-service.png에 대한 설명입니다.
그림 exadata-database-service.png에 대한 설명

exadata-데이터베이스-서비스-oracle.zip

구조에는 다음과 같은 구성 요소가 있습니다.

  • 지역

    Oracle Cloud Infrastructure 리전은 하나 이상의 데이터 센터, 호스팅 가용성 도메인을 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).

    An Azure region is a geographical area in which one or more physical Azure data centers, called availability zones, reside. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).

    Azure 및 OCI 리전은 지역화된 지리적 영역입니다. Oracle Database@Azure의 경우, Azure 리전은 OCI 리전에 연결되고, Azure의 가용성 영역(AZ)은 OCI의 가용성 도메인(AD)에 연결됩니다. Azure 및 OCI 리전 쌍을 선택하여 거리 및 대기 시간을 최소화합니다.

  • Azure 가용성 영역

    가용성 영역은 가용성과 내결함성을 보장하도록 설계된 영역 내에서 물리적으로 분리된 데이터 센터입니다. 가용성 영역은 다른 가용성 영역에 대한 대기 시간이 짧은 연결에 충분히 가깝습니다.

    서브넷 위임은 관리형 서비스, 특히 서비스형 플랫폼 서비스를 가상 네트워크에 직접 삽입하는 Microsoft의 기능입니다.

  • Microsoft Azure 가상 네트워크

    Microsoft Azure Virtual Network(VNet)는 Azure의 전용 네트워크에 대한 기본 빌딩 블록입니다. VNet를 사용하면 Azure VM(가상 머신)과 같은 여러 유형의 Azure 리소스가 서로, 인터넷 및 온프레미스 네트워크와 안전하게 통신할 수 있습니다.

    서브넷 위임은 관리형 서비스, 특히 서비스형 플랫폼 서비스를 가상 네트워크에 직접 삽입하는 Microsoft의 기능입니다.

  • Azure 파이프라인

    Azure Pipelines are part of the Azure DevOps service offered by Microsoft Azure to automatically builds, tests, and deploys code projects for continuous integration, continuous testing and continuous delivery. (CI-CD)

  • Azure Kubernetes 서비스

    AKS(Azure Kubernetes Service)는 컨테이너화된 애플리케이션을 배포하고 관리하기 위해 Microsoft Azure에서 제공하는 관리형 Kubernetes 서비스입니다. Kubernetes 클러스터에는 여러 POD가 포함될 수 있습니다.

  • Kubernetes 제어 플레인

    Kubernetes 제어 평면은 Kubernetes 클러스터 내 작업자 노드 및 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 Memory(XRMEM)가 포함되어 추가 스토리지 계층을 생성하여 전반적인 시스템 성능을 향상시킵니다. Exadata는 XRMEM과 네트워크 및 I/O 스택을 우회하는 혁신적인 RDMA 알고리즘을 결합하여 값비싼 CPU 인터럽트 및 컨텍스트 스위치를 제거합니다.

    Oracle Exadata Cloud Infrastructure는 100Gbps Active-Active Remote Direct Memory Access over Converged Ethernet(RoCE) 내부 네트워크 패브릭의 처리량을 늘려 모든 컴퓨트 서버와 스토리지 서버 간에 매우 짧은 대기 시간으로 이전 세대보다 빠른 상호 연결을 제공합니다.

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service는 데이터 손실 및 사이버 위협으로부터 Oracle 데이터베이스를 보호하기 위해 설계된 완전 관리형 서비스입니다. 데이터베이스 오버헤드 감소, 검증된 백업을 통한 안정적인 복구, 중단 또는 랜섬웨어 공격 후 1초 이내에 복구할 수 있는 실시간 보호를 통해 백업 속도를 높입니다. Oracle Database Zero Data Loss Autonomous Recovery Service는 Autonomous Recovery Service를 위한 제로 데이터 손실 옵션입니다. 이 서비스는 중앙화된 데이터 보호 대시보드를 제공하며 Oracle Databases를 백업하는 데 권장됩니다.

  • 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 Service, Oracle Real Application Clusters(Oracle RAC), Oracle Data Guard 기술을 Azure 플랫폼에 통합합니다. 사용자는 Azure 콘솔 및 Azure 자동화 도구를 사용하여 서비스를 관리합니다. 이 서비스는 Azure Virtual Network(VNet)에 배포되고 Azure ID 및 액세스 관리 시스템과 통합됩니다. OCI와 Oracle Database의 일반 메트릭 및 감사 로그는 Azure에서 기본적으로 사용할 수 있습니다. 이 서비스를 사용하려면 사용자에게 Azure 구독 및 OCI 테넌시가 있어야 합니다.

  • 오브젝트 스토리지

    OCI Object Storage는 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 구조적 및 비구조적 데이터에 대한 액세스를 제공합니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 데이터를 안전하고 안전하게 저장할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다.

    빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.

  • 서비스 게이트웨이

    서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.

고려사항

이 참조 아키텍처를 배치하려는 경우 다음 사항을 고려하십시오.

  • YAML 파일 업데이트

    접속 문자열을 사용하여 Azure Kubernetes Service 배치의 YAML 파일을 업데이트합니다. OCI 콘솔에서 데이터베이스에 대한 접속 문자열을 찾을 수 있습니다.

  • 성능
    • Oracle 다중 테넌트 아키텍처는 마이크로서비스 아키텍처의 지속성 계층, 데이터, 보안의 경계 컨텍스트 격리 및 고가용성을 위해 권장됩니다.

      Oracle 다중 테넌트 구조를 사용하는 경우 Oracle Database는 여러 PDB(플러그 가능한 데이터베이스)를 포함하는 CDB(컨테이너 데이터베이스)로 작동할 수 있습니다. 이를 통해 다양한 데이터 유형 및 워크로드를 보유한 마이크로서비스는 단일 컨버지드 컨테이너 데이터베이스를 사용할 수 있습니다. Oracle은 PDB를 활용하여 CDB 내에 마이크로서비스 격리 데이터베이스를 제공하고 물리적 컨테이너 전반에서 PDB를 이동할 수 있도록 지원합니다. 마이크로서비스는 Oracle Exadata Database Service on Dedicated Infrastructure에서 실행 중인 Oracle Database 인스턴스에 연결할 수 있습니다.

  • 보안
    • Azure Kubernetes 서비스용 Kubernetes 암호에 애플리케이션의 데이터베이스 접속 정보, 비밀번호 및 전자 지갑(해당하는 경우)을 저장하는 대신 저장소 사용을 고려해 보십시오.
  • 네트워크
    • Oracle Database 네트워크 연결에 위임된 서브넷이 있는 Azure 가상 네트워크(VNet)가 하나 이상 필요합니다.

    • Microsoft Azure Kubernetes Service 서브넷 및 Oracle Exadata Database Service VM Cluster 클라이언트 서브넷을 동일한 VNet에 배포하는 것이 좋습니다.

  • 가용성
    • UCP(Universal Connection Pool), Oracle JDBC Driver 및 Oracle RAC를 사용하고 구성하여 애플리케이션의 지속적인 가용성을 유지하기 위해 계획된 다운타임 및 계획되지 않은 다운타임 동안 지속적인 서비스를 위해 Oracle Database의 HA(고가용성) 기능을 활용합니다.

      UCP는 Oracle RAC, Oracle Data Guard, Oracle Sharding, Asynchronous API, Runtime Load Balancing, XA, Application Continuity, Transaction Guard, Transparent Application Failover, Single Client Access Name(SCAN), Front-end to Database Resident Connection Pool(DRCP) 등 모든 Oracle Database 구성 및 미션 크리티컬 기능(가용성, 확장성 및 로드 밸런싱)을 즉시 지원합니다. Oracle RAC 시스템을 사용하면 여러 서버 노드에서 Oracle 데이터베이스 서비스에 동일하게 액세스할 수 있습니다. Oracle RAC 클러스터의 노드 또는 하위 세트가 실패하거나 유지 관리를 위해 오프라인으로 전환되는 경우에도 나머지 활성 노드를 통해 데이터베이스에 계속 액세스할 수 있습니다.

    • 다음은 Oracle Database를 사용하여 Application High Availability를 구현하기 위한 구성 요소입니다.

      1. 데이터베이스 서비스 사용
      2. 고가용성을 위한 URL 또는 접속 문자열 구성
      3. FAN(Fast Application Notification) 사용
      4. Java 애플리케이션에 대한 지속적인 데이터베이스 가용성 구현 및 활성화
    • Oracle Database의 백업 대상으로 권장되는 대로 Oracle Database Autonomous Recovery Service를 사용하는 것이 좋습니다.

      다음은 백업 저장에 사용 가능한 두 가지 옵션입니다. 동일한 Azure 리전에서 Oracle Exadata Database Service가 상주하거나 Azure 리전과 연관된 기본 OCI 리전입니다.

추가 탐색

Oracle Cloud Infrastructure(OCI) 및 Microsoft Azure에 대해 자세히 알아보기:

다음 추가 리소스를 검토하십시오.

Oracle Cloud 계정 또는 Microsoft Azure 계정이 없는 경우 다음을 참조하여 무료 계정에 등록하십시오.

확인

  • 작성자: Leo Alvarado, Paul Parkinson, Julien Silverston, Thomas Van Buggenhout, Tammy Bednar