⚓️
CI/CD 단계별 도구
December 15, 2023
CI/CD 단계별 도구
지속적 통합 (Continuous Integration, CI) 및 지속적인 배포 (Continuous Deployment, CD)는 소프트웨어 개발과 배포를 효율적으로 관리하기 위한 핵심적인 DevOps 원칙이다. 이를 위해 다양한 도구들이 사용되며, 각 단계에서 어떤 도구들이 효과적으로 활용될 수 있는지 알아보자.
1. 지속적 통합 (CI)
주요 목표
- 코드 변경을 지속적으로 통합하여 품질 확보
- 자동화된 빌드 및 테스트 수행
주요 도구
1.1 Jenkins
- 개방형 소스 CI/CD 도구
- 다양한 플러그인 지원
- 확장성과 유연성이 뛰어남
1.2 Travis CI
- 클라우드 기반 CI 도구
- 깃허브와의 통합 용이
- 빠른 설정 및 실행 가능
1.3 GitLab CI/CD
- GitLab 내에서 제공하는 통합 CI/CD 기능
- 코드 저장소와 강력한 통합
- Docker 이미지 레지스트리 지원
2. 지속적 배포 (CD)
주요 목표
- 자동화된 프로세스로 안정적인 배포 수행
- 환경에 따라 자동으로 적용되는 구성 관리
주요 도구
2.1 Docker
- 컨테이너화 기술을 통한 일관성 있는 배포
- 확장성, 가상화, 경량성 등의 이점 제공
- Docker Compose를 통한 멀티컨테이너 관리
2.2 Kubernetes(k8s)
- 컨테이너 오케스트레이션 도구
- 다중 호스트에서 컨테이너 배포 및 관리
- 스케일링, 롤링 업데이트 등의 기능 제공
2.3 Ansible
- 인프라 자동화를 위한 오픈 소스 도구
- YAML을 사용한 간편한 구성 관리
- 에이전트 없는 구조로 편리한 확장성
3. 테스트 자동화 도구
주요 목표
- 소프트웨어의 품질을 확보하기 위한 자동화된 테스트 수행
- CI/CD 파이프라인에서의 통합 용이
주요 도구
3.1 JUnit
- 자바 기반의 단위 테스트 프레임워크
- CI 도구와 통합하여 사용 가능
- 테스트 결과 리포트 생성
3.2 Selenium
- 웹 애플리케이션 테스트 자동화 도구
- 다양한 브라우저 및 플랫폼 지원
- 통합 테스트에 활용
3.3 Postman
- API 테스트 및 개발에 사용되는 도구
- 다양한 HTTP 요청 및 응답 테스트
- 테스트 스크립팅 및 자동화 가능