Oracle Base Database Service로 Azure DevOps CI/CD 파이프라인 구축

분할 스택은 워크로드가 두 클라우드에 배포될 때, 이 경우 애플리케이션은 Microsoft Azure에서 배포되고 Oracle Database 서비스는 Oracle Cloud Infrastructure(OCI)에 배포됩니다.

애플리케이션 스택 간 스택은 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 Base Database Service를 사용하여 Azure DevOps CI/CD 파이프라인을 구축 및 배포하고 지원 가상 네트워킹 인프라 리소스를 구성하여 고성능 및 고가용성 솔루션을 위해 이 분할 스택 배포를 사용으로 설정할 수 있습니다.

주:

Oracle Database 23c는 이제 Oracle Base Database Service에서 제공됩니다. Oracle Database 23c는 모든 데이터 기반 애플리케이션을 손쉽게 개발하고 실행할 수 있도록 Oracle의 사명을 가속화합니다. 핵심 분야로는 JSON, 그래프, 마이크로서비스 및 개발자 생산성이 있습니다.

Oracle Database 23c는 개발자의 역량을 강화하고 개발자 생산성을 높이기 위해 데이터베이스에서 AI(인공 지능) 사용을 단순화하는 것을 목표로 하고 있으며, 고가용성, 뛰어난 성능 및 강력한 보안 기능으로 알려진 데이터베이스의 다양한 개선 사항과 함께합니다.

구조

이 참조 아키텍처에서는 Oracle Base Database Service와 함께 Azure DevOps를 사용하여 CI/CD 파이프라인을 구축하고 배포합니다.

애플리케이션 및 데이터베이스 소스 코드는 Azure DevOps 코드 저장소 또는 Github 또는 이와 유사한 곳에서 호스팅됩니다. 사용자가 CI 파이프라인을 트리거하는 코드 저장소에 변경사항을 커밋합니다. 이 단계에는 단위 테스트 실행, 통합 테스트, 정적 코드 분석, Azure AKS(Kubernetes Service) 클러스터 내 컨테이너 테스트가 포함되어 배포 준비 여부를 확인합니다.This phase includes running unit tests, integration tests, static code analysis, and also testing of containers within the Azure Kubernetes Service (AKS) cluster to verify deployment readiness.

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

이 구조의 핵심 구성 요소는 Oracle Database의 수명 주기를 관리하여 프로비저닝, 확장, 백업, 업데이트 및 유지 관리와 같은 작업을 자동화하는 Oracle Database Operator입니다. 이 통합은 효율적인 데이터베이스 관리와 AKS의 마이크로서비스와 Oracle Database 간의 원활한 상호작용을 보장합니다. 마이크로서비스는 Azure ExpressRoute 및 Oracle FastConnect를 사용하여 상호 연결을 통해 Oracle Database에 안전하게 연결하고, Azure Key Vault를 통해 관리되는 자격 증명을 통해 안전하고 신뢰할 수 있는 데이터베이스 연결을 유지합니다.

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

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



oracle-base-database-azure-arch-oracle.zip

