프로필사진
DevOps 부트캠프 기록일지
DevOps_04_김재환
25_Study(유용한 CI 도구들)
25_Study(유용한 CI 도구들)

2023. 4. 20. 20:35부트캠프/DevOps (TIL)

업계에서 많이 사용하는 CI/CD 도구는 다음과 같습니다.

 

1. Jenkins: 오픈 소스 CI/CD 도구로 가장 많이 사용되고 있습니다. 자유로운 확장성과 다양한 플러그인이 제공되어 사용자들이 쉽게 커스터마이징할 수 있습니다.

 

특징

  • 설치형: 별도의 서버가 필요합니다.
  • 다양한 플러그인을 활용할 수 있습니다.
  • 쿠버네티스, Docker 등과 호환됩니다.
  • 다양한 운영체제에서 사용이 가능합니다.

2. Travis CI: 클라우드 기반의 CI 도구로 GitHub과 연동하여 사용할 수 있습니다. 오픈 소스 프로젝트의 경우 무료로 사용할 수 있습니다.

 

특징

  • 클라우드 서비스(SasS) 형태로 사용할 수 있습니다.
  • Travis 자체에서 호스팅을 해주기 때문에 관리적인 측면에서 편리합니다.
  • Clojure, Erlang, Groovy Haskell, Java, JavaScirpt, Node.js, Perl PHP, Rython, Ruby 등의 다양한 언어를 지원합니다.

3. GitHub Action: GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼입니다. 리포지토리에 대한 모든 풀 요청을 빌드 및 테스트하는 워크플로를 생성하거나 병합된 풀 요청을 프로덕션에 배포할 수 있습니다. DevOps를 넘어 리포지토리에서 다른 이벤트가 발생할 때 워크플로를 실행할 수 있습니다. 예를 들어 누군가 저장소에 새 문제를 생성할 때마다 적절한 레이블을 자동으로 추가하는 워크플로를 실행할 수 있습니다. GitHub는 Linux, Windows 및 macOS 가상 머신을 제공하여 워크플로를 실행하거나 자체 데이터 센터 또는 클라우드 인프라에서 자체 호스팅 러너를 호스팅할 수 있습니다.

 

특징

  • GitHub 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화할 수 있는 툴입니다.
  • GitHub 마켓 플레이스를 통해 여러 사람이 공유한 Workflow를 찾을 수 있으며, 자신이 직접 만들어 공유할 수도 있습니다.
  • 공개 저장소를 무료로 사용할 수 있으며, 비공개 저장소 같은 경우 무료 사용량 이후에 요금이 부과됩니다.
    • 한 달에 500MB 스토리지와 실행 시간 2,000분(minute)까지 제공됩니다.
  • Github Actions 레퍼런스: Learn GitHub Actions - GitHub Docs



4. CircleCI: 클라우드 기반의 CI/CD 도구로 빠른 빌드 시간과 직관적인 UI가 특징입니다.

 

특징

  • Maven, Gradle 및 기타 최고의 빌드 도구와의 맞춤형 통합
  • Django, Nose, RSpec 및 수많은 다른 제품을 사용하여 CircleCI는 다음 제품을 배송하느라 바쁜 동안 코드를 테스트하는 뛰어난 작업을 수행합니다.
  • AWS, Heroku, Google Cloud 등과의 완벽한 통합
  • CircleCI는 자동으로 rvm 및 virtualenv와 같은 언어별 도구를 사용하여 종속성이 격리된 환경에 설치되도록 합니다.

 

5. GitLab CI/CD: GitLab의 기능 중 하나로 내부적으로 Jenkins를 사용하여 빌드와 테스트, 배포 과정을 자동화할 수 있습니다.

 

