-
SpringBoot CI/CD 도입전 분석(젠킨스 vs 트레비스)프로젝트/게시판 프로젝트 2022. 6. 8. 03:39
예전에 CI/CD를 공부하기 위해 간단하게 정리한 글이 있었습니다.
CI : Continuous Integration
개발자를 위한 자동화 프로세스로 지속적인 통합하는 방식
만약 주기적으로 통합을 하지 않고 오래 시간이 지난 후 통합을 하면 큰 충돌이 날 확률이 높습니다.
CD : Continuous Deployment 또는 Continuous Delivery
Deployment는 배포 단계를 자동화, Delivery는 배포 단계를 수동화한 것을 나타냅니다.
CI 이후에 서버에 배포까지 자동으로 이루어짐을 의미합니다.
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
https://owin2828.github.io/devlog/2020/01/09/cicd-1.html
'프로젝트 > 게시판 프로젝트' 카테고리의 다른 글
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