프로젝트/게시판 프로젝트

SpringBoot CI/CD 도입전 분석(젠킨스 vs 트레비스)

Junuuu 2022. 6. 8. 03:39
반응형

예전에 CI/CD를 공부하기 위해 간단하게 정리한 글이 있었습니다.

 

https://junuuu.tistory.com/21

 

[Java] 배포란?(+ CI/CD)

배포란(Deploy) 작성한 코드를 빌드하고, 빌드가 완성된 실행 가능한 파일(jar war)을 사용자가 접근할 수 있는 환경에 배치한 것 즉, 빌드를 하고 생성된 jar 또는 war 파일을 WAS에 올리는 거나 .exe

junuuu.tistory.com

 

CI : Continuous Integration

개발자를 위한 자동화 프로세스로 지속적인 통합하는 방식

만약 주기적으로 통합을 하지 않고 오래 시간이 지난 후 통합을 하면 큰 충돌이 날 확률이 높습니다.

 

 

CD : Continuous Deployment 또는 Continuous Delivery

Deployment는 배포 단계를 자동화, Delivery는 배포 단계를 수동화한 것을 나타냅니다.

CI 이후에 서버에 배포까지 자동으로 이루어짐을 의미합니다.

 

 

https://loosie.tistory.com/789

Travis CI

Travis CI는 서버가 클라우드에서 호스팅되므로 전용 서버에서 따로 커스텀이 필요 없는 이미 지정된 CI 옵션들을 많이 제공합니다.

 

YML 파일을 통한 쉬운 설정이 장점이지만 상업용 프로젝트에는 유료이며, 오픈소스는 첫 사용자에게 10,000크레딧이 주어집니다.

 

MacOS위에서 가벼운 프로젝트 빌드 20~30번 정도 소요시 1,000 크레딧이 소요된다고 합니다.

 

Jenkins

Java 기반의 오픈소스로 구성되어 있으며 다양한 플러그인을 지원합니다.

 

오픈소스라는 장점을 가지고 있습니다. (무료)

 

Travis CI보다 설정하는데 어렵습니다. (방화벽 작업, 서버의 관리 및 운영)

 

무료이지만 직접 전용 서버를 구축하고 유지관리 해야하기 때문에 서버 비용이 발생할 수 있습니다.

 

 

 

결론

Travis CI는 오픈소스 한정으로 10,000 크레딧을 제공하고 설정 및 실행이 간단하기 때문에 배포 자동화 연습용 혹은 소규모 적합해 보입니다.

 

하지만 10,000 크레딧이 조금 단점인 것 같습니다.

 

운영을 위한 개인 프로젝트나 팀 프로젝트에서는 Jenkins를 사용하여 EC2 프리티어로 구동하면 충분히 무리 없이 사용할 수 있을 것 같습니다.

 

결론으로는 삽질이 예상되지만 Jenkins를 사용해보도록 하겠습니다.

 

 

출처

https://wooncloud.tistory.com/79

 

CI/CD 기본 개념 정리와 툴

CI/CD 란? CI : Continuous Integration 지속적 통합 소프트웨어를 개발하면서 새로운 코드를 작성하거나 코드를 변경하고 빌드 및 테스트하여 공유 리포지토리에 통합되는 것을 말합니다. CI개발을 하려

wooncloud.tistory.com

https://owin2828.github.io/devlog/2020/01/09/cicd-1.html

 

[CI/CD] Jenkins vs GitLabCI vs Travis - 낮코밤코

CI/CD 환경을 구축하여 App을 배포해보는 것이 목적이다. 이를 위해 Jenkins를 이용하여 앱을 빌드하고, AWS Code Deploy를 이용해 배포하는 환경을 구축할 것이다. 본격적으로 시작하기 전에 CI/CD 파이프

owin2828.github.io