아키텍처의 구성 요소는 다음과 같습니다.

  • 테넌시

    테넌시는 Oracle Cloud Infrastructure에 등록할 때 Oracle이 Oracle Cloud 내에서 설정하는 격리된 보안 분할영역입니다. Oracle Cloud에서 테넌시 내의 리소스를 생성, 구성 및 관리할 수 있습니다. 테넌시는 회사 또는 조직과 동의어입니다. 일반적으로 회사는 단일 테넌시를 가지며 해당 테넌시 내의 조직 구조를 반영합니다. 일반적으로 단일 테넌시는 단일 구독과 연관되며, 단일 구독에는 일반적으로 하나의 테넌시만 포함됩니다.

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라고 하는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과는 독립적이며, 거리는 국가 또는 대륙에 걸쳐 분리될 수 있습니다.

  • 구획

    구획은 Oracle Cloud Infrastructure 테넌시 내의 영역 간 논리적 분할 영역입니다. 구획을 사용하여 Oracle Cloud에서 리소스를 구성하고, 리소스에 대한 액세스를 제어하고, 사용 할당량을 설정합니다. 지정된 구획의 리소스에 대한 액세스를 제어하려면 리소스에 액세스할 수 있는 사용자 및 수행할 수 있는 작업을 지정하는 정책을 정의합니다.

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원이나 냉각과 같은 인프라나 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 특정 가용성 도메인에서 실패하는 경우 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.

  • 결함 도메인

    장애 도메인은 가용성 도메인 내의 하드웨어와 인프라 그룹입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 결함 도메인이 3개 있습니다. 여러 장애 도메인에 리소스를 배포할 때 애플리케이션은 장애 도메인 내의 물리적 서버 장애, 시스템 유지 관리 및 전원 장애를 견딜 수 있습니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN은 사용자가 네트워크 환경을 완전히 제어할 수 있도록 합니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 영역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드에 있는 여러 서버로 트래픽을 자동으로 배포합니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에 들어오고 나가야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

  • 서비스 게이트웨이

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

  • FastConnect

    Oracle Cloud Infrastructure FastConnect는 데이터 센터 및 Oracle Cloud Infrastructure 간 전용 개인 연결을 생성할 수 있는 쉬운 방법을 제공합니다. FastConnect는 인터넷 기반 연결에 비해 더 높은 대역폭 옵션과 더 안정적인 네트워킹 환경을 제공합니다.

  • Oracle Base Database Service

    Oracle Base Database ServiceOracle Cloud Infrastructure(OCI) 데이터베이스 서비스로, 모든 기능을 갖춘 Oracle 데이터베이스를 가상 머신에 구축, 확장 및 관리할 수 있습니다. Oracle Base Database Service는 로컬 스토리지 대신 OCI Block Volumes 스토리지를 사용하며, Oracle RAC(Oracle Real Application Clusters)를 실행하여 가용성을 개선할 수 있습니다.

  • 객체 스토리지

    오브젝트 스토리지를 사용하면 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 정형 및 비정형 데이터에 빠르게 액세스할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 안정성의 저하 없이 스토리지를 원활하게 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보관하고 거의 액세스하지 않는 "콜드" 스토리지에는 아카이브 스토리지를 사용합니다.

  • Identity and Access Management (IAM, ID 및 액세스 관리)

    Oracle Cloud Infrastructure Identity and Access Management(IAM)는 Oracle Cloud Infrastructure(OCI) 및 Oracle Cloud Applications용 액세스 제어 플레인입니다. IAM API 및 사용자 인터페이스를 통해 ID 도메인 및 ID 도메인 내의 리소스를 관리할 수 있습니다. 각 OCI IAM ID 도메인은 독립형 ID 및 액세스 관리 솔루션 또는 다른 사용자 모집단을 나타냅니다.

  • 감사

    Oracle Cloud Infrastructure Audit 서비스는 지원되는 모든 Oracle Cloud Infrastructure 공용 애플리케이션 프로그래밍 인터페이스(API) 끝점에 대한 호출을 로그 이벤트로 자동 기록합니다. 현재 모든 서비스는 Oracle Cloud Infrastructure Audit을 통한 로깅을 지원합니다.

이 아키텍처는 다음과 같은 Microsoft Azure 구성요소를 지원합니다.

  • Microsoft Azure VNet 및 서브넷

    Microsoft Azure Virtual Network(VNet)는 Azure에서 개인 네트워크를 위한 기본 구성 요소입니다.Microsoft Azure Virtual Network (VNet) is the fundamental building block for your private network in Azure. VNet를 사용하면 Azure VM(가상 머신)과 같은 여러 유형의 Azure 리소스가 서로, 인터넷 및 온프레미스 네트워크와 안전하게 통신할 수 있습니다.

    Azure에서 VNet를 정의합니다. VNet 생성 후 추가할 수 있는 겹치지 않는 CIDR 블록 서브넷이 여러 개 있을 수 있습니다. VNet를 서브넷으로 분할하여 영역 또는 가용성 영역으로 범위를 지정할 수 있습니다. 각 서브넷은 VNet에 있는 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. VNet를 사용하여 네트워크 수준에서 Azure 리소스를 논리적으로 격리합니다.

  • Virtual network gateway(가상 네트워크 게이트웨이)

    가상 네트워크 게이트웨이는 사용자가 지정한 게이트웨이 유형에 따라 공용 인터넷을 통해 또는 ExpressRoute를 사용하여 Azure VNet와 Azure 외부 네트워크 간의 트래픽을 허용합니다. 이 네트워크 게이트웨이는 Oracle Database Service for Microsoft Azure 네트워크 링크에 사용되지 않습니다. 대신 Azure용 OracleDB를 피어링한 VNet에서 온프레미스에 대한 네트워크를 관리하는 데 사용할 수 있습니다.

  • Microsoft Azure 경로 테이블(사용자 정의 경로 - UDR)

    경로 테이블은 Azure 서브넷, VNets 및 Azure 외부 네트워크 간에 트래픽을 전달합니다.

    가상 경로 테이블에는 서브넷에서 일반적으로 게이트웨이를 통해 VNet 외부의 대상으로 트래픽 경로를 지정하는 규칙이 포함되어 있습니다. 경로 테이블은 VNet의 서브넷과 연관됩니다.

  • Microsoft Azure 가용성 도메인

    Azure 가용성 도메인 또는 가용성 세트는 가상 머신의 논리적 그룹입니다.Azure Availability Domain, or availability set, is a logical grouping of virtual machines.

