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

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

개요

DevOps Service 는 개발 생산성을 높이기 위하여 애플리케이션의 CI/CD(빌드/배포)를 지원합니다. 즉, 빌드-테스트-배포 프로세스를 자동화하여 개발 생산성을 높여 주고, 소스 이력 관리 및 소스코드 검증을 지원하는 CI/CD 툴과의 연계를 통해 코드 품질을 높여 줍니다.

또한 On-Premise와 Samsung Cloud Platform 내부 환경에 있는 CI/CD 툴과의 연계를 지원하여 사용자는 자유롭게 CI/CD 툴 설치 환경을 선택하고 구성 할 수 있습니다.

아키텍처 다이어그램

SCP에 CI/CD 툴 설치

SCP CI/CD 툴
그림. Samsung Cloud Platform에 CI/CD 툴 설치 구성도
  1. 마켓플레이스 서비스를 신청하여 Jenkins를 설치합니다.
  2. 마켓플레이스 서비스를 신청하여 GitLab(소스코드 저장소)를 설치합니다.
  3. Container Registry 서비스를 신청하여 DevOps에서 빌드된 애플리케이션 Container 이미지를 Registry에 저장합니다.
  4. DevOps Service 에 Jenkins, GitLab, Kubernetes Engine, Container Registry를 등록합니다.
    • CI/CD 툴(GitLab, Jenkins) 등록을 위해서는 DevOps Console과 양방향 통신이 필요하므로 Internet Gateway, Load Balancer, NAT Gateway 서비스를 사용합니다.
    • DevOps Service 에 등록된 CI/CD 툴을 활용하여 애플리케이션을 빌드-테스트-배포 하는 CI/CD Pipeline 을 생성합니다.
  5. DevOps Service에 생성된 CI/CD Pipeline을 사용해서 지속적으로 개발 된 애플리케이션의 배포를 할 수 있습니다.

On-Premise에 CI/CD 툴 설치

On-Premise CI/CD 툴
그림. On-Premise에 CI/CD 툴 설치 구성도
  1. On-Premise 환경에 Jenkins를 설치합니다.
  2. On-Premise 환경에 GitHub(소스코드 저장소)를 설치합니다.
  3. On-Premise 환경에 Harbor(이미지 Registry)를 설치하고 DevOps에서 빌드 된 애플리케이션 Container 이미지를 Registry에 저장합니다.
  4. Samsung Cloud Platform의 Kubernetes Engine에서 On-Premise 환경의 Harbor에 접속해서 애플리케이션 Container를 실행 할 수 있도록 Direct Connect 서비스를 신청하여 On-Premise 환경과 Samsung Cloud Platform의 Kubernetes Engine을 연결 합니다.
    • 또한 CI/CD 툴과 DevOps Service은 양방향 통신이 필요하므로 On-Premise와 Samsung Cloud Platform Public Endpoint를 Network으로 연결합니다.
  5. DevOps Service에 Jenkins, GitHub, Kubernetes Engine, Harbor를 등록 합니다.
    • DevOps Service에 등록 된 CI/CD 툴을 활용하여 애플리케이션을 빌드-테스트-배포하는 CI/CD Pipeline을 생성합니다.
  6. DevOps Service에 생성 된 CI/CD Pipeline을 사용해서 지속적으로 개발 된 애플리케이션의 배포를 할 수 있습니다.

사용 사례

불량 분석 시스템의 개발 환경


개발 환경 구축 기간을 2일에서 5분 이내로 단축 할 수 있습니다.

  • 자동화된 불량 분류 및 분석 시스템을 컨테이너 기반의 Kubernetes Engine 환경으로 구축합니다.
  • DevOps의 자동화된 CI/CD Pipeline를 활용합니다.

경영 정보 시스템을 컨테이너로 전환하기 위한 개발 환경


  • 경영 정보 시스템을 위한 개발 환경 구성은 통상 1~2주 이상 소요되는데, DevOps 서비스를 활용하여 즉시 구성 할 수 있습니다.
  • 개발된 애플리케이션, 환경 설정, 실행 환경 등을 컨테이너로 이미지화하고 배포하는 작업을 자동화하여 개발 생산성을 획기적으로 향상 시킵니다.

선결 사항

없음

제약 사항

없음

고려 사항

DevOps Service와 CI/CD 툴의 연결


DevOps Service에 CI/CD 툴을 등록하고 사용하기 위해서는 CI/CD 툴이 Samsung Cloud Platform 외부 Network에 공개되어 있어야 합니다.

  • CI/CD 툴이 Samsung Cloud Platform에 설치 되어 있다면, Internet Gateway, NAT Gateway Load Balancer 서비스를 사용해서 외부 Network와 연결 되어야 합니다.
  • CI/CD 툴이 On-Premise에 설치 되어 있다면, On-Premise가 Samsung Cloud Platform Public Endpoint와 Network이 연결 되어야 합니다.

On-Premise와 SCP 연결

  • On-Premise에 설치 된 CI/CD 툴을 Samsung Cloud Platform Kubernetes Engine과 연결하기 위해서는 Direct Connect 서비스를 신청해야 합니다.

  • Kubernetes Engine 신청 시 사용되는 VPC의 Subnet IP 주소 대역이 고객의 Network IP 주소와 충돌이 발생하지 않도록 IP 주소 대역을 지정해야 합니다.

    • 또한, Kubernetes Engine의 Node Pool에서 고객 On-premise의 Container Registry에 연결될 수 있도록 VPC 방화벽 및 Security Group 이 등록되어 있어야 합니다.

관련 서비스

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

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