icon

DevOps Service를 활용하기 위한 CI/CD 도구 환경 구성

DevOps Service를 활용하기 위한 CI/CD 도구 환경 구성

개요

DevOps Service는 애플리케이션의 빌드·테스트·배포 프로세스를 자동화하여 개발 생산성을 높입니다. 또한 소스 코드 이력 관리와 코드 검증을 지원하는 CI/CD 도구를 연계하여 코드 품질을 향상할 수 있습니다.

사용자는 Samsung Cloud Platform 또는 온프레미스에 CI/CD 도구를 설치하고 DevOps Service와 연계하여 환경 요구 사항에 맞는 CI/CD 파이프라인을 구성할 수 있습니다.

아키텍처 다이어그램

Samsung Cloud Platform에 CI/CD 도구 설치

Samsung Cloud Platform CI/CD 도구
그림. Samsung Cloud Platform에 CI/CD 도구 설치 구성도
  1. 마켓플레이스를 통해 Jenkins를 설치합니다.
  2. 마켓플레이스를 통해 GitLab(소스 코드 저장소)을 설치합니다.
  3. Container Registry를 신청하여 CI/CD 파이프라인에서 생성하는 애플리케이션 컨테이너 이미지를 저장합니다.
  4. DevOps Console에 Jenkins, GitLab, Kubernetes Engine, Container Registry를 등록합니다.
    • DevOps Console에서 CI/CD 도구로 접근하는 인바운드 통신에는 Internet Gateway와 Load Balancer를 사용하고, CI/CD 도구에서 DevOps Console 또는 외부 서비스로 연결하는 아웃바운드 통신에는 NAT Gateway를 사용합니다.
    • DevOps Console에 등록한 CI/CD 도구를 활용하여 애플리케이션의 빌드·테스트·배포를 자동화하는 CI/CD 파이프라인을 생성합니다.
  5. 생성한 CI/CD 파이프라인을 사용하여 변경된 애플리케이션을 지속적으로 빌드·테스트·배포합니다.

온프레미스에 CI/CD 도구 설치

온프레미스 CI/CD 도구
그림. 온프레미스에 CI/CD 도구 설치 구성도
  1. 온프레미스 환경에 Jenkins를 설치합니다.
  2. 온프레미스 환경에 GitHub Enterprise Server(소스 코드 저장소)를 설치합니다.
  3. 온프레미스 환경에 Harbor(이미지 레지스트리)를 설치하고 CI/CD 파이프라인에서 생성하는 애플리케이션 컨테이너 이미지를 저장합니다.
  4. Samsung Cloud Platform의 Kubernetes Engine이 온프레미스 환경의 Harbor에서 컨테이너 이미지를 가져올 수 있도록 Direct Connect를 신청하여 온프레미스 환경과 Kubernetes Engine이 속한 VPC를 연결합니다.
    • Direct Connect를 통한 Harbor 접근 경로와 별도로, 온프레미스의 CI/CD 도구가 DevOps Console과 통신할 수 있도록 Samsung Cloud Platform의 Public Endpoint에 연결되는 네트워크 경로를 구성합니다.
  5. DevOps Console에 Jenkins, GitHub Enterprise Server, Kubernetes Engine, Harbor를 등록합니다.
    • DevOps Console에 등록한 CI/CD 도구를 활용하여 애플리케이션의 빌드·테스트·배포를 자동화하는 CI/CD 파이프라인을 생성합니다.
  6. 생성한 CI/CD 파이프라인을 사용하여 변경된 애플리케이션을 지속적으로 빌드·테스트·배포합니다.

사용 사례

환경 요구 사항에 따른 유연한 CI/CD 도구 구성

조직의 보안, 네트워크 및 운영 정책에 따라 Jenkins, 소스 코드 저장소, 이미지 레지스트리 등의 CI/CD 도구를 Samsung Cloud Platform 또는 온프레미스에 구성할 수 있습니다. 기존 온프레미스 CI/CD 도구를 유지하면서 Kubernetes Engine과 연계할 수 있어 기존 도구와 운영 체계를 계속 활용할 수 있습니다.

CI/CD 도구 통합을 통한 빌드 및 배포 자동화

DevOps Console에 소스 코드 저장소, 빌드 도구, 이미지 레지스트리 및 배포 대상을 등록하여 CI/CD 파이프라인을 통합 구성할 수 있습니다. 소스 코드 변경부터 빌드·테스트·배포까지 반복되는 작업을 자동화하여 수동 작업을 줄이고 일관된 배포 절차를 적용할 수 있습니다.

선결 사항

없음

제약 사항

  • Jenkins, GitLab, GitHub Enterprise Server, Harbor는 관리형 서비스가 아니므로 사용자가 직접 설치하고 구성·운영해야 합니다. 버전 관리, 보안 패치, 백업, 가용성 관리 및 장애 대응은 사용자 책임입니다.
  • 기존에 사용하던 GitLab, GitHub Enterprise Server 및 Harbor는 DevOps Console에 등록하여 계속 사용할 수 있습니다.
  • 기존에 사용하던 Jenkins는 DevOps Console에 등록할 수 없거나, 등록 후 연계 과정에서 오류가 발생할 수 있습니다. DevOps Console의 기능을 안정적으로 사용하려면 Jenkins를 신규로 설치하여 등록하는 것을 권장합니다.

고려 사항

DevOps Console과 CI/CD 도구의 연결

DevOps Console에 CI/CD 도구를 등록하려면 DevOps Console과 각 도구가 필요한 방향으로 통신할 수 있도록 네트워크 경로를 구성해야 합니다. 인터넷에 공개하는 엔드포인트는 필요한 IP 주소와 포트만 허용하도록 제한합니다.

  • CI/CD 도구가 Samsung Cloud Platform에 설치되어 있다면, 외부 인바운드 통신에는 Internet Gateway와 Load Balancer를 사용하고 아웃바운드 통신에는 NAT Gateway를 사용합니다.
  • CI/CD 도구가 온프레미스에 설치되어 있다면, 온프레미스 네트워크에서 Samsung Cloud Platform의 Public Endpoint에 접근할 수 있도록 네트워크 및 방화벽 정책을 구성합니다.

온프레미스와 Samsung Cloud Platform 연결

  • 온프레미스에 설치된 CI/CD 도구를 Samsung Cloud Platform의 Kubernetes Engine과 연결하려면 Direct Connect를 신청해야 합니다.
  • Kubernetes Engine을 신청할 때 사용하는 VPC의 서브넷 IP 주소 대역이 고객 네트워크의 IP 주소 대역과 겹치지 않도록 설정해야 합니다.
    • Kubernetes Engine의 노드 풀에서 고객 온프레미스의 Container Registry에 연결할 수 있도록 VPC 방화벽과 Security Group 규칙을 구성해야 합니다.

관련 서비스

본 가이드에서 설명하는 기능 또는 구성과 연결되는 Samsung Cloud Platform의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.

서비스군서비스상세 설명
DevOps ToolsDevOps Service개발 환경을 쉽게 구성하고 빌드와 배포를 간소화하는 서비스
ContainerKubernetes EngineKubernetes 컨테이너 오케스트레이션 서비스
ContainerContainer Registry컨테이너 이미지를 손쉽게 저장, 관리, 공유하는 서비스
NetworkingVPC클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스
NetworkingSecurity GroupVM의 트래픽을 제어하는 가상 방화벽
NetworkingLoad Balancer서버 트래픽 부하를 자동으로 분산하는 서비스
NetworkingDirect Connect고객 네트워크와 Samsung Cloud Platform을 안전하고 빠르게 연결하는 서비스
표. 관련 서비스 목록