개발자 / 클라우드

서비스로서의 CI/CD : 클라우드의 지속적 통합과 제공을 위한 10가지 툴

Peter Wayner | InfoWorld 2019.03.21

비트버킷 파이프라인(Bitbucket Pipelines)

작업 추적 보드인 지라(Jira), 코드 리포지토리 비트버킷(Bitbucket)을 개발한 아틀라시안(Atlassian)은 개발자 워크플로에 대한 주도권을 발판으로 비트버킷 클라우드의 CI 툴인 비트버킷 파이프라인을 만들었다. 이 툴의 핵심은 더 많은 통합이다. 통합은 빌드 메커니즘과 아틀라시안의 다른 툴 간의 연결이라는 형식으로 이뤄진다. 적어도 외견상으로 파이프라인은 별도의 요소조차 아니며, 비트버킷의 각 프로젝트를 위한 또 다른 메뉴 옵션일 뿐이다. 여기서 또 다른 메뉴 옵션이란 배포를 의미한다. 빌드의 결과물이 위치하는 곳을 선택할 수 있다.

연결에는 좋은 점도 있고 제약도 있다. 주요 언어(자바, 자바스크립트, 파이썬, PHP, 닷넷 등)용으로 이미 정의된 템플릿 중 하나를 선택하면 몇 번의 클릭만으로 코드를 빌드하고 배포할 수 있다. 그러나 이 표준에서 벗어나면 선택 범위가 급격히 좁아진다. 아틀라시안은 앱 마켓플레이스를 권장하는데, 마켓플레이스는 다른 서비스로 연결되는 웹훅과 차트를 섞어 놓은 듯한 모습이다. 현재 시점에서 차트의 최상위 앱은 비트버킷을 젠킨스에 연결하는 앱이다. 내부적으로 신속하게 실행할 수 없는 어떤 작업을 하기 위한 용도로 보인다.

비트버킷 파이프라인의 가장 큰 이점은 속도다. 아틀라시안이 코드에서 배포 실행에 이르기까지의 주요 과정 대부분을 사전 설계했으므로 약간의 비용을 지불하고 그대로 따라가기만 하면 된다. 빌드는 대부분의 서버리스 모델과 같이 분 단위로 가격이 책정되지만 팀 작업에서는 젠킨스 빌드를 처리하기 위해 인스턴스 클러스터를 온전히 투입하는 경우가 많으므로 비트버킷 사용 비용을 비교하기는 어렵다. 야간과 주말에 작업을 종료한다 해도 이 시간은 쌓인다.
 

깃랩 CI/CD(GitLab CI/CD)

아틀라시안의 가장 큰 경쟁 상대는 깃랩이다. 깃랩 역시 개발자의 손가락부터 배포 실행에 이르기까지의 모든 단계를 처리한다. 깃랩의 빌드, 테스트, 배포 메커니즘도 깃 리포지토리에 직접 연결되므로 커밋 시 트리거가 가능하다. 프로세스는 주로 도커 컨테이너를 중심으로 구축되며, 이 캐싱으로 젠킨스 빌드에 필요한 구성 작업 일부를 대폭 간소화할 수 있다.

빌드 작업은 모든 언어를 대상으로 할 수 있지만, 깃랩 러너(Runner)로 트리거되어야 한다. 깃랩 러너는 대부분의 플랫폼에서 사용 가능한 고(Go)로 작성된 자동 확장 툴이다. 상당히 유연해서 다른 시스템의 어떤 작업이든 트리거할 수 있다. 단순히 마이크로서비스를 제공하는 이상의 작업을 하는 아키텍처에서 사용할 때 유용할 것으로 보인다.

가격은 필요에 따른 다양한 등급으로 정해진다. 예를 들어 골드(Gold) 등급 그룹은 보안 대시보드, 공유 클러스터에서 5만 분 분량의 빌드를 포함한 모든 고급 기능을 사용할 수 있다. 프로세스의 일부에서 본인의 시스템을 사용하거나 다른 클라우드에 있는 별도의 인스턴스를 사용하는 부분에는 비용이 청구되지 않는다.

서클CI(CircleCI)

CI 툴의 상당수는 리눅스 환경에 빌드할 수 있는 코드에 초점을 둔다. 서클CI는 리눅스 환경에서 빌드하고 결과를 제공하지만, 안드로이드 앱, 그리고 애플 엑스코드(iOS, 맥OS, tvOS, 워치OS용)의 결과물을 빌드하는 제품도 제공한다. 이들 플랫폼용 앱을 제작하는 팀에서 작업하는 경우 코드를 커밋하면 서클CI가 팀에서 생산한 다양한 요소에 테스트 원칙을 적용한다.

