CI/CD 자동화를 알아보자~ Travis, jenkins, AWS amplify 비교 (쉽게쉽게)

 

어려울 거 없어요~ 어려운 말로 번드르르 읽지말고 함께 쉬운 말로 정리해보아요~

CI

지속적인 통합, 즉 Git에 수정한 내 새로운 코드를 합친다는 뜻입니다 ^^ 이를 빌드한다(배포 파일을 만든다~)고도 할 수 있겠지요~

CD

지속적인 배포. 바뀐 내용을 사용자에게 제공(배포)한다는 뜻입니다~ 자동화된 CD는 '무중단 배포'를 의미합니다.

 

CI가 자동화되기 전에는 개발자들이 한땀한땀 Githup 레포지토리에 수정한 코드를 커밋하고, 푸쉬하고, 브랜치를 머지해야했답니다. 자동화 적용안하고 직접 git 관리하는 회사는 지금도 많지만요~

CD가 자동화되기 전에는 개발자들이 직접 tomcat(서버) 끄고, .war파일(배포할 코드파일) 바꾸고, tomcat 올리고, 로그 모니터링하는 과정을 거쳤지요~

여기에 많은 시간과 신경씀...이 들어가다보니 야 이거 알아서 코드 합쳐주고, 코드 배포해주는 거 좀 만들어보자. 하는 아이디어가 나왔답니다~

 

자동화된 CI는 어떻게 동작하나요?

  1. 개발자가 코드를 작성하여 Git 같은 공유 저장소에 변경 사항을 커밋합니다.
  2. CI 서버는 저장소를 모니터링 하고 있기 때문에 (1)번을 눈치챕니다.
  3. 변경 사항을 통합(merge)하고 테스트 코드에 따라 테스트를 수행합니다.
  4. 배포 가능한 아티팩트(배포 파일^^)를 생성합니다.
  5. 개발자에게 완료됐음을 알립니다^^

 

대표적으로 Travis, Jenkins, AWS amplify가 있는데요.

이들을 비교해볼게요~

 


Travis CI

깃헙에서 제공하는 무료 오픈소스입니다. 깃헙, 깃랩에서 사용이 가능하고요.

개발자가 특정 레포지토리에 코드를 커밋하면 Travis는 코드를 가져와 빌드하고 테스트 스크립트를 실행합니다.

Travis CI/CD가 아니라 Travis 'CI'라는 이름에서 알 수 있듯이 배포를 위해서는... 다른 툴을 사용해야합니다 ^^ (AWS code deploy 등)

프로젝트에 적용하기가 아주 쉽다고 합니다. ~.yml 파일로 셋팅할 수 있습니다 ^^ (사견이지만 yml파일이라는 이유로 셋팅이 쉽다는 건 정말 헛소리 같아요^^)

오픈 소스 프로젝트는 무료, 상업 프로젝트는 유료이다.

 

Jenkins

  • CI/CD 모두 가능하다. 더해서 Spring 배치 작업에도 사용이 가능합니다(스케쥴링 이용 가능)
  • 또 Jenkins는 java 기반 도구입니다. 그래서 JRE 위에서 굴러가지요~
  • Travis에 비해서 정교한 설정 들이 필요합니다. 이는 다시 말해 엄밀한 커스터마이징이 가능하다는 뜻이지요. 장점이자 단점입니다 ^^ Tomcat에 좀 능숙해야 쉽게 쓸 수 있을 듯~
  • 무료입니다.

 

AWS Amplify

CI와 CD를 모두 제공한다. 이를 위해서는 Route53의 도메인이 필요하다고함...?

cloudfront + S3 등 총합 패키지로 이거 하나로 인프라 구축을 끝내버리겠다...!!!!!! 는 의미에서 유용한듯...

그러나 짧은 개발 인생 되돌아 볼 때 all in one으로 다 처리해준다는 건.. 결국 이게 망가지면... 원인을 알아내기도 힘들 뿐더러(모두 자체 패키지 안에서 놀고 있으므로..) 개노답 크러쉬가 들이닥친다는 것이니까요... 좋은걸지... 

12개월 무료 후 사용량 따라 요금 부과 (AWS free tier) https://aws.amazon.com/ko/amplify/pricing/

 

Github Actions

클라우드 설치로 별도의 설치과정 필요 x

yaml 파일로 셋팅이 가능하며 배포 파이프라인을 신경 쓸 필요가 없다

이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있습니다.
Workflow는 Runners라고 불리는 Github에서 호스팅 하는 Linux, macOS, Windows 환경에서 실행된다. 그리고 이 Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있습니다.(self-hosted runner)
Github 마켓 플레이스에는 여러 사람이 공유한 Workflow는 찾을 수 있으며, 자신이 직접 만들어서 공유할 수도 있습니다.


CI 툴 점유율

JetBrain에서 2023년에 발표한 CI툴 사용 순위이다.

Jenkins가 52%

Travis는 10%

amplify는 아예 없네...? 왜지..,.?

 


더보기