깃허브 액션
: 깃허브 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구
: Workflow는 Runners라고 불리는 깃허브에서 호스팅하는 서버나 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수 있음
- 장점
: 다른 사람들의 워크 플로우를 쉽게 가져다 쓸 수 있음 (재사용)
: 깃허브에 통합된 시스템이기 때문에 깃허브와 연동성이 좋음
: 리눅스, 맥, 윈도우, ARM 및 컨테이너를 쉽게 빌드하고 테스트 할 수 있음
: 라이브로그를 지원
: 다중 컨테이너 테스트를 지원
: 여러 운영제체 및 런타임 버전에서 동시에 테스트 할 수 있음
: 모든 언어 및 애플리케이션에 대한 빌드, 테스트, 배포를 지원
- 단점
: 워크플로우는 레포지터리마다 최대 20개까지만 등록 가능
: 워크플로우 내 Job이라는 단계마다 6시간 동안만 실행 가능하며 초과 시 자동으로 중지됨
: 깃허브 계정 플랜에 따라 전체 깃 저장소를 통틀어 동시 실행할 수 있는 Job 개수가 정해져있음
: Job 안에서 깃허브 API를 호출하면 1시간에 1000번까지만 가능
- 비고
: public 레포지터리의 경우 무료
: private 저장소의 경우 해당 계정에 부여된 무료 사용량 이후에 과금
: 깃허브 무료 계정의 전체 비공개 저장소를 기준으로 한달에 500MB 스토리지와 실행시간 2000분까지 제공됨
젠킨스
: 거의 모든 언어와 소스코드 레포지터리에 대한CI와 CD를 제공하는 오픈소스 도구
: 일상적인 작업 자동화 뿐만 아니라 파이프라인을 이용해 거의 모든 언어의 조합과 소스코드 레포지터리를 지원
: 빌드, 테스트, 배포 등의 과정을 통합할 수 있는 간편한 방법을 제공
- 장점
: 프로젝트의 표준 컴파일 환경에서 컴파일 오류 검출
: 자동화 테스트 수행 가능
: 코딩 규약 준수 여부 체크 가능
: 프로파일링을 통해 소스 변경에 따른 성능 변화 감시
: 테스트 환경에 대한 배포 작업
: 개발 업무를 도와주는 많은 플러그인을 보유
깃허브 액션 VS 젠킨스
- 빌드 서버
: 깃허브 액션 (깃허브 서버를 사용하거나 별도의 개인 서버를 사용 가능)
: 젠킨스 (필수적으로 필요)
- 배포 시간
: 깃허브 액션 (비동기로 동작하기 때문에 배포 작업 시 빠르게 작동)
: 젠킨스 (동기 방식으로 동작하기 때문에 배포 시 작업이 많은 경우 빌드가 밀리는 경우 발생)
- 깃허브와의 호환성
: 깃허브 액션 (모든 깃허브 이벤트에 대한 작업을 제공하고 다양한 언어와 프레임워크를 지원)
: 젠킨스 (계정 및 트리거를 기반으로 빌드를 중심으로 동작하기 때문에 깃허브 이벤트를 준수하지 않음)
- 호환성
: 깃허브 액션 (모든 환경과 호환)
: 젠킨스 (환경 호환성을 위해서는 도커 이미지에서 실행 필요)
- 캐싱
: 깃허브 액션 (자체 캐싱 메커니즘을 작성해야함)
: 젠킨스 (캐싱 메커니즘을 위한 다수의 플러그인)
- 공유
: 깃허브 액션 (깃허브 마켓 플레이스에 자신의 워크 플로우 공유 가능. 다른 사람의 워크플로우를 재사용 가능)
: 젠킨스 (공유 불가)
- 문서
: 깃허브 액션 (문서가 적은 편)
: 젠킨스 (전세계적으로 다양한 문서가 존재)
- 컨테이너
: 깃허브 액션 (다중 컨테이너 테스트를 지원하며, 도커 실행으로 작동되기 때문에 실행 및 디버깅이 쉬움)
: 젠킨스 (플러그인이 필요하며, 개인이 만든 것이기 때문에 불완전)
둘 중에 무엇을 골라야 할까?
- 기술스택이 다양한 프로젝트
: 다양한 IDE를 사용하거나 커스터마이징이 많은 경우 유연성이 뛰어난 젠킨스를 추천
: 언어만 다른 경우에는 다른 사항들을 따져보고 결정
- 규모가 작은 프로젝트
: 별도의 빌드 서버가 필요없는 깃허브 액션을 추천
: 젠킨스의 경우 빌드 서버에 대한 호스팅을 일일이 해줘야하기 때문
- 규모가 큰 프로젝트
: 빌드 서버를 따로 둘 수 있다면 젠킨스를 추천
: 깃허브 액션의 경우 워크 플로우의 개수 제한 등 다양한 제약이 있기 때문
- 서버리스 혹은 외부 클라우드를 사용
: 리소스 소비를 줄일 수 있는 깃허브 액션을 추천
: 젠킨스의 경우 호스팅이 하나 더 필요하거나 배포 환경과 리소스를 함께 사용해야하기 때문
- 초보자
: 깃허브에서 공식으로 관리해주는 깃허브 액션을 추천
: 인프라에 대한 지식이 있고 문서를 잘 볼 줄 안다면 젠킨스를 사용해보는 것도 좋음
Reference
'Devops > DevOps' 카테고리의 다른 글
형상 관리 모범 사례 (1) | 2023.12.28 |
---|---|
라지 스케일 시스템을 구현하는 개발자의 조언 (0) | 2023.11.07 |
PM, PL, PA, PO의 역할과 차이 (+프로젝트와 프로덕트의 차이) (0) | 2023.08.13 |
개발에서의 DevOps의 역할 (0) | 2023.08.13 |
개발자가 알아야 할 데이터 분석 도구 (0) | 2023.08.12 |