권장사항

다음 권장 사항을 시작점으로 사용합니다. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • VCN

    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는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.

  • Cloud Guard

    Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의하여 사용자정의 감지기 및 응답기 레시피를 생성합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 경고에 대해 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 가시성이 공용으로 설정된 오브젝트 스토리지 버킷을 감지할 수 있습니다.

    테넌시 레벨에서 Cloud Guard를 적용하여 가장 광범위한 범위를 다루고 여러 구성을 유지 관리하는 데 드는 관리 부담을 줄입니다.

    관리되는 목록 기능을 사용하여 감지기에 특정 구성을 적용할 수도 있습니다.

  • 보안 영역

    최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle에서 정의한 보안 정책 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.

  • NSG(Network Security Groups)

    NSG를 사용하여 특정 VNIC에 적용되는 수신 및 송신 규칙 세트를 정의할 수 있습니다. NSG를 사용하면 VCN의 서브넷 아키텍처와 애플리케이션의 보안 요구사항을 분리할 수 있으므로 보안 목록 대신 NSG를 사용하는 것이 좋습니다.

  • 코드형 인프라(IaC)

    Terraform을 사용하여 코드형 인프라를 구현하여 Azure 리소스 및 Oracle Base Database Service를 배포하는 것을 고려할 수 있습니다.

고려사항

이 참조 아키텍처 배포를 계획할 때는 다음 사항을 고려하십시오.

  • 프로비저닝 전에 적절한 Oracle Base 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 서유럽어(네덜란드 암스테르담에 있음)의 애플리케이션과 네덜란드 북서부(암스테르담)의 OCI의 Oracle Database가 있습니다. 지역은 하나 이상의 가용성 도메인으로 구성된 지역화된 지리적 영역입니다. 지역은 다른 지역과는 별개이며, 거리는 국가 또는 대륙을 가로질러 분리할 수 있습니다.

  • 가용성

    Oracle Base Database Service는 내장된 Oracle 모범 사례 기능을 제공합니다. 클라우드 자동화를 사용하여 최고의 성능, 가용성 및 보안을 위해 데이터베이스를 배포하면 가장 높은 서비스 수준을 제공하도록 시스템이 최적으로 구성됩니다. Oracle RAC를 자동으로 배포하여 Oracle Base Database Service 클라우드 플랫폼에서 실행되도록 조정된 확장 가능한 고가용성 데이터베이스를 제공합니다. Oracle RAC는 여러 데이터베이스 인스턴스에 작업을 분산시켜 계획되지 않은 장애로부터 보호합니다. 또한 온라인 상태를 유지하는 다른 서버로 유지 관리가 진행되도록 서버에서 자동으로 작업을 마이그레이션하여 유지 관리 작업에 대한 다운타임을 제거합니다.

    Oracle Data Guard는 실시간 Disaster 보호를 제공합니다. 기본 데이터베이스 또는 데이터 센터가 손실된 경우 Oracle Data Guard에 의해 자동으로 유지 관리되는 대기 사이트로 작업 로드를 복구할 수 있습니다. Oracle Base Database Service를 사용하면 클라우드 자동화를 통해 단일 API 호출 또는 몇 번의 UI 마우스 클릭만으로 Oracle Data Guard를 간편하게 활성화할 수 있습니다. 마찬가지로 자동화는 기본 데이터베이스를 재해 복구 사이트로 전환, 다시 전환, 페일오버 후 기본 데이터베이스 복원과 같은 중요한 사용 사례를 지원합니다.

    Oracle Base Database Service는 모든 Oracle Maximum Availability(MAA) 기술을 지원하여 클라우드의 Oracle 데이터베이스에 대한 고가용성 청사진을 형성합니다.

확인

Authors: Leo Alvarado, Suzanne Holliday, Paul Parkinson