OCI DevOps를 사용하여 셸 단계를 통해 출처 및 컨테이너 인스턴스로 Helm 차트 배치

클라우드에서 애플리케이션을 효율적으로 실행하려면 소프트웨어를 신속하게 제공해야 합니다. Oracle Cloud Infrastructure DevOps(OCI DevOps) 서비스는 개발자를 위한 CI/CD(지속적인 통합 및 배포) 플랫폼을 제공합니다.

OCI DevOps 서비스를 사용하면 Oracle Cloud에서 소프트웨어 및 애플리케이션을 쉽게 구축, 테스트 및 배포할 수 있습니다. OCI DevOps 빌드 및 배포 파이프라인은 변경 중심의 오류를 줄이고 릴리스 구축 및 배포에 소요되는 시간을 단축합니다.

또한 OCI DevOps 서비스는 코드를 저장할 전용 Git 저장소를 제공하고 워크로드를 온프레미스 또는 기타 클라우드에서 Oracle Cloud Infrastructure(OCI)로 마이그레이션하거나 OCI에서 새 애플리케이션을 개발할 외부 코드 repositories.Whether에 대한 연결을 지원합니다. OCI DevOps 서비스를 사용하여 소프트웨어 제공 수명 주기를 간소화할 수 있습니다.

구조

이 참조 아키텍처에서는 OCI DevOps를 사용하여 클라우드 전용 애플리케이션 배포를 배포합니다. Oracle Container Engine for Kubernetes(OKE) 및 OCI 컨테이너 인스턴스는 OCI DevOps의 배포 대상으로 사용됩니다.

이 참조 아키텍처에서 다루는 주요 기능은 다음과 같습니다.

  • 출판 및 무결성 검사와 함께 Helm 차트 배치: Helm 패키지에 서명하고 배치 파이프라인을 통해 GNU Privacy guard 키를 사용하여 무결성을 검증합니다.
  • 셸 단계를 사용하여 OCI 컨테이너 인스턴스에 애플리케이션 배치: 셸 단계를 통해 배치 파이프라인에서 사용자정의 명령을 실행할 수 있습니다. 이 단계는 배치 파이프라인의 어느 지점에서나 추가할 수 있습니다. 이 참조 아키텍처에서는 Shell 단계를 사용하여 OCI 컨테이너 인스턴스에 애플리케이션을 배포합니다.
  • OCI 빌드 파이프라인의 파일 기반 실행 트리거: OCI DevOps에서 코드 저장소에 변경사항을 커밋하면 빌드 실행이 자동으로 트리거될 수 있습니다. 이를 사용하여 코드 변경 중 빌드 파이프라인이 실행되는 파일/폴더 집합의 제외 및 포함을 설정할 수 있습니다.
  • 사용자정의 빌드 실행기를 사용하여 관리 빌드 단계 실행: 사용자정의 빌드 실행기를 사용하면 빌드 실행기에 필요한 리소스를 지원하도록 빌드 실행기에 대해 원하는 OCPU 및 메모리를 설정할 수 있습니다.
  • OCI DevOps 빌드 파이프라인의 원격 상태 백엔드와 함께 Terraform 사용: S3 호환 OCI 오브젝트 스토리지 버킷은 Terraform 상태를 저장하는 원격 백엔드로 사용됩니다. Terraform은 OCI 빌드 파이프라인에서 실행됩니다. 이 파이프라인은 리소스 주체를 통해 사용으로 설정되므로 클라이언트가 정책을 기반으로 리소스 액세스를 제어할 수 있습니다.

다음 다이어그램은 이 참조 구조를 보여줍니다.



