Infra/CI, CD

젠킨스(Jenkins) vs Code Build vs Git Actions

민돌v 2022. 12. 13. 14:24

 

모두 빌드 자동화의 툴

 

사이드프로젝트에서 팀원과 인프라 구축을 위해 ci.cd 구축을 어떤 툴을 이용해서 진행할거냐를 의논하기위해 정리한 글입니다.

따라서 매우매우 가볍고 간단하게만 비교 정리한 글!

 

➡️ 결론은 jenkins로 해보기로함

 

[목차]

  • jenkins 란
  • code build 란
  • git actions 란
  • jenkins vs git actions

 

Jenkins

■ 젠킨스(Jenkins)의 개념

: 젠킨스(Jenkins)는 거의 모든 언어의 조합과 소스코드 리포지토리(Repository)에 대한 지속적인 통합(CI)지속적인 배포(CD) 를 무료로 제공합니다.

 

■ 젠키스 사용 장점

  • 프로젝트의 표준 컴파일 환경에서 컴파일 오류 검출
  • 코딩 규약 준수여부 체크
  • 프로파일링을 통해 소스 변경에 따른 성능의 변화 감시
  • 테스트 환경에 대한 배포작업

jenkins


 

Code Build

■ Code Build 의 개념

: AWS CodeBuild는 클라우드상의 완전관리형 빌드 서비스입니다.

  • AWS가 제공하는 Build Tool
  • 지정된 위치에서 소스코드를 가져와 Build & Test 수행
  • Github 와 연동 가능

CodeBuild는 최대 빌드 요청 수에 맞게 자동으로 확장합니다. → auto Scaling 에 용이

 

■ Code Build 요금

aws 를 사용해서 프리티어 이상의 요금이 나가지 않을까..?

 

■ 장점

  • AWS 생태계를 모두 사용할 거라면 유용해보임
  • Code Build (빌드) - Code PipeLine (연결) - Code Deploy (배포)
  • JenKins 보다는 관리및 파이프라인 구성이 쉬워보임
  • Github 와 연동되는 점도 편리해보임
  • 출처 : https://jojoldu.tistory.com/282

 

code build


 

Git Actions

■ GitHub Actions의 개념

  • Github Actions은 Github 저장소를 기반으로 소프트웨어 개발 Workflow 를 자동화 할 수 있는 도구입니다.
  • 간단하게 말하자면 Github에서 직접 제공하는 CI/CD 도구라고 할 수 있습니다.

 

■ 요금

  • 사용료는 public 저장소는 무료이며, private저장소는 해당 계정에 부여된 무료 사용량 이후에 과금이 부과됩니다.
  • Github 무료 계정의 전체 비공개 저장소를 기준으로 한달에 500MB 스토리지와 실행 시간 2,000분(minute) 까지 제공된다.

 

■ 얼마나 사용할 수 있을까?

: Workflow는 저장소마다 최대 20개까지 등록할 수 있습니다.

  • 그리고 Workflow 안에 존재하는 Job이라는 단계마다 최대 6시간 동안 실행될 수 있고, 초과하게 되면 자동으로 중지됩니다.
  • 그리고 Github 계정 플랜에 따라 전체 Git 저장소를 통틀어 동시 실행할 수 있는 Job 개수가 정해져 있습니다.
  • Job 안에서 Github API를 호출한다면 1시간 동안 최대 1,000번까지만 가능합니다.

 

■ GitHub Actions 사용 이점

  • 기존의 Circle CI / Travis CI / Jenkins CI와 같은 서비스 또는 설치형 CI처럼 Github에서도 Actions이라는 CI툴을 선보였으며 별다른 복잡한 절차 없이 Github를 통해 사용할 수 있다는 장점이 있다.
  • 워크 플로우 복제 용이
  • GitHub와 통합
  • 다중 컨테이너 테스트

 

git actions


 

🔥 Jenkins vs Git Action

  • jenkins는 설정에 자신있고 완전한 제어와 비용에 문제가 되지않습니다.
  • 하지만 jenkins에 자신이 없고 더 나은 대안을 찾는사람들에게는 github action이 좋은 선택입니다.

 

출처 : https://choseongho93.tistory.com/295

 

 

👏🏻 젠킨스는 무료이고, 오래되서 문서도 많고 탄탄한 느낌

  • 하지만 → 구성 자체가 어렵다 (젠킨스 빌드를 위해 서버를 하나 뛰어야한다고 함)

 

👏🏻 GitAction 은 비교적 쉽게 빌드가 가능하다

  • 별도의 클라우드로 돌리기 때문에 사용자가 따로 구성해주지 않아도 됨
  • GitHub Actions는 GitHub에서 제공하는 완전 관리 형 서비스이므로이를 실행하기 위해 인프라를 확장하고 운영하는 방법을 알 필요가 없습니다.
  • GitHub 작업은 많은 언어와 프레임 워크를 지원하며 YAML로도 작성됩니다. 따라서 코드처럼 편집, 재사용, 공유 및 분기 할 수 있습니다.
  • 저장소를 포크하면 작업이 자동으로 포크되기 때문에 GitHub와 함께 사용하는 것은 간단합니다.
  • 이를 통해 프로젝트를 매우 효율적으로 테스트하고 빌드 할 수 있으며 개발자와 더 가깝게 실행할 수도 있습니다.

 

📌 (요약)

큰 규모의 프로젝트라면 Jenkins 추천하는 느낌, but 작은서비스라면 쉽게 설정가능 GitActions 를 추천함

  • Jenkins 가 더 커스텀하게 맞출수는 있는거같음
  • GitActions 는 설정들이 어느정도 정형화되어있어 쉽게 사용 가능한 느낌

 

 

 

*참고 : https://choseongho93.tistory.com/295