DevOps Service를 활용한 Samsung Cloud Platform 마이그레이션
개요
Samsung Cloud Platform으로 마이그레이션할 때 서비스 연속성을 유지하고 새로운 환경을 검증하기 위해 기존 온프레미스 환경과 일정 기간 병행 운영해야 할 수 있습니다.
DevOps Service를 활용하여 하이브리드 CI/CD 환경을 구축하면 Samsung Cloud Platform과 기존 온프레미스 환경이 공존하는 전환 기간에도 분리된 CI/CD 파이프라인을 통해 각 환경에 애플리케이션을 배포할 수 있습니다.
아키텍처 다이어그램
- 개발자가 변경된 소스 코드를 GitLab(소스 코드 저장소)에 푸시합니다.
- GitLab은 푸시 이벤트를 감지하여 Webhook으로 연계된 Jenkins의 컨테이너 배포 파이프라인과 레거시 서버 배포 파이프라인을 각각 실행합니다.
- 컨테이너 배포 파이프라인은 소스 코드를 빌드하여 컨테이너 이미지를 생성하고 Container Registry에 푸시합니다. 이후 DevOps Console과 연계하여 해당 이미지를 Samsung Cloud Platform의 Kubernetes Engine에 배포합니다.
- 레거시 서버 배포 파이프라인은 동일한 소스 코드 버전으로 생성한 배포 파일을 사용자의 온프레미스 환경에 있는 레거시 서버에 배포합니다. 두 파이프라인은 각각 독립적으로 실행하고 관리합니다.
사용 사례
온프레미스 환경에서 Samsung Cloud Platform으로 애플리케이션 마이그레이션
DevOps Service를 활용하여 하이브리드 CI/CD 환경을 구축하면 분리된 CI/CD 파이프라인을 통해 Samsung Cloud Platform과 온프레미스 환경에 애플리케이션을 병행 배포할 수 있습니다.
선결 사항
- GitLab과 Jenkins가 Webhook으로 연결되어야 합니다.
- Jenkins와 DevOps Console을 연계하려면 Kubernetes Engine과 온프레미스 레거시 서버 등 애플리케이션 배포 대상을 DevOps Console에 미리 등록해야 합니다.
- 온프레미스 환경과 Samsung Cloud Platform 간 사설 연결이 필요한 경우 Direct Connect 등의 네트워크 서비스를 구성합니다.
제약 사항
- Jenkins와 GitLab은 관리형 서비스가 아니므로 사용자가 직접 설치하고 구성·운영해야 합니다. 버전 관리, 보안 패치, 백업, 가용성 관리 및 장애 대응은 사용자 책임입니다.
- 기존에 사용하던 GitLab은 DevOps Console에 등록하여 계속 사용할 수 있습니다.
- 기존에 사용하던 Jenkins는 DevOps Console에 등록할 수 없거나, 등록 후 연계 과정에서 오류가 발생할 수 있습니다. DevOps Console의 기능을 안정적으로 사용하려면 Jenkins를 신규로 설치하여 등록하는 것을 권장합니다.
고려 사항
고객의 클라우드 보안 요구 사항을 확인하여 아키텍처에 반영해야 합니다.
관련 서비스
본 가이드에서 설명하는 기능 또는 구성과 연결되는 Samsung Cloud Platform의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.
| 서비스군 | 서비스 | 상세 설명 |
|---|---|---|
| DevOps Tools | DevOps Service | 개발 환경을 쉽게 구성하고 빌드와 배포를 간소화하는 서비스 |
| Container | Kubernetes Engine | Kubernetes 컨테이너 오케스트레이션 서비스 |
| Container | Container Registry | 컨테이너 이미지를 손쉽게 저장, 관리, 공유하는 서비스 |
| Networking | VPC | 클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스 |
| Networking | Direct Connect | 고객 네트워크와 Samsung Cloud Platform을 안전하고 빠르게 연결하는 서비스 |
표. 관련 서비스 목록
