TeamCity
Powerful CI/CD for DevOps-centric teams
CI/CD 도구를 선택하는 방법: 프레임워크
조직에 맞는 CI/CD 도구는 선택의 폭이 넓습니다. G2와 같은 타사 웹사이트에서 직접 기능을 비교하면 도구의 핵심 기능을 확실하게 이해할 수 있습니다.
하지만 도구가 특정 요구 사항을 충족할 수 있는지, 사용하기 쉬운지, 업계 규정을 얼마나 준수하는지 파악하기는 여전히 어려울 수 있습니다.
이 블로그 게시물에서는 적절한 CI/CD 솔루션을 선택하기 위한 일반적인 지침을 제공하고 TeamCity가 이 프레임워크에서 어떤 위치에 있는지 자세히 알아봅니다. 이 글을 통해 조직에 가장 적합한 도구를 선택할 때 정보에 기반하여 결정하실 수 있기를 바랍니다.
요구 사항과 목적에 부합하는 CI/CD 도구 선택
CI/CD 솔루션에 대한 요구 사항은 팀마다 크게 다를 수 있으므로, 어떤 팀에는 완벽한 도구가 다른 팀에는 적합하지 않을 수도 있습니다.
여기서는 팀에 맞는 CI/CD 솔루션을 선택할 때 고려해야 할 7가지 주요 요소를 제안합니다.
- 개발 워크플로. 솔루션은 맞춤형 스크립트나 플러그인을 너무 많이 작성할 필요 없이 개발 워크플로에 원활하게 통합되어야 합니다.
- 파이프라인 구성. 빌드 단계 간에 아티팩트와 종속성의 적절한 흐름이 가능하도록 환경, 보안 검사, 승인 등을 유연하게 설정할 수 있어야 합니다.
- 피드백 및 분석. CI/CD 솔루션은 빠른 문제 해결과 중단 없는 전달 프로세스를 보장하기 위해 오류 메시지부터 인프라 성능까지 여러 수준에서 포괄적인 피드백을 제공해야 합니다.
- 확장성 및 유지 관리. 한 도구에서 다른 도구로 전환하려면 수개월이 걸릴 수 있으므로 처음부터 향후 요구 사항을 모두 충족할 수 있는 솔루션을 사용해야 합니다.
- 보안. 악의적인 공격자가 소스 코드를 가로채거나, 인프라를 해킹하거나, 최종 제품을 손상시키는 것을 막을 수 있어야 합니다.
- 비용 효율성. CI/CD 솔루션을 평가할 때는 라이선스나 구독 가격뿐만 아니라 운영 및 유지 관리 비용도 고려해야 합니다.
- 사용성 및 지원. 지속적 배포에 대한 사전 경험이 없더라도 모든 개발자는 프로젝트가 어떻게 빌드되고 배포되는지, 변경 사항을 더 빠르게 전달하기 위한 도구의 효과적 사용 방법은 무엇인지 이해할 수 있어야 합니다.
- 호스팅 모델. 회사의 필요에 따라 클라우드 또는 자체 호스팅 솔루션의 사용을 고려할 수 있습니다. 두 옵션 모두 장점이 있으므로 최종 선택은 전적으로 고유한 요구 사항에 따라야 합니다.
모든 최신 솔루션은 Docker 지원, 코드로 구성 또는 풀 리퀘스트 자동 빌드와 같은 필수 기능을 제공합니다. 소규모 프로젝트의 경우, 이러한 솔루션 간의 차이가 그다지 크지 않을 수 있습니다.
하지만 팀이 성장하고 워크플로가 더욱 복잡해짐에 따라 파이프라인을 올바르게 구성하고 의도한 대로 작동하게 만들기가 점점 더 어려워집니다. 이러한 경우 CI/CD 도구마다 느끼는 차이점이 크게 다를 수 있습니다.
개발 워크플로
지속적 통합 도구를 평가할 때는 도구를 워크플로에 맞게 어느 정도까지 맞춤화할 수 있는지, 팀이 도구에 맞게 프로세스를 어느 정도까지 조정해야 하는지 이해하는 것이 중요합니다. 다음과 같은 측면을 고려하세요.
변경 워크플로의 다양성
모든 풀 리퀘스트를 빌드하거나, 누군가가 특정 브랜치에 커밋할 때 파이프라인을 실행하거나, 특정 사용자가 특정 디렉터리 내에서 파일을 변경할 때 빌드를 트리거하는 등 팀에 따라 특정한 기능이 필요할 수 있습니다.
때로는 손상된 코드를 커밋하지 않고 팀원의 작업에 부정적인 영향을 미치지 않도록 저장소에 변경 사항을 커밋하지 않은 채 빌드 파이프라인을 실행해야 할 수도 있습니다.
코드는 다양한 유형의 여러 버전 관리 시스템(VCS)에 분산시켜 놓거나 단일 저장소에 둘 수 있습니다. Maven 패키지 또는 Docker 컨테이너와 같은 외부 종속성이 업데이트될 때마다 애플리케이션을 다시 빌드하고 다시 배포해야 할 수도 있습니다.
CI/CD 도구가 특정 변경 워크플로를 잘 지원해주는지 주의 깊게 평가하면 도구가 팀에 적합한지 확인하고 자체 프로세스를 변경해야 할 필요성을 최소화할 수 있습니다.
Docker 및 비 Docker 워크플로
Docker는 다양한 유형의 애플리케이션을 빌드하는 데 편리하고 효율적인 접근 방식을 제공할 수 있지만 실제 OS에서 실행해야 하는 상황도 있습니다. 예를 들어, 애플리케이션이 Docker 컨테이너에서 액세스할 수 없는 하드웨어 구성 요소와 통합되어야 하는 경우 OS 기반 워크플로가 필요할 수 있습니다.
마찬가지로, 시스템 드라이버나 Windows 서비스를 개발할 때와 같이 소프트웨어에 OS와의 상호 작용이 필요한 경우 Docker 기반 워크플로는 팀의 요구 사항을 충분히 충족하지 못할 수 있습니다.
팀에 가장 적합한 CI 도구를 선택할 때는 고유한 프로젝트 요구 사항을 평가하고 두 접근 방식의 장점과 한계를 고려하세요.
팀 성숙도
지속적 통합의 여정을 막 시작한 팀은 특정 솔루션에 맞게 워크플로를 조정하는 데 더 유연할 수 있습니다. 따라서 구성 가능한 옵션이 적은 도구가 더 간소하고 능률적인 사용자 경험을 제공할 수 있습니다.
반면, 해당 요구 사항을 정확하게 이해하고 있는 고도로 숙련된 팀에게는 포괄적인 DevOps 플랫폼이 제한적일 수 있습니다. 이러한 솔루션은 필요한 수준의 유연성과 맞춤화를 제공하지 못할 수 있기 때문입니다.
마이그레이션의 용이성
새로운 CI/CD 도구를 선택할 때 중요하게 고려해야 할 사항 중 하나는 마이그레이션의 용이성입니다. 많은 경우에 완전한 DevOps 플랫폼보다는 독립형 솔루션으로 마이그레이션하는 것이 더 간단할 수 있습니다. 이렇게 하면 사용자가 일괄적으로 마이그레이션할 수 있고, 수작업으로 작성해야 하는 통합 코드가 줄어들며, 개발 워크플로의 중단이 최소화됩니다.
조직 관련 측면
특히 팀에서 자체적으로 자체 개발 도구를 선택할 수 있다면, 조직의 문화와 정책을 고려하는 것이 중요합니다.
일부 팀원은 워크플로의 변화에 저항감을 나타낼 수 있으며, 특히 현재 도구가 익숙하고 편하다면 더욱 그러할 것입니다.
TeamCity의 개발 워크플로 지원
TeamCity는 다음 워크플로에 매우 적합합니다.
- 여러 VCS 지원
- 커밋하지 않고 CI/CD 프로세스 실행 가능
- 변경 사항을 세부적으로 제어(브랜치, 사용자 이름, 파일 마스크 등을 기준으로 필터링)
- 트리거가 정의된 매개변수
- 다른 도구와 통합할 수 있는 포괄적인 API
플랫폼의 간소화된 경험과 독립형 도구의 유연성 중에서 하나를 선택하는 것이 까다로울 수 있지만, 다행인 점은 둘 중 하나가 반드시 다른 하나를 사용하는 데 방해가 되지는 않는다는 것입니다.
팀에서 여러 CI/CD 도구를 동시에 사용하는 것이 일반적이므로 적절한 통합이 이루어지기만 한다면 독립형 솔루션과 포괄적인 DevOps 플랫폼을 함께 사용할 수도 있습니다.
파이프라인 구성
모든 팀에는 고유한 워크플로와 요구 사항이 있으므로 이러한 요구를 완벽하게 충족하는 맞춤형 솔루션을 사용하는 것이 중요합니다. CI/CD 도구를 선택할 때 고려할 수 있는 다양한 유형의 파이프라인 구성을 소개합니다.
UI 및 코드 기반 구성
일부 도구는 쉽게 시작하고 설정을 간편하게 유지 관리할 수 있는 UI 기반 구성 방식을 제공하여 특별한 지식 없이도 파이프라인을 구성할 수 있게 해줍니다.
모든 최신 도구는 버전별 구성 기록을 제공하는 코드로서의 구성을 지원합니다.
수많은 도구가 간단한 앱의 빌드와 테스트를 쉽게 자동화할 수 있게 도와주는 YAML 구성을 사용합니다. 그러나 팀과 인프라가 더욱 복잡해짐에 따라 YAML 파일을 관리하기가 점점 더 어려워질 수 있습니다.
대규모 프로젝트의 경우 루프, 조건문 및 기타 언어 구문을 지원하는 완전한 프로그래밍 언어를 사용하여 CI/CD를 구성하는 것이 더 효과적일 수 있습니다. 또한 IDE에서 구성 코드를 쉽게 작성하고 리팩터링 및 디버그 기능을 활용할 수 있습니다.
워크플로 사용자 지정
사용자 지정은 팀의 특정한 빌드 및 배포 워크플로와 일치하는 파이프라인을 생성할 수 있게 해주므로 지속적 통합 및 지속적 전달 소프트웨어를 선택할 때 중요하게 고려해야 하는 측면입니다.
코드 커밋, 종속성 업데이트 또는 예약된 트리거와 같은 트리거 이벤트에 따라 팀은 빌드 환경, 테스트 범위, Docker 이미지 태그 및 기타 파이프라인 구성 요소를 사용자 지정할 수 있습니다.
동일한 빌드 에이전트에서 특정 단계를 순차적으로 실행해야 하는 경우(예: Windows 서비스를 시작한 다음 동일한 시스템에서 빌드를 실행하려는 경우) 필요에 따라 이를 정확하게 설정할 수 있는 도구를 선택해야 합니다.
환경 구성
CI/CD 도구를 선택할 때 환경 구성의 측면에서 제공되는 사용자 지정의 수준을 고려하는 것이 중요합니다. 특히, 팀은 Docker 컨테이너, 클라우드 빌드 에이전트, 베어메탈 서버 또는 하이브리드 옵션 중 무엇을 사용하든 요구 사항에 가장 적합한 빌드 환경을 선택할 수 있어야 합니다.
💡참조: TeamCity의 빌드 인프라 기능
파이프라인 최적화
위의 확장성 섹션에서 설명한 바와 같이, 팀이 빌드를 더 빠르게 완성하고 피드백 루프를 단축하는 데 도움이 될 수 있는 다양한 최적화 기술이 있습니다.
중요한 최적화 기술 중 하나는 종속성을 캐시 처리하는 것입니다. 이 기술은 빌드가 실행될 때마다 종속성을 다운로드하고 설치할 필요가 없도록 하여 빌드 시간을 최소화시킵니다. 또한, 이전에 빌드된 구성 요소를 후속 빌드에서 재사용할 수 있는 빌드 아티팩트의 재사용도 빌드 시간을 더욱 줄이는 데 보탬이 될 수 있습니다.
여러 빌드 에이전트에 걸쳐 테스트를 병렬화하는 것도 대규모 프로젝트에서 파이프라인을 최적화하는 또 다른 효과적인 방법입니다. 여러 빌드 에이전트에 테스트를 분산함으로써 팀은 모든 테스트를 실행하는 데 필요한 시간을 줄여 피드백 루프를 단축하고 문제를 더 빠르게 확인하여 해결할 수 있습니다.
💡병렬 테스트는 TeamCity를 개발하고 테스트하는 방식에 혁신을 가져왔습니다. 자체 통합 테스트 시간이 4시간에서 약 20분으로 10배 이상 단축되었습니다.
아티팩트 관리
아티팩트를 생성하고 전파하는 일은 모든 CI/CD 파이프라인에 필수 불가결합니다. 아티팩트를 사용하면 빌드가 서로 ‘소통’하고 한 빌드에서 다른 빌드로 데이터를 전달할 수 있습니다.
아티팩트를 저장할 수 있는 도구를 선택하면 빌드에서 생성된 데이터를 저장하여 후속 분석과 디버그를 수행할 수 있습니다.
피드백 및 분석
CI/CD의 주된 목적은 소프트웨어 변경 사항에 대한 피드백을 받는 데 걸리는 시간을 줄이는 것입니다. 가장 실효성 있는 피드백은 특정 코드 변경과 직접적으로 연결되어 빌드 및 배포 상태는 물론 성능과 품질 메트릭의 변경에 대한 정보를 제공하는 피드백입니다.
CI/CD 솔루션을 평가할 때 다음 측면을 고려해야 합니다.
빌드 결과 분석
CI/CD 솔루션은 실패한 테스트, 빌드 시간, 오류 로그 및 기타 주요 지표에 대한 정보를 포함하여 빌드 결과에 대한 상세한 분석을 제공해야 합니다. 이러한 정보는 쉽게 액세스할 수 있어야 하고 개발자가 문제를 신속하게 식별하고 해결할 수 있는 방식으로 제공되어야 합니다.
트렌드
팀이 시간에 따른 빌드 및 배포 성과의 변화 추이를 추적할 수 있도록 트렌드 분석 기능을 제공하는 도구가 필요합니다. 이를 통해 팀은 패턴과 트렌드를 확인하고 잠재적인 문제가 더 심각해지기 전에 해결할 수 있습니다.
성능 모니터링
병목 현상을 식별하고 CI/CD 프로세스의 효율성에 영향을 미치는 문제를 해결하려면 빌드 에이전트의 성능 특성을 파악하고 빌드 인프라에 더 많은 리소스를 프로비저닝해야 할지 여부를 확인할 수 있어야 합니다.
TeamCity의 성능 모니터링
VCS 및 이슈 트래커 통합
CI/CD 도구는 버전 관리 시스템 및 이슈 트래커와 통합함으로써 피드백 제공의 기회를 더 넓게 열어줍니다.
불안정한 테스트 탐지
지속적 통합 도구에서 불안정한 테스트를 분석하고 탐지할 수 있는 것이 중요합니다. 피드백 루프를 단축하고 개발 프로세스의 속도를 높이려면 불안정한 테스트를 식별하고 테스트 결과에서 강조 표시해줄 수 있는 도구를 찾으세요.
확장성 및 유지관리
소프트웨어 프로젝트는 규모와 복잡성이 커지는 경향이 있습니다. 안정적인 CI/CD 시스템은 이러한 성장을 수용하고 파이프라인, 빌드, 사용자, 역할 및 워크플로 수의 증가에 보조를 맞출 수 있어야 합니다.
팀 작업에 걸림돌이 생기지 않도록 시스템은 리소스를 효율적으로 관리할 수 있어야 할 뿐만 아니라, 발생하는 모든 문제를 신속하게 해결할 수 있는 모니터링 및 유지 관리 도구를 갖추고 있어야 합니다.
다음 요소를 고려하면 팀에 필요한 확장성 수준을 쉽게 알 수 있습니다.
사용자 관리
소규모 프로젝트에서는 일반적으로 빌드를 트리거하고, 빌드 결과를 확인하고, 파이프라인 구성을 수정할 수 있는 사람을 정의하는 기본적인 역할 기반의 액세스 규칙만으로 충분합니다. 대규모 팀에는 LDAP 통합 또는 싱글 사인온(SSO) 지원, 2단계 인증, 프로젝트 계층 구조, 세분화된 권한 관리, 승인 워크플로 및 감사와 같은 고급 기능이 필요합니다.
💡참조: TeamCity의 사용자 관리 기능
파이프라인 최적화
커밋 빈도가 증가하고 워크플로가 복잡해짐에 따라 CI/CD 리소스를 효율적으로 활용하는 것이 중요해집니다. 이를 위해 빌드 아티팩트를 재사용하고, 불필요한 재빌드 횟수를 최소화하는 외에도 빌드 대기열 재정렬, 테스트 병렬화 등의 기능을 이용할 수 있습니다.
프로젝트 템플릿
조직의 규모가 클수록 프로젝트 템플릿을 사용하여 더 많은 이점을 얻을 수 있습니다. 일반적인 워크플로를 표준화하면 파이프라인을 생성 및 유지 관리하고, 팀 간의 공동 작업을 개선하며, 잘못된 구성을 방지하고, CI/CD 파이프라인의 보안을 강화하는 데 필요한 노력을 크게 줄일 수 있습니다.
이 사례 연구에서는 수상 경력에 빛나는 게임 개발사인 Gearbox가 TeamCity의 재사용 가능한 프로젝트 템플릿을 사용하여 CI/CD 프로세스를 간소화하고 CI/CD 방식을 표준화할 수 있었던 방법을 소개합니다.
성능 및 내결함성
프로젝트 수가 증가하고 컴퓨팅 리소스에 대한 수요가 커짐에 따라 빌드 인프라를 확장하고 잠재적인 가동 중단의 위험을 줄이기가 더욱 어려워집니다.
규모가 큰 기업의 일반적인 요구 사항에는 빌드 에이전트의 자동화된 프로비저닝(예: 클라우드 플랫폼과 통합)과 더 쉬운 관리를 위해 풀에 빌드 에이전트를 구성하는 것 등이 포함됩니다.
엔터프라이즈급 솔루션은 클러스터 환경에서 여러 애플리케이션 서버를 실행하는 기능과 스마트 로드 밸런싱과 같은 고가용성 기능에 많은 주의를 기울입니다.
유지 관리 및 업그레이드
CI/CD 설정에 존재하는 문제를 식별하고 해결하기 위해 관리자는 모니터링 및 로깅 도구를 갖추는 것은 물론, 필요 시 리소스를 늘리거나, 캐싱 메커니즘을 구현하거나, 아티팩트 보존 정책을 업데이트할 수 있어야 합니다.
또한 솔루션 업그레이드에 각별한 주의를 기울여야 합니다. 일부 도구는 외부 플러그인에 너무 많이 의존하고 있어 기존 기능을 그대로 유지하면서 업그레이드하기가 어렵거나 불가능할 수도 있습니다.
복잡성이 제한된 소규모 팀과 프로젝트에는 확장 가능한 CI/CD 솔루션이 중요하지 않을 수 있습니다. 그러나 팀의 규모와 프로젝트의 복잡성이 증가함에 따라 이는 소프트웨어 개발 프로세스에서 가장 중요한 측면 중 하나로 대두됩니다.
TeamCity가 확장성을 지원하는 방법
TeamCity는 종속성이 매우 높은 프로젝트를 포함하여 모든 규모의 프로젝트를 지원하며, 처리량이 많은 기간에 자동으로 확장할 수 있습니다. TeamCity Server 인스턴스 하나가 1,000개 이상의 빌드 에이전트와 안정적으로 작동할 수 있습니다.
💡자세히 알아보기: 빌드 서버 확장성 문제 해결하기
보안 기능
보안은 어떤 소프트웨어 개발 프로세스에든 중요한 고려 요소이며 특히 CI/CD 도구에는 민감한 데이터 및 시스템에 대한 신뢰할 수 있는 액세스가 제공되므로 특히 중요합니다.
솔루션을 평가할 때 다음 두 가지 주요 관점에서 보안 기능을 살펴보세요.
- 서비스의 보안. 새로운 위협과 취약점이 매일 등장함에 따라 잠재적인 공격자가 소스 코드, 시크릿 키, 빌드 인프라 또는 빌드 결과에 액세스할 수 없도록 보장하는 솔루션이 필요합니다.
- 최종 제품의 보안. 많은 CI/CD 도구는 보안 검사를 빌드 파이프라인에 통합할 수 있게 해주므로 최종 소프트웨어에서 악용될 수 있는 취약점을 배제시킬 수 있습니다.
보안보다는 속도와 효율성을 먼저 생각한 나머지 보안을 위한 모범적 방식이 무시되는 경우가 있습니다. 통합 플랫폼은 특정 공급업체의 에코시스템과 워크플로에 “얽매이는” 단점은 있지만 CI/CD 보안을 유지하기가 더 쉽습니다.
💡추가 보안 팁은 백서 ‘CI/CD 서버에 대한 공급망 공격을 방지하는 9가지 방법‘을 확인하세요.
경제적인 솔루션
파이프라인이 더욱 복잡해지고 팀 규모가 커짐에 따라 라이선스 또는 구독 가격보다는 CI/CD 시스템의 효율성에 영향을 미칠 수 있는 다른 요소가 더 중요해질 수 있습니다.
- 통계적으로, 빌드 대기열을 재정렬하고 중복 빌드를 최소화함으로써 팀은 빌드 시간과 관련 비용을 최소 30% 절약할 수 있습니다.
- CI/CD가 기본적으로 지원하는 도구와 서비스가 많을수록 사용자 지정 스크립트와 외부 통합을 작성하고 유지 관리해야 할 가능성이 줄어듭니다. 이는 유지 관리 비용에 큰 영향을 미칠 수 있습니다.
- 또한 대부분의 팀에는 지속적 통합 도구의 오류가 회사 비즈니스에 큰 영향을 미칠 수 있는 피크 기간(일반적으로 릴리스 기간)이 있습니다. 이는 특정 CI/CD 솔루션을 실제 경험해보지 않고는 평가하기 어려운 문제 중 하나입니다. 그래도 유사한 작업을 해본 다른 팀의 리뷰와 피드백을 읽어보면 이러한 문제가 어떻게 처리되는지 이해할 수 있습니다.
궁극적으로, CI/CD 솔루션의 총 소유 비용은 팀의 특정한 필요성과 요구 사항에 따라 달라집니다. 일반적으로 다음 요소를 고려하는 것이 좋습니다.
통합 비용
CI/CD를 버전 관리 시스템, 이슈 트래커, 빌드 및 테스트 프레임워크, 배포 자동화 시스템, 기타 도구와 통합하는 데는 시간과 비용이 매우 많이 소요될 수 있습니다.
유지 관리 비용
모든 CI/CD 솔루션에는 정기적인 보안 감사를 실행하고 기본 인프라를 최신 상태로 유지하며 병목 현상을 진단 및 제거하기 위한 리소스 할당이 필요합니다. 대부분의 회사의 경우, 이러한 프로세스를 지원하려면 온전한 하나의 팀이 필요합니다.
CI/CD 효율성
빌드가 지속적으로 대기열에 놓여 있고 피드백을 신속하게 받지 못한다면 CI/CD 솔루션이 제 역할을 전혀 하지 못하는 것입니다. 클라우드에서 동적으로 확장, 빌드 재사용, 테스트 병렬화와 같은 기능은 큰 규모의 기업에서 개발자 효율성에 큰 영향을 미칩니다.
피드백
효율적이고 생산적인 소프트웨어 개발을 위해서는 시기적절할 뿐만 아니라 실효성 있는 피드백 루프가 필수적으로 확보되어야 합니다. 빌드가 실패하면 개발자는 문제의 근본 원인을 신속하게 확인하고 해결 방법을 명확하게 파악해야 합니다. 빌드 실패에 대해 알림을 받는 시점부터 수정해야 할 사항을 완전히 이해하는 시점까지 무시하지 못할 정도의 지연이 발생합니다. 여기서 신뢰할 수 있는 도구가 큰 가치를 발휘할 수 있습니다.
최고의 CI/CD 도구는 빌드 로그를 분석하고 문제에 대한 정확한 정보를 제공함으로써 개발자가 모든 문제를 빠르고 확실하게 해결하는 데 도움을 주어 더 빠른 피드백 루프와 전반적인 생산성 향상을 가져올 수 있습니다.
TeamCity의 소유 비용을 줄이는 요소:
- 라이선스 비용
- 인프라 비용
- 통합 비용
- 유지 관리 비용
사용성 및 지원
기능과 사용자 경험 사이에서 최적의 균형을 찾는 일은 CI/CD 솔루션 공급업체가 끊임없이 해결해야 할 과제입니다. 소프트웨어의 사용성을 평가할 때는 다음 요소를 고려해야 합니다.
UI 일관성
프로젝트 규모가 커짐에 따라 CI/CD가 불필요하게 복잡성을 키우지 않으면서 필요한 기능을 제공하는 것이 점점 더 중요해집니다. 솔루션을 평가할 때 가장 중요한 기능이 커뮤니티에서 개발된 것이 아니라 공급업체에서 제공된 것인지 확인하세요.
“경쟁사 제품의 UI는 사용하기가 매우 불편했습니다. 훌륭한 CI/CD 시스템을 접하면 매우 견고하고 어떤 작업도 든든하게 처리해줄 것이라는 믿음이 생기죠. TeamCity의 UI는 매우 잘 다듬어졌어요. 둘러보면 기능도 탁월한 시스템이라는 확신이 들 겁니다.”
– Steve Fortier, Gearbox 수석 릴리스 엔지니어
외부 플러그인을 사용할 때는 탐색 문제가 발생하고, 인터페이스가 응답하지 않으며, 용어와 아이콘이 충돌하고, 다양한 화면 크기와 기기에 맞게 제대로 조정되지 않으며, 적절한 문서가 부족한 경우가 많습니다. 팀의 경험이 아무리 많더라도 일관되지 않은 사용자 인터페이스는 언제나 생산성 저하로 이어집니다.
접근성
CI/CD 시스템이 스크린 리더 호환성, 키보드 탐색, 고대비 모드와 같은 접근성 기능을 지원한다면 이는 보통 전반적으로 좋은 사용자 경험을 제공한다는 것을 가리킵니다.
문서 및 지원
CI/CD 도구를 효과적으로 사용하려면 포괄적인 문서, 튜토리얼, 동영상 및 지원 커뮤니티가 필수적일 수 있습니다. 경험상, 솔루션이 시장에 출시된 지 오래될수록 사용자가 문제를 해결하고 질문에 대한 답변을 얻을 가능성이 높아집니다.
API
팀의 특정한 요구 사항과 구현하려는 워크플로에 따라 CI/CD를 외부 도구와 통합해야 할 수도 있습니다. 이때 겪게 되는 경험은 API의 성숙도, 문서 제공 여부와 품질, 소프트웨어 버전 간 변화 속도에 따라 크게 달라질 수 있습니다.
직관적인 사용자 인터페이스는 개발자가 복잡한 프로세스로 작업할 때에도 솔루션을 쉽고 빠르게 이해하고 사용할 수 있도록 도와주기 때문에 CI/CD 솔루션에 필수적입니다.
TeamCity UI 예시
호스팅 모델
CI/CD 솔루션은 크게 클라우드 옵션과 온프레미스 옵션의 두 카테고리로 나눌 수 있습니다.
클라우드 옵션을 사용하면 팀이 CI/CD 프로세스를 유지 관리하고 확장해야 하는 부담을 덜어주고 클라우드에서 파이프라인을 빌드할 수 있습니다.
한편, 온프레미스 솔루션을 사용하면 가장 엄격한 보안 규정과 요구 사항을 준수하면서 방화벽의 보안 뒤에서 안전하게 CI/CD를 호스팅할 수 있습니다.
맺음말
조직에 적합한 CI/CD 도구의 선택은 여러 요인에 따라 달라집니다. 이 블로그 글에서는 팀이나 조직에 가장 적합한 솔루션을 찾을 때 고려해야 할 주요 요소를 소개해 드렸습니다.
아래 섹션에서 질문이나 의견을 자유롭게 공유해 주세요. 언제든지 답변해 드리겠습니다.
즐겁게 빌드하세요!🏗️
게시물 원문 작성자