특징

  • GitLab 워크플로에 직접 통합
  • 성능을 위해 테스트를 확장하기 위해 추가 시스템을 추가하십시오.
  • CMD 빌드 스크립트를 사용하면 모든 언어로 프로그래밍할 수 있습니다.
  • 분기를 개별적으로 확인하는 사용자 정의 버전 테스트
  • 수동 배포 및 손쉬운 롤백 기능

 

6. TeamCity: JetBrains에서 개발한 CI/CD 도구로 사용자 친화적인 UI와 통합 테스트, 코드 검사 등 다양한 기능을 제공합니다.

 

특징

  • Visual Studio에 대한 뛰어난 지원; 도구 버전 관리, 프레임워크 테스트, 코드 적용 범위, 코드 분석, 모두 외부 스크립트 없이 포함됨
  • 코드를 복제할 필요가 없도록 설정을 재사용할 수 있는 직관적인 기반
  • 프로젝트 구성을 위한 포괄적인 버전 제어
  • 빌드, 실패 및 추가 변경 사항에 대한 자세한 내역 보고서
  • TeamCity는 Amazon EC2, Microsoft Azure 및 VMware vSphere에서 빌드 에이전트 팜을 동적으로 확장하여 클라우드 컴퓨팅을 활용합니다.

 

7. Bamboo: Atlassian에서 개발한 CI/CD 도구로 Jira, Bitbucket 등 Atlassian 제품군과 연동하여 사용할 수 있습니다.

 

특징

  • 각 릴리스 버전의 기록을 보관하는 사용자 지정 배포 프로젝트
  • 즉시 빌드에 할당할 수 있는 사용자 지정 에이전트를 사용하여 중요한 버그를 빠르게 수정합니다.
  • 진행 상황을 이해하는 데 도움이 되는 배포 전 코드 기록에 대한 자세한 개요
  • 포괄적인 CI 경험을 위해 Bitbucket 및 JIRA와 호환 가능
  • 환경별 권한을 통해 개발자와 QA는 프로덕션이 잠긴 상태에서 온디맨드 방식으로 자체 환경에 배포할 수 있습니다.

Action Items

GitHub Action이 다른 CI 도구에 비해 갖는 장점을 찾아보세요.

 

GitHub Actions는 지속적인 통합 및 배포(CI/CD)를 제공하는 GitHub의 자동화 서비스입니다. 다른 CI 도구와 비교하여 GitHub Actions의 주요 장점은 다음과 같습니다.

1. 강력한 통합

  • GitHub Actions는 GitHub와 깊은 통합을 제공하여 저장소의 이벤트(예: 풀 리퀘스트 생성, 병합, 릴리스 등)에 대한 액션을 쉽게 실행할 수 있습니다. 이를 통해 소스 코드를 더욱 쉽게 관리할 수 있습니다.

2. 더욱 쉬운 사용성

  • GitHub Actions는 YAML 파일로 작성되어 있으며, 사용자가 원하는 만큼 작성할 수 있습니다. 이를 통해 매우 정교한 워크플로우를 구성할 수 있습니다.

 

3. 커뮤니티

  • GitHub Actions는 매우 큰 개발자 커뮤니티를 보유하고 있습니다. 이를 통해 매우 다양한 액션 및 워크플로우를 사용할 수 있습니다.

 

4. 통합된 개발자 도구

  • GitHub Actions는 다양한 개발자 도구(예: AWS, Google Cloud Platform, Microsoft Azure 등)와 통합되어 있습니다. 이를 통해 CI/CD 파이프라인을 더욱 쉽게 구성할 수 있습니다.

이러한 장점들은 GitHub Actions의 사용성을 높이며, GitHub와의 강력한 통합 및 개발자 커뮤니티와의 통합을 통해 다른 CI 도구보다 효과적인 소프트웨어 개발 프로세스를 제공합니다.

 

 

 

출처

 

https://en.wikipedia.org/wiki/Travis_CI

https://en.wikipedia.org/wiki/Jenkins_(software)
https://stackify.com/top-continuous-integration-tools/