CI/CD 용어
CI(Continuous Integration): 지속적인 통합으로 빌드 및 테스트 과정을 자동화하는 것.
CD(Continuous Deployment): 지속적인 배포로 배포의 과정을 자동화하는 것.
CI/CD Tool 들을 비교해보면
Jenkins | CircleCI | TeamCity | Bamboo | GitLab | |
Open Source | O | X | X | X | X |
Price | Free | $39/month | $299/one-off payment | $10/one-off payment | $4/month |
Supported OS | Windows, Linux, MacOS, Unix-like OS | Linux, MacOS | Windows, Linux, MacOS, Solaris, FreeBSD | Windows, Linux, MacOS, Solaris | Linux distributions:Ubuntu, Debian, CentOS, Oracle Linux |
Hosting | On premise &Cloud | On premise &Cloud | On premise | On premise & Bitbucket as Cloud | On premise &Cloud |
Integrations And Plugins |
Limit 1800+ Plugins | 150 Integration | 400+ Plugins | 185+ plugins | Jira |
Supported Git Repos | Any Git repository | GitHub, GitLab, BitBucket | GitHub, GitLab, BitBucket | Any Git repository | Any Git repository |
각 툴들의 장단점
Jenkins
장점
-오픈소스
-인기있는 클라우드 플랫폼과 통합
-병렬로 작업 수행
단점
-많은 Plugin으로 인한 세팅이 복잡
-AWS EC2를 사용하면 젠킨스만을 위한 인스턴스 필요
-호스팅을 위한 서버 관리 비용이 든다.
TeamCity
장점
-병렬 빌드로 다른 빌드와 동시에 빌드를 실행 가능
-Docker, Visual Studio Team Services, Maven, NuGet 등과 통합
-실행 기록, 테스트 진행 상황을 즉석에서 확인하고 즐겨찾기 빌드를 추가 가능
단점
-plugin이 Jenkinds에 비해 적다
-일정 규모이상에서 유료 플랜이 필요하다
CircleCI
장점
-CI/CD 파이프라인을 워크플로로 제공
-재사용 가능한 코드 조각인 CircleCI Orbs로 반복적인 프로세서 자동화
단점
-빌드를 한번에 하나씩 밖에 지원하지 못함
Bamboo
장점
-자체 호스팅 및 클라우드 기반 변형으로 제공된다.
-Atlassian 제품과 완벽한 통합을 제공하여 Bitrbucket, Jira 을 통합 지원
-CLI 컴포넌트로 Git, Maven, Docker 등이 필요하다.
단점
-비용이 비싸다
-project, plan, stage, take의 개념이 복잡해서 제대로 쓰기에 시간이 걸림
GitLab
장점
-Community 버전으로 설치 시 개인 서버를 무료로 이용가능
-클라우드 버전 관리 시스템은 10명 이하의 프로젝트는 무료로 이용가능
-Git 원격 저장소 제공한다
단점
-plugin의 종류수가 적다
-모든 job에 대해 artifact를 정의 및 업로드,다운로드 해야함