CI/CD 단계별 도구

지속적 통합 (Continuous Integration, CI) 및 지속적인 배포 (Continuous Deployment, CD)는 소프트웨어 개발과 배포를 효율적으로 관리하기 위한 핵심적인 DevOps 원칙이다. 이를 위해 다양한 도구들이 사용되며, 각 단계에서 어떤 도구들이 효과적으로 활용될 수 있는지 알아보자.

1. 지속적 통합 (CI)

주요 목표

  • 코드 변경을 지속적으로 통합하여 품질 확보
  • 자동화된 빌드 및 테스트 수행

주요 도구

1.1 Jenkins

a1.png

  • 개방형 소스 CI/CD 도구
  • 다양한 플러그인 지원
  • 확장성과 유연성이 뛰어남

1.2 Travis CI

a2.png

  • 클라우드 기반 CI 도구
  • 깃허브와의 통합 용이
  • 빠른 설정 및 실행 가능

1.3 GitLab CI/CD

a3.png

  • GitLab 내에서 제공하는 통합 CI/CD 기능
  • 코드 저장소와 강력한 통합
  • Docker 이미지 레지스트리 지원

2. 지속적 배포 (CD)

주요 목표

  • 자동화된 프로세스로 안정적인 배포 수행
  • 환경에 따라 자동으로 적용되는 구성 관리

주요 도구

2.1 Docker

a4.png

  • 컨테이너화 기술을 통한 일관성 있는 배포
  • 확장성, 가상화, 경량성 등의 이점 제공
  • Docker Compose를 통한 멀티컨테이너 관리

2.2 Kubernetes(k8s)

a5.png

  • 컨테이너 오케스트레이션 도구
  • 다중 호스트에서 컨테이너 배포 및 관리
  • 스케일링, 롤링 업데이트 등의 기능 제공

2.3 Ansible

a6.png

  • 인프라 자동화를 위한 오픈 소스 도구
  • YAML을 사용한 간편한 구성 관리
  • 에이전트 없는 구조로 편리한 확장성

3. 테스트 자동화 도구

주요 목표

  • 소프트웨어의 품질을 확보하기 위한 자동화된 테스트 수행
  • CI/CD 파이프라인에서의 통합 용이

주요 도구

3.1 JUnit

a7.png

  • 자바 기반의 단위 테스트 프레임워크
  • CI 도구와 통합하여 사용 가능
  • 테스트 결과 리포트 생성

3.2 Selenium

a8.png

  • 웹 애플리케이션 테스트 자동화 도구
  • 다양한 브라우저 및 플랫폼 지원
  • 통합 테스트에 활용

3.3 Postman

a9.png

  • API 테스트 및 개발에 사용되는 도구
  • 다양한 HTTP 요청 및 응답 테스트
  • 테스트 스크립팅 및 자동화 가능