
※ DevOps 배포 파이프라인(Pipeline) 순서
<실제 서비스 배포 과정 순서>
[개발자]
↓
GitHub/GitLab (코드 저장 및 버전 관리)
↓ (push, merge)
Jenkins (CI/CD 자동화)
↓ (빌드 & 테스트)
Docker (컨테이너 이미지 생성)
↓ (이미지 저장)
Container Registry (DockerHub / GitLab Registry / AWS ECR 등)
↓ (K8s가 pull)
Kubernetes (컨테이너 기반 서비스 운영)
※ 도구별 역할 설명
| 기술 | 하는 일 | 비유 |
| GitHub/GitLab | 코드 저장 & 협업 | 코드 보관소 + 협업 플랫폼 |
| Jenkins | 빌드/테스트/배포 자동화(CI/CD) | 자동 조리·배달 시스템 |
| Docker | 앱을 실행 환경과 함께 묶어 이미지로 만들기(컨테이너화) | 도시락 포장 |
| Container Registry | Docker 이미지 저장 | 도시락 냉동 창고 |
| Kubernetes | 컨테이너 배포·운영·확장·복구 | 자동 급식·배치 시스템 |
※ 더 쉽게 요약
· GitHub/GitLab → 코드를 올리는 곳 (버전 관리)
· Jenkins → 코드를 테스트·빌드하고 배포 자동화
· Docker → 앱을 실행 가능한 컨테이너로 패키징
· Container Registry → 패키지(Docker 이미지)를 저장하는 창고
· Kubernetes → 그 컨테이너를 여러 서버에서 자동 운영
※ 개발자 관점 예시
1. 개발자가 기능 개발한 뒤 git push
2. GitLab/GitHub 저장소에 코드 반영
3. Jenkins가 코드 변경 감지 → 테스트/빌드
4. Docker로 앱을 이미지로 생성
5. 이미지 저장소에 업로드
6. Kubernetes가 그 이미지를 가져와 서비스에 배포
7. 트래픽 증가 시 Kubernetes가 컨테이너 자동 확장
※ 요약
Git에 코드 올리고 → Jenkins가 자동 빌드·배포하고 → Docker로 만들고 → Kubernetes가 운영한다.
GitHub/GitLab → Jenkins → Docker → Container Registry → Kubernetes
개발자가 코드를 GitHub/GitLab에 push하면 Jenkins가 자동으로 빌드하고 테스트한다.
이후 Docker 이미지로 패키징하여 Container Registry에 저장한 뒤,
Kubernetes가 이미지를 pull하여 서비스로 배포 및 운영을 한다.
'DevOps' 카테고리의 다른 글
| [DevOps] Docker(도커) vs Kubernetes(쿠버네티스) (0) | 2025.10.31 |
|---|