Oracle Cloud Infrastructure DevOps 및 OCI 인스턴스를 사용하여 CI/CD 파이프라인 구축

클라우드에서 애플리케이션을 효율적으로 실행하려면 소프트웨어를 신속하게 제공해야 합니다. Oracle DevOps 서비스는 개발자를 위해 CI/CD(지속적인 통합 및 배포) 플랫폼을 제공합니다. DevOps 서비스를 사용하여 Oracle Cloud에서 소프트웨어 및 애플리케이션을 쉽게 구축, 테스트, 배포할 수 있습니다. DevOps 구축 및 배포 파이프라인은 변경 기반 오류를 줄이고 고객이 릴리스를 구축 및 배포하는 데 드는 시간을 단축합니다. 또한 이 서비스는 코드를 저장하고 외부 코드 저장소에 대한 연결을 지원하는 전용 Git 저장소를 제공합니다. 워크로드를 OCI(온프레미스 또는 기타 클라우드)로 마이그레이션하든, OCI에서 새로운 애플리케이션을 개발하든 관계없이 DevOps 서비스를 사용하여 소프트웨어 제공 라이프사이클을 간소화할 수 있습니다.

구조

이 참조 아키텍처는 최신 애플리케이션을 구축한 후 OCI 컴퓨팅 인스턴스에 배포하는 방법을 보여줍니다. 이 데모는 Graal Enterprise/Micronaut 지원 Java 애플리케이션을 기반으로 하는 애플리케이션을 사용합니다. 이 애플리케이션은 OCI 로드 밸런서를 통해 노출되므로 활성 배포 중 트래픽이 원활하게 이동됩니다.

다음 다이어그램에는 이 아키텍처가 설명되어 있습니다.

다음은 instance-group-deploy-arch.png에 대한 설명입니다.
instance-group-deploy-arch.png 그림에 대한 설명

