-
SpringBoot CI/CD 도입전 분석(젠킨스 vs 트레비스)프로젝트/게시판 프로젝트 2022. 6. 8. 03:39반응형
예전에 CI/CD를 공부하기 위해 간단하게 정리한 글이 있었습니다.
[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
'프로젝트 > 게시판 프로젝트' 카테고리의 다른 글
EC2 자바 11 설치 및 타임존 설정 , HostName 변경 (0) 2022.06.10 AWS가입 및 EC2 인스턴스 생성 (0) 2022.06.09 Spring REST Docs 적용하기(+ html 생성안됨 에러 해결, ./grdlew build 에러 해결, 각종에러해결) (0) 2022.06.07 JPA Table에 Unique Index 달기 (0) 2022.06.03 API 문서화를 위한 Swagger와 Spring Rest Docs 비교 (0) 2022.05.31