작업 목록은 YAML 파일에 나열된다. 서클CI는 모든 다중 계층에서 도커를 사용해서 코드 테스트 환경을 구성한다. 빌드와 테스트 모두 새 컨테이너로 시작된다. 맥 작업은 수명이 짧은 가상머신에서 실행된다. 이렇게 하면 이전의 잔유물이 없는 깨끗한 환경이 준비되므로 구성에서 발생하는 여러 문제를 방지할 수 있다. (정리되지 않은 디지털 쓰레기에 의해 문제가 발생한다면 개발자 본인의 잘못이다.)

가격을 결정하는 주 요소는 빌드에서 소비하는 CPU의 양이다. 사용자 수와 리포지토리 수에는 제한이 없지만 빌드 수(분 단위)와 이 빌드를 수행하는 컨테이너의 수는 계측된다. 첫 번째 컨테이너는 무료이며 이 안에서 하나의 빌드를 실행할 수 있다. 추가로 병렬 처리가 필요하거나 더 많은 처리량이 필요한 경우 비용을 더 내야 한다. 맥 사용자에게는 무료로 제공되는 부분이 없지만 서비스를 테스트하고자 하는 모든 사용자를 위한 입문 요금제가 있다.
 

트래비스 CI(Travis CI)

빌드에서 생성되는 코드를 윈도우 시스템에서 테스트해야 하는 경우 트래비스 CI에서 간편히 할 수 있다. 이 업체는 꽤 오래 전부터 맥OS와 리눅스 옵션을 제공했지만, 윈도우 옵션은 최근 들어 출시했다. 덕분에 더 간편히 코드를 생성해서 더 많은 곳에서 실행할 수 있게 됐다.

작업 목록은 역시 YAML로 생성되며, 작업은 깨끗한 가상 시스템에서 표준 구성으로 실행된다. 리눅스 코드에는 기본적인 우분투 버전이 제공되고, 맥 코드는 십여 가지의 OS X 및 엑스코드와 JDK 조합에서 실행된다. 윈도우 코드는 현재로서는 한 버전의 윈도우 서버(1803)에서만 사용할 수 있다. 트래비스 CI는 사전 구성되어 있어 바로 실행이 가능한 30가지 언어 및 빌드 규칙을 제공한다.

가격은 동시에 실행 가능한 작업의 수에 따라 결정되며 빌드가 점유할 수 있는 시간(분)에는 공식적인 제한이 없다. 항상 준비된 상태로 작업에 사용할 수 있는 고정된 수의 전용 인스턴스가 있다고 보면 된다. 전용 작업 용도로는 무료 옵션이 없지만 오픈소스 프로젝트는 “항상 무료”이므로 트래비스 CI를 시험할 수 있는 가장 간편한 방법이다.
 

애저 파이프라인(Azure Pipelines)

지금의 마이크로소프트에 배타적인 면이 있는지 궁금하다면 애저 파이프라인을 보면 답을 얻을 수 있다. 판촉 자료에는 “모든 언어, 모든 플랫폼”이라는 문구가 나온다. 애저에 ENIAC 프로그래머를 위한 기능은 별로 없을 테니 이 표현은 다소 과장이라고 할 수 있지만, 애저는 실제로 마이크로소프트, 리눅스, 맥OS 옵션을 제공한다. 애플 쪽으로는 맥OS 빌드만 지원하고 iOS나 tvOS, 워치OS는 제외되지만 사실 이걸 지적한다면 꼬투리잡기에 가깝다. 적어도 절반보다는 훨씬 더 많은 물을 채운 컵이라고 할 수 있다.

개략적으로 보면 다른 시스템과 비슷하다. 빌드를 실행해서 아티팩트를 생성하는 에이전트가 있다. 이 중 일부는 필요하다면 자체 호스팅이 가능하다. 스택은 도커 컨테이너를 온전히 포용하며 애저 하드웨어에서 언제든 이를 실행할 수 있다. 이와 같은 모든 세부 요소는 웹페이지에 내장된 시각적 디자이너를 사용해서 조합하거나, 명령줄 환경이 편하다면 YAML로 지정할 수 있다.

무료 “병렬 작업”과 1,800분의 빌드 시간이 제공된다. 더 많은 병렬 처리 또는 더 많은 빌드 시간이 필요하다면 유료 서비스를 사용해야 한다. 요금제에는 오픈소스 프로젝트에 적용되는 상당히 후한 무료 등급이 포함된다. 오픈소스 커뮤니티에 참여하고자 하는 마이크로소프트의 의도를 볼 수 있다. 그러나 마이크로소프트가 테이블의 한 자리를 사기 위해 75억 달러를 들여 깃허브를 인수한다면, 그것도 충분히 타당한 선택이다. 이 모든 코드는 어디서 실행될까? 애저 파이프라인은 애저 하드웨어로 매끄럽게 코드를 전달해준다.
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.