oci-devops-helm-shell-oracle.zip

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

  • 테넌시

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

  • 지역

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

  • 구획

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

  • 코드 저장소

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

  • 빌드 파이프라인

    빌드 파이프라인은 빌드 프로세스에 대한 일련의 단계(소프트웨어 아티팩트 빌드, 테스트 및 컴파일, OCI 저장소에 아티팩트 전달, 선택적으로 배치 트리거)를 정의합니다.

  • 관리형 빌드 단계

    관리형 빌드 단계는 빌드 지침을 실행하는 빠르고 확장 가능한 OCI DevOps 서비스 관리형 빌드 실행기로 소프트웨어를 빌드하고 테스트합니다. 이 참조 아키텍처에서는 기본 구성(사전 정의된 OCPU 및 메모리) 및 사용자정의 구성(OCPU 및 메모리의 사용자 정의 값)이 있는 빌드 단계를 사용합니다.

  • 아티팩트 전달 단계

    아티팩트 전달 단계는 아티팩트 또는 컨테이너 이미지를 OCI 컨테이너 레지스트리 또는 OCI 아티팩트 레지스트리로 푸시하고 관리형 빌드 단계를 게시하는 데 도움이 되는 빌드 단계 중 하나입니다.

  • 파이프라인 배치

    일련의 아티팩트를 대상 환경에 배치하는 일련의 단계입니다. 배치 파이프라인에는 순차적으로 또는 병렬로 실행되는 단계가 포함됩니다.

  • Helm 차트 배치 단계

    Helm은 Kubernetes용 오픈 소스 패키지 관리자로서 Kubernetes용으로 구축된 소프트웨어를 공유, 패키지화 및 배포할 수 있는 기능을 제공합니다. OCI DevOps 서비스는 Helm 차트를 OKE(Container Engine for Kubernetes) 클러스터에 배치할 수 있도록 지원합니다. 또한 Helm 차트 배치 단계는 배치 전에 Helm 차트의 무결성을 확인합니다.

  • 셸 배포 단계

    셸 단계를 통해 배치 파이프라인에서 사용자정의 명령을 실행할 수 있습니다. 이 단계는 배치 파이프라인의 어느 지점에서나 추가할 수 있습니다.

  • 컨테이너 인스턴스

    OCI 컨테이너 인스턴스는 서버를 관리하지 않고도 빠르고 쉽게 컨테이너를 실행할 수 있는 서버 미사용 컴퓨트 서비스입니다. 컨테이너 인스턴스는 가상 머신과 동일한 격리를 제공하는 컨테이너 워크로드에 최적화된 서버리스 컴퓨트에서 컨테이너를 실행합니다.

  • 저장소

    Oracle Cloud Infrastructure Vault를 사용하면 클라우드에서 리소스에 대한 액세스를 보호하는 데이터 및 비밀 자격 증명을 보호하는 암호화 키를 중앙에서 관리할 수 있습니다. 저장소 서비스를 사용하여 저장소, 키 및 암호를 만들고 관리할 수 있습니다.

  • 오브젝트 스토리지

    Oracle Cloud Infrastructure Object Storage 서비스는 안정적이고 비용 효율적인 데이터 내구성을 제공하는 인터넷급 고성능 스토리지 플랫폼입니다. 오브젝트 스토리지 서비스는 애널리틱스 데이터, 이미지 및 비디오와 같은 리치 콘텐츠를 포함하여 모든 콘텐츠 유형의 구조화되지 않은 데이터를 무제한으로 저장할 수 있습니다.

  • 로깅

    Oracle Cloud Infrastructure Logging 서비스는 테넌시의 모든 로그에 대해 확장성이 뛰어난 완전 관리형 단일 창입니다. 로깅을 사용하면 Oracle Cloud Infrastructure 리소스에서 로그에 액세스할 수 있습니다. 이러한 로그에는 리소스 작동 및 액세스 방식을 설명하는 중요한 진단 정보가 포함됩니다.

  • 통지

    Oracle Cloud Infrastructure Notifications 서비스를 사용하여 토픽 및 구독을 사용하여 메시지를 게시할 통신 채널을 설정합니다.

권장 사항

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

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

    전용 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.

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

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려하십시오. 보안 경계 역할을 할 수 있는 동일한 서브넷에 특정 계층 또는 역할 내의 모든 리소스를 연결합니다.

  • 컴퓨트 구성

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

  • 아티팩트 레지스트리

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

  • 컨테이너 이미지 레지스트리

    이 아키텍처는 내부용으로 레지스트리를 전용(private) Docker 레지스트리로 배치합니다. Docker 이미지는 레지스트리로 푸시되고 레지스트리에서 풀링됩니다. 또한 레지스트리를 공용 Docker 레지스트리로 사용하여 인터넷에 액세스할 수 있는 모든 사용자와 적절한 URL에 대한 지식을 통해 Oracle Cloud의 공용 저장소에서 이미지를 추출할 수 있습니다.

  • 통합 및 보안

    애플리케이션 소프트웨어의 보안과 무결성을 보장하기 위한 몇 가지 핵심 영역이 있습니다. OCI 저장소는 helm 차트 암호화를 저장하고 배치하기 전에 차트의 검증을 확인하는 데 사용됩니다. 레지스트리(아티팩트 및 컨테이너)는 애플리케이션 이미지 및 아티팩트가 필요한 보안으로 저장되고 저장되도록 합니다. OCI Virtual Cloud 네트워크를 통해 여러 보안 규칙과 필요한 라우팅 규칙을 적용하여 애플리케이션 및 인프라에 필요한 네트워크 트래픽만 허용합니다. 또한 오브젝트 스토리지는 트래픽이 보호되고 제어되도록 전용으로 표시됩니다.

  • 오브젝트 스토리지

    오브젝트 스토리지를 사용하면 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠를 포함하여 모든 콘텐츠 유형의 대규모 정형 및 비정형 데이터에 빠르게 접근할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 신뢰성이 저하되지 않고 스토리지를 원활하게 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스해야 하는 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하며 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다. 응용 프로그램 코드는 비공개 호스트된 저장소 내에 설정됩니다. 모든 리소스 위에 필요한 OCI ID 정책이 그에 따라 적용됩니다.

고려 사항

OCI DevOps 서비스를 사용하여 CI/CD(지속적인 통합 및 배치) 플랫폼을 배치할 때 이러한 요소를 고려하십시오.

  • DevOps-지원되는 배포

    DevOps는 Oracle Container Engine for Kubernetes(OKE), 컴퓨트 호스트 및 OCI Functions에 대한 배포를 지원합니다. 이 아키텍처는 OKE 클러스터에 배치되며 다른 가능한 대상에 대해 셸 단계를 사용합니다. 특정 요구사항에 따라 다른 끝점에 배치를 고려합니다.

  • 배치된 아티팩트

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

  • 응용 프로그램 그룹화

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

배치

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

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

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

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

      변경하려면 Stack Details 페이지로 돌아가서 Edit Stack을 누르고 필요한 사항을 변경합니다. 그런 다음 Plan 작업을 다시 실행합니다.

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

추가 탐색

이 참조 아키텍처의 기능에 대해 자세히 알아보려면 다음의 추가 리소스를 검토하십시오.

승인

  • Author: Rahul M R