CI/CD란

    CI/CD는 Continuous Integration / Continuous Delivery 또는 Continuous Deployment의 약자입니다. 이는 소프트웨어 개발 프로세스에서 사용되는 접근 방식입니다.

    Continuous Integration (CI)는 코드 변경 사항이 자동으로 빌드 및 테스트되고, 통합되는 것을 의미합니다. 이를 통해 팀은 코드 품질을 높이고 빠른 시간 내에 버그를 해결할 수 있습니다.

    Github Actions를 통해 자동으로 진행되는 빌드, 테스트, 통합 과정

    Continuous Delivery (CD)는 소프트웨어가 자동으로 배포되는 것을 의미합니다. 이는 코드 변경 사항이 테스트 후에 자동으로 승인 및 배포되는 것을 의미합니다.

    Continuous Deployment는 Continuous Delivery와 유사하지만, 자동 배포를 수행하는 것을 의미합니다. 즉, 배포 프로세스의 인간 개입 없이 변경 사항이 실제로 사용자에게 전달됩니다.

    Github Actions와 AWS Beanstalk을 통한 자동 배포 과정

    이러한 개념들은 개발 프로세스에서 반복적인 빌드, 테스트 및 배포 작업을 자동화하며, 버그를 빠르게 찾아 수정하고, 릴리즈 사이클을 단축하고, 개발자들이 더 높은 생산성을 유지하도록 돕습니다.

     

    CI/CD 도구

    CI/CD 도구는 소프트웨어 개발 프로세스를 자동화하고, 지속적인 통합, 배포 및 배포 파이프라인을 구축하는 데 사용되는 소프트웨어 도구입니다. 대표적인 CI/CD 도구로는 Jenkins, Travis CI, CircleCI, GitLab CI/CD, Github Actions 등이 있습니다.

     

    Jenkins와 Github Actions는 모두 CI/CD 파이프라인을 구축하는 데 사용되는 자동화 도구이지만, 다음과 같은 차이점이 있습니다.

    1. 호스팅 환경
      Jenkins서버 환경을 구축하여 사용해야합니다. 대표적으로 AWS EC2와 같은 클라우드 인프라에 구축하여 사용할 수 있습니다. AWS EC2에서 Jenkins를 사용하려면, EC2 인스턴스를 시작하고 Jenkins를 설치한 후, 필요한 플러그인과 도구를 추가로 설치하여 구성할 수 있습니다. EC2 인스턴스를 시작할 때, Jenkins를 미리 설치해 둔 AMI(Amazon Machine Image)를 사용할 수도 있습니다.
      반면, Github Actions는 Github에서 제공하는 클라우드 기반 도구로, Github 저장소와 연동하여 사용합니다. Jenkins와 달리 서버 환경 구축이 필요하지 않습니다. 
    2. 설정 방법
      Jenkins는 사용자가 서버에 설치한 후, 사용자가 직접 설정하고 관리해야 합니다. 반면, Github Actions는 Github 저장소의 .github/workflows 디렉토리에 작업 흐름(workflow)을 정의하여 설정합니다. 
    3. 가격
      Jenkins는 오픈 소스 도구이므로, 무료로 사용할 수 있습니다. 반면, Github Actions는 무료 플랜에서 일정량의 무료 크레딧을 제공하지만, 일정량 이상의 사용량은 유료로 전환해야 합니다.

    댓글