본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

 

강의 요약

오늘 강의에서는 여전히 가장 높은 사용률을 기록하는 Jenkins를 다뤘다. Jenkins는 Java 기반 오픈소스 자동화 서버로, 1,800개 이상의 플러그인 생태계와 활발한 커뮤니티를 보유하고 있다. Groovy 기반 Jenkinsfile을 통한 Pipeline as Code와 Master-Slave 아키텍처를 통한 분산 빌드가 핵심 강점이다.

 

실습에서는 ngrok을 활용하여 로컬 환경에서 Jenkins 파이프라인을 구성했다. ngrok은 로컬 서버를 외부에 안전하게 노출시키는 터널링 도구로, GitHub webhook 같은 외부 이벤트를 로컬 Jenkins로 전달받을 수 있게 해준다. SSH와 암호화 개념도 함께 다뤘는데, CI/CD 파이프라인에서 원격 서버 접근, credential 관리, 보안 통신이 필수적이기 때문이다.

 

젠킨스 외에도 ci/cd 도구들이 궁금해져서 다른 도구들에 대해서도 간단하게 조사해보았다.

 

CI/CD 도구 선택의 핵심 기준

오픈소스 vs 상용 솔루션

오픈소스 도구는 무료지만 커뮤니티 지원에 의존하며, 상용 솔루션은 SLA 기반 기술 지원과 정기 업데이트를 제공한다. Jenkins, GitLab, Drone, Spinnaker, Argo CD는 오픈소스 옵션을 제공하는 반면, CircleCI, TeamCity, Azure DevOps, Harness는 상용이지만 제한적인 무료 티어를 제공한다.

 

클라우드 vs 셀프호스팅

2024년 조사에 따르면 41%의 개발자가 클라우드 기반 CI 도구로 전환했다. GitHub Actions, CircleCI, Travis CI는 클라우드 네이티브로 즉시 사용 가능하고 인프라 관리가 불필요하다. 반면 Jenkins, TeamCity, Bamboo는 셀프호스팅을 지원하여 완전한 통제권을 제공하지만, 설치와 유지보수 책임이 따른다.

 

통합 생태계

CI/CD 파이프라인은 VCS, 이슈 트래커, 클라우드 인프라와 긴밀하게 통합되어야 한다. GitHub Actions는 GitHub 생태계에, GitLab CI/CD는 GitLab 플랫폼에, Bitbucket Pipelines는 Atlassian 제품군에 최적화되어 있다.

 

주요 CI/CD 도구 분석

GitHub Actions : 개인 프로젝트에서 1위를 차지한 도구로, GitHub 레포지토리에 네이티브 통합되어 .github/workflows 폴더만으로 즉시 시작할 수 있다. YAML 기반 워크플로우와 방대한 Actions 마켓플레이스, 매트릭스 빌드를 통한 멀티 환경 테스트가 강점이다. 퍼블릭 레포에서는 무료다.

 

GitLab CI/CD : 전체 DevOps 라이프사이클을 단일 플랫폼에서 관리한다. Git 호스팅, 코드 리뷰, 이슈 트래킹, CI/CD, 컨테이너 레지스트리, DevSecOps를 통합 제공한다. Auto DevOps 기능으로 베스트 프랙티스 기반 자동 구성이 가능하며, 셀프호스팅과 클라우드 옵션을 모두 지원한다.

 

Azure DevOps : Microsoft의 엔터프라이즈 플랫폼으로 Azure Repos, Boards, Pipelines, Artifacts, Test Plans를 포함한다. .NET 애플리케이션과 Azure 인프라에 최적화되어 있으며, 무료 티어에서 5명 사용자와 1,800분 CI/CD 시간을 제공한다.

 

CircleCI : 클라우드 네이티브 고성능 플랫폼이다. Orbs라는 재사용 가능한 설정 패키지로 복잡한 파이프라인을 단순화하고, SSH 실시간 디버깅과 GPU 기반 파이프라인을 지원한다. FedRAMP 및 SOC 2 준수로 엔터프라이즈 보안 요구사항을 충족한다.

 

TeamCity : JetBrains의 강력한 CI/CD 서버로, UI와 Kotlin DSL 모두로 파이프라인을 정의할 수 있다. 빌드 체인, 스마트 테스트 재실행, Flaky 테스트 감지 등 고급 기능을 제공한다. 무료 버전에서 3개 빌드 에이전트와 무제한 빌드를 지원한다.

 

컨테이너 환경 특화 도구 : Kubernetes 환경에서는 Argo CD와 Spinnaker가 주목받는다. Argo CD는 GitOps 방식으로 Git을 단일 진실 공급원으로 사용하며, Spinnaker는 Netflix에서 개발한 멀티 클라우드 CD 플랫폼으로 카나리 배포, 블루-그린 배포 같은 정교한 전략을 지원한다.

 

간편한 통합 도구 : Travis CI는 오픈소스 프로젝트에서 인기가 높고 .travis.yml 하나로 빠르게 시작할 수 있다. Bitbucket Pipelines는 Atlassian 생태계에 통합되어 있으며, Harness는 자동 롤백과 배포 검증 기능으로 프로덕션 안정성에 집중한다.

 

 

도구 선택 시 고려해야 할 핵심 요소

CI/CD 도구를 선택할 때는 현재 요구사항뿐 아니라 프로젝트의 성장 가능성도 함께 고려해야 한다. 가장 먼저 확인할 것은 기존 기술 스택과의 호환성이다. 사용 중인 VCS 시스템(GitHub, GitLab, Bitbucket), 프로그래밍 언어, 빌드 도구, 배포 환경이 해당 CI/CD 도구와 얼마나 자연스럽게 통합되는가가 중요하다. GitHub을 사용한다면 GitHub Actions가, GitLab이라면 GitLab CI/CD가 추가 설정 없이 즉시 사용 가능하다.

 

팀의 규모와 DevOps 성숙도도 중요한 판단 기준이다. 소규모 팀이나 빠른 프로토타입이 필요하다면 GitHub Actions나 Travis CI처럼 학습 곡선이 낮고 즉시 시작할 수 있는 도구가 적합할 것 같다. 반면 복잡한 배포 전략과 세밀한 통제가 필요한 엔터프라이즈 환경이라면 Jenkins, TeamCity, Harness 같은 도구가 더 나을 수 있을 것이다.

 

인프라 관리 역량도 고려해야 한다. 셀프호스팅 도구(Jenkins, TeamCity, Bamboo)는 완전한 통제권을 제공하지만 설치, 업그레이드, 모니터링에 대한 책임이 따른다. 클라우드 기반 도구(GitHub Actions, CircleCI, Azure DevOps)는 인프라 관리 부담 없이 즉시 사용할 수 있지만, 비용 구조와 벤더 종속성을 검토해야할 것이다.

 

비용 구조는 단순히 라이선스 비용만이 아니다. 빌드 시간, 동시 실행 작업 수, 스토리지, 네트워크 전송량 등 사용량 기반 과금 모델을 정확히 이해하고, 프로젝트 규모가 커졌을 때의 비용 증가를 예측하면 좋을 것 같다.

 

마지막으로, 도구는 고정된 것이 아니라는 생각이 들었다. 초기에는 간단한 도구로 시작해서, 팀과 프로젝트가 성장하면서 더 강력한 도구로 전환하는 것도 전략적 선택일 수 있을 것 같다.

 

참고 출처

 

 

시작 시간
종료 시간
학습 인증
수강 인증

https://fastcampus.info/4oKQD6b

+ Recent posts