이 아키텍처에는 다음 구성요소가 있습니다.
  • 지역

    OCI 리전은 가용성 도메인이라고 하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과는 독립적이며, 광대한 거리는 국가 또는 대륙 간에 분리될 수 있습니다. 이 아키텍처는 단일 지역을 사용합니다.

  • DevOps 프로젝트

    CI/CD 워크플로우를 구현하는 데 필요한 DevOps 리소스의 논리적 그룹입니다. DevOps 리소스는 아티팩트, 빌드 파이프라인, 배치 파이프라인, 외부 접속, 트리거 및 환경이 될 수 있습니다. DevOps 프로젝트를 통해 모든 DevOps 리소스에 대한 로깅, 모니터링 및 통지를 쉽게 사용으로 설정할 수 있습니다.

  • 빌드 파이프라인

    빌드 파이프라인은 소스 코드 저장소에서 커밋 ID를 가져와서 해당 소스 코드를 사용하여 빌드 지침을 실행합니다. 빌드 파이프라인은 소프트웨어 아티팩트 빌드, 테스트, 컴파일, OCI 저장소에 아티팩트 전달, 선택적으로 배치 트리거 등 빌드 프로세스에 대한 단계 집합을 정의합니다. 빌드 사양 파일에서 빌드 실행의 플로우와 지침을 정의합니다.

  • 구축 단계

    단계는 파이프라인 실행 중에 발생하는 개별 작업입니다. 여기에 언급된 다양한 빌드 단계는 다음과 같습니다.

    • 관리형 빌드 단계 - 소스 코드를 빌드하고 테스트하는 관리형 빌드 단계입니다.
    • 아티팩트 전달 단계-빌드 단계의 출력을 다양한 저장소로 푸시하는 단계입니다. 컨테이너 저장소에 대한 컨테이너 이미지와 마찬가지로 아티팩트 레지스트리에 대한 배포 매니페스트입니다.
    • 배치 호출 - 빌드 단계가 완료된 후 배치 파이프라인을 호출하는 단계이며, 관리되는 빌드 단계에서 배치 파이프라인 단계로 익스포트된 변수의 구문을 분석합니다.
  • 코드 저장소

    DevOps 서비스에서 호스트되는 전용 Git 저장소입니다. DevOps 코드 저장소를 사용하여 소스 코드를 저장, 관리, 개발할 수 있습니다.

  • 배치 파이프라인

    일련의 아티팩트를 대상 환경에 전달하고 배치하기 위한 일련의 단계입니다. 소프트웨어 릴리스의 플로우 및 논리는 직렬 또는 병렬로 실행할 수 있는 단계를 정의하여 제어할 수 있습니다.

  • 배치 단계

    단계는 파이프라인 실행 중에 발생하는 개별 작업입니다. 이 단계에서는 배치 파이프라인에서 컴퓨트 인스턴스 그룹 롤링 단계를 사용하는 중입니다. 그러면 그에 따라 OCI 컴퓨트 인스턴스에 애플리케이션이 설치됩니다.

  • DevOps 아티팩트

    DevOps 아티팩트는 애플리케이션을 구성하는 파일, 바이너리, 패키지, 매니페스트 또는 이미지에 대한 참조 또는 포인터입니다. 아티팩트를 생성할 때 실제 아티팩트의 소스 위치를 Oracle DevOps에 알립니다. DevOps는 OCI 컨테이너 이미지 레지스트리 및 OCI 아티팩트 레지스트리 저장소를 지원합니다.

  • 아티팩트 저장소

    아티팩트 저장소는 유사한 아티팩트를 그룹화할 저장소를 생성합니다. 저장소가 생성되면 아티팩트를 저장소에 업로드할 수 있습니다. 이러한 아티팩트는 대상 배치 환경으로 전달되는 텍스트 파일, 바이너리 및 배치 매니페스트의 모음입니다. 각 아티팩트에는 경로: 버전으로 구성된 이름이 있습니다. 경로는 아티팩트를 구성하는 문자열입니다.

  • OCI 로깅 및 통지 서비스

    OCI 로깅 서비스는 배치와 관련된 로그를 저장합니다. 배치 런타임 출력 및 배치의 최종 결과는 로그 항목으로 표시됩니다. OCI 통지 서비스는 배포 프로젝트의 최신 상태 및 해당 리소스에 대한 가시성을 제공하며 필요한 작업을 수행합니다. 예를 들어, 승인 대기 중인 배포 파이프라인의 단계와 같은 중요한 이벤트가 있을 때 통지를 받습니다. 통지 메시지를 받으면 DevOps 배치 파이프라인으로 이동하여 단계를 승인할 수 있습니다.

  • 배치 환경

    환경은 아티팩트가 배치되는 고객의 컴퓨팅 리소스 모음입니다. 환경은 함수, 컴퓨트 VM(가상 머신) 또는 베어메탈 인스턴스 또는 OKE 클러스터일 수 있습니다. Blue Green 배치는 OKE 클러스터 및 Compute 가상 시스템에서만 사용할 수 있습니다.

  • OCI 컴퓨팅 인스턴스

    Oracle Cloud Infrastructure는 고성능의 베어메탈 서버와 VM에서 경량 컨테이너에 이르기까지 모든 워크로드 요구에 적합한 빠르고 유연하며 경제적인 컴퓨트 용량을 제공합니다. OCI 컴퓨팅은 최적의 가격 대비 성능을 위해 유연한 VM 및 베어메탈 인스턴스를 제공합니다. 이 아키텍처는 Oracle Linux에서 OS 이미지로 OCI Compute를 사용합니다.

  • OCI 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing Service에서는 VCN(가상 클라우드 네트워크)의 일정한 시작점에서 도달 가능한 여러 서버로 트래픽이 자동으로 분산됩니다. 서비스에서는 선택한 공용(public) 또는 전용(private) IP 주소와 프로비저닝된 대역폭을 사용하는 로드 밸런서를 제공합니다.

권장 사항

