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 툴 설치
- 마켓플레이스 서비스를 신청하여 Jenkins를 설치합니다.
- 마켓플레이스 서비스를 신청하여 GitLab(소스코드 저장소)를 설치합니다.
- Container Registry 서비스를 신청하여 DevOps에서 빌드된 애플리케이션 Container 이미지를 Registry에 저장합니다.
- 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 을 생성합니다.
- DevOps Service에 생성된 CI/CD Pipeline을 사용해서 지속적으로 개발 된 애플리케이션의 배포를 할 수 있습니다.
On-Premise에 CI/CD 툴 설치
- On-Premise 환경에 Jenkins를 설치합니다.
- On-Premise 환경에 GitHub(소스코드 저장소)를 설치합니다.
- On-Premise 환경에 Harbor(이미지 Registry)를 설치하고 DevOps에서 빌드 된 애플리케이션 Container 이미지를 Registry에 저장합니다.
- 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으로 연결합니다.
- DevOps Service에 Jenkins, GitHub, Kubernetes Engine, Harbor를 등록 합니다.
- DevOps Service에 등록 된 CI/CD 툴을 활용하여 애플리케이션을 빌드-테스트-배포하는 CI/CD Pipeline을 생성합니다.
- 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의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.
| 서비스군 | 서비스 | 상세 설명 |
|---|---|---|
| Container | Kubernetes Engine | Kubernetes 컨테이너 오케스트레이션 서비스 |
| Container | Container Registry | 컨테이너 이미지를 손쉽게 저장, 관리, 공유하는 서비스 |
| Networking | VPC | 클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스 |
| Networking | Load Balancer | 서버 트래픽 부하를 자동으로 분산하는 서비스 |
| Networking | Direct Connect | 고객 네트워크와 Samsung Cloud Platform을 안전하고 빠르게 연결하는 서비스 |
표. 관련 서비스 목록

