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) 를 무료로 제공합니다.
■ 젠키스 사용 장점
- 프로젝트의 표준 컴파일 환경에서 컴파일 오류 검출
- 코딩 규약 준수여부 체크
- 프로파일링을 통해 소스 변경에 따른 성능의 변화 감시
- 테스트 환경에 대한 배포작업
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
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와 통합
- 다중 컨테이너 테스트
🔥 Jenkins vs Git Action
- jenkins는 설정에 자신있고 완전한 제어와 비용에 문제가 되지않습니다.
- 하지만 jenkins에 자신이 없고 더 나은 대안을 찾는사람들에게는 github action이 좋은 선택입니다.
👏🏻 젠킨스는 무료이고, 오래되서 문서도 많고 탄탄한 느낌
- 하지만 → 구성 자체가 어렵다 (젠킨스 빌드를 위해 서버를 하나 뛰어야한다고 함)
👏🏻 GitAction 은 비교적 쉽게 빌드가 가능하다
- 별도의 클라우드로 돌리기 때문에 사용자가 따로 구성해주지 않아도 됨
- GitHub Actions는 GitHub에서 제공하는 완전 관리 형 서비스이므로이를 실행하기 위해 인프라를 확장하고 운영하는 방법을 알 필요가 없습니다.
- GitHub 작업은 많은 언어와 프레임 워크를 지원하며 YAML로도 작성됩니다. 따라서 코드처럼 편집, 재사용, 공유 및 분기 할 수 있습니다.
- 저장소를 포크하면 작업이 자동으로 포크되기 때문에 GitHub와 함께 사용하는 것은 간단합니다.
- 이를 통해 프로젝트를 매우 효율적으로 테스트하고 빌드 할 수 있으며 개발자와 더 가깝게 실행할 수도 있습니다.
📌 (요약)
큰 규모의 프로젝트라면 Jenkins 추천하는 느낌, but 작은서비스라면 쉽게 설정가능 GitActions 를 추천함
- Jenkins 가 더 커스텀하게 맞출수는 있는거같음
- GitActions 는 설정들이 어느정도 정형화되어있어 쉽게 사용 가능한 느낌