Oracle Cloud Infrastructure DevOps 및 OCI 인스턴스를 사용하여 CI/CD 파이프라인을 구축할 때 다음 권장사항을 출발점으로 사용하십시오. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • 컴퓨트 구성

    이 아키텍처는 OKE 클러스터 노드에서 컴퓨트 호스트를 호스트할 최소 리소스와 함께 E3 또는 E4 플렉스 셰이프와 함께 Oracle Linux OS 이미지를 사용합니다. 애플리케이션에 더 많은 메모리 또는 코어가 필요한 경우 다른 구성을 선택할 수 있습니다.

  • VCN

    VCN을 생성할 때 VCN의 서브넷에 연결할 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정하십시오. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    이 아키텍처는 공용 VCN을 사용하여 Oracle Container Engine for Kubernetes를 호스트합니다. 전용 VCN을 사용할 수도 있습니다. 이 경우 NAT 게이트웨이를 사용하여 공용 인터넷을 통해 클러스터에 접근 권한을 부여하십시오.

  • 인스턴스 그룹

    인스턴스 그룹에 배포할 아키텍처를 선택하는 경우 테넌시에 생성된 원하는 구성의 새 컴퓨트 인스턴스가 제공됩니다.

  • 아티팩트 레지스트리

    이 구조는 인스턴스 그룹, OKE 및 함수 배치에 사용되는 소프트웨어 및 구성에 대한 아티팩트를 생성합니다. 이 아키텍처는 내부용으로 아티팩트 레지스트리 저장소를 생성합니다. 소프트웨어 바이너리, 텍스트 및 배치 구성이 아티팩트 레지스트리 저장소로 업로드되고 아티팩트 레지스트리 저장소에서 다운로드됩니다.

고려 사항

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

  • DevOps 지원 배포

    DevOps는 OKE, 컴퓨트 호스트 및 함수에 대한 배치를 지원합니다. 이 구조는 OKE 클러스터에 배치됩니다. 요구사항에 따라 다른 엔드포인트로 배포하는 것을 고려하십시오.

  • Linux 서포트

    컴퓨트 인스턴스에 대한 인스턴스 그룹 배치에는 Linux 호스트만 지원됩니다.

  • 배치된 아티팩트

    DevOps로 배치할 아티팩트는 OCI 아티팩트 레지스트리 또는 컨테이너 이미지 레지스트리 저장소에 있어야 합니다.

  • 응용 프로그램 그룹화

    모범 사례는 각 애플리케이션과 모든 마이크로서비스를 단일 프로젝트로 그룹화하는 것입니다.

배치

이 참조 아키텍처의 Terraform 코드는 Oracle Cloud Infrastructure Resource Manager에서 샘플 스택으로 제공됩니다. GitHub에서 코드를 다운로드하고 특정 요구 사항에 맞게 사용자 정의할 수도 있습니다.

  • Oracle Cloud Infrastructure Resource Manager의 샘플 스택을 사용하여 배치합니다.
    1. Oracle Cloud에 배치을 누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 스택을 배치할 지역을 선택합니다.
    3. 화면 프롬프트 및 지침에 따라 스택을 만듭니다.
    4. 스택을 생성한 후 Terraform 작업을 누르고 계획을 선택합니다.
    5. 작업이 완료될 때까지 기다린 후 계획을 검토합니다.

      변경하려면 [스택 세부정보] 페이지로 돌아가서 스택 편집을 누르고 필요한 변경을 수행합니다. 그런 다음 계획 작업을 다시 실행합니다.

    6. 추가 변경이 필요하지 않은 경우 스택 세부정보 페이지로 돌아가서 Terraform 작업을 누르고 적용을 선택합니다.
  • GitHub에서 Terraform 코드를 사용하여 배포합니다.
    1. GitHub으로 이동합니다.
    2. 로컬 컴퓨터에 저장소를 복제하거나 다운로드합니다.
    3. README 문서의 지침을 따릅니다.

수락

작성자: Rahul M.R.