클라우드 시장이 급속도로 성장하고 있다. 전 세계적으로 기업 및 조직 내 클라우드를 도입하려는 추세가 확산되고 있으며, IDG 커뮤니케이션스의 '2018 클라우드 컴퓨팅 조사 결과'에 의하면 전세계 550개 기관 중에서 약 73%가 하나 이상의 컴퓨팅 인프라 혹은 애플리케이션을 클라우드로 이전(migration) 한 것으로 밝혀졌다.
(이미지 출처: 한국경제, https://www.hankyung.com/it/article/2019021156671)
클라우드의 도입은 생산성 향상을 넘어서 비즈니스 환경과 업무 환경을 변화시키고 있다. 클라우드 덕분에 서버 구축 및 관리가 간편해지면서 개발팀와 운영팀 간의 경계가 점차 허물어지고 있는데, 이에 기업들은 빠르게 변하는 IT 환경에 대응하고 소프트웨어 운영의 효율성을 높이고자 데브옵스(DevOps) 방법론을 개발문화의 일환으로 정착시키고자 시도 중에 있다.
* 데브옵스(DevOps)란?
데브옵스는 개발(Development)과 운영(Operation)을 결합한 용어이다. 즉, 개발자와 운영 담당자가, 소프트웨어 개발에의 생산성과 운영에의 안정성을 모두 최적화하며 소프트웨어를 개발하는 방법론을 의미한다.
데브옵스는 새로운 서비스, 소프트웨어 등을 빠르게 제공할 수 있도록 팀의 역량을 향상시키는 문화, 소통 방식, 그리고 이를 뒷받침할 수 있는 도구들의 조합이라 볼 수 있다. 데브옵스 관련 도구들을 활용하면 기존에 수동으로 수행하던 프로세스들을 자동화하거나 배포된 소프트웨어를 지속적으로 업데이트하고, 혹은 특정 프로젝트의 전체 프로세스(신제품 개발부터 배포, 운영 등)를 시각화할 수 있다.
금번 아티클에서는 데브옵스 도구를 제공하는 스타트업 중에 한 곳인 ‘깃랩(GitLab)’을 소개하고자 한다.
Contents Contributor : 최유리 PD/Analyst
깃랩 개요
- CEO 및 공동창업자: Sid Sijbrandij
- 서비스 분야: 깃 저장소, 오픈소스 기반 데브옵스 도구 플랫폼
- 본사: 미국 캘리포니아주 샌프란시스코, 2014년 설립
- 투자유치: 2018.09, Unicon 클럽 가입(회사가치 $1.1 billion 인정),
2018.12, 시리즈 D 투자 유치($110 million) - 매출: 2018년 기준 $20 million
(매출 성장 목표: 2019년도 $45 million, 2020년도 $100 million) - IPO 목표일: 2020년 11월 경, 기업공개 예정
- 깃랩 직원 수: 약 600명 내외 (출처)
- 깃랩 오픈소스 컨트리뷰터(contributer) 수: 소스코드 컨트리뷰터 2,000명 이상, idea level 컨트리뷰터 1만명 이상
- 홈페이지: https://about.gitlab.com/
- 유튜브 소개 영상: https://youtu.be/yjxrBSllNGo
깃랩은 초기에 *깃(Git) 원격 저장소, 코드 탐색, 이슈 트래커 기능 등을 제공하는 소프트웨어의 형태로 시작되었다. 즉 여러 명의 개발자들이 공동 작업을 하면서 소스코드를 같이 올리는 공간을 제공하고, 변경사항을 기록하며, 소프트웨어 배포 이후 업데이트 및 버그 관리, 그리고 변경사항 체크하는 도구인 ‘버전 관리 시스템’을 지원하고 있다.
근 몇년 동안 깃랩은 코드 리뷰, 소프트웨어 테스트, 자동화 도구, 모니터링 도구 등을 추가하면서 데브옵스 분야의 서비스를 확장해왔다. 이제 깃랩은 Git 저장소를 넘어서 오픈소스 프로젝트 기반의 ‘통합개발환경(IDE)’ 플랫폼으로 진화하고 있다.
깃랩 오픈소스 프로젝트에는 2천 명 내외의 컨트리뷰터들이 참여하고 있다. 만약 깃랩 플랫폼에서 제공하는 애플리케이션을 이용하는 도중 일부분이 불편해서 바꾸고 싶다면, 루비 소스 코드를 다운로드해서 수정할 수 있다. 또한 깃랩은 구글의 *쿠버네티스(Kubernetes) 엔진과 통합되며, *젠킨스(Jenkins) 기반의 지속적 통합, 배포 및 모니터링 기능도 제공하고 있다.
* 깃(Git): 버전관리 시스템을 구현한 구체적인 제품 중의 하나로 분산형 버전관리 시스템이라는 특징을 가지고 있고, 가장 많이 사용하는 버전관리 시스템 중 하나다.
* IDE (통합개발환경): 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램에서 처리하는 환경을 제공하는 소프트웨어이다.
* 쿠버네티스(Kubernetes): 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 구글에 의해 설계되었고 현재는 리눅스 재단에 의해 관리되고 있다.
* 젠킨스(Jenkins): 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다. MIT 라이선스를 따른다.
깃랩 CI/CD 파이프라인 & 데브옵스 도구 플랫폼
깃랩은 개발 단계를 자동화하고 보다 짧은 주기로 고객들에게 애플리케이션을 제공할 수 있도록 *지속적인 통합(CI), *지속적인 제공/배포(CD) 과정을 통합하여 하나의 파이프라인을 통해 코드를 작성, 테스트, 배포 및 모니터링할 수 있도록 지원하고 있다.
지속적 통합(CI) 단계에서는 프로세스 자동화, 공유 저장소 내 코드 통합, 변경사항 자동 기록 및 테스트를 진행한다. 지속적 제공/배포(CD) 단계에서는 애플리케이션에 변경사항이 생기면 이에 대한 오류 테스트 및 리포지토리에 자동 업로드가 진행되며, 마지막으로 애플리케이션에 변경된 사항을 적용하여 프로덕션 환경으로의 자동 배포가 이루어진다.
* CI(지속적 통합, Continuous Integration): 짧은 주기로 소프트웨어 빌드, 테스트, 컴파일 과정을 자동화하는 것을 의미한다.
* CD(지속적 배포, Continous Deploy): 짧은 주기로 소프트웨어를 끊어서 배포하고 그 과정 전체(컴파일 - 빌드 - 테스트 - 배포)를 자동화하는 것을 의미한다.
깃랩은 데브옵스 방식의 전체 개발 프로세스를 아우르는 단일 애플리케이션 플랫폼을 지원하고 있다. 기획(planning)에서부터 모니터링(monitoring)까지 총 10단계로 진행되는 프로세스에 활용가능한 데브옵스 도구들을 카테고리별로 관리할 수 있다.
- Manage tools: 소프트웨어 전달 프로세스를 시각적으로 관리하고 이를 최적화함으로써 애플리케이션 딜리버리 속도 향상
- Plan tools: 에픽, 마일스톤 등으로 프로젝트 진행 상황을 추적 및 포트폴리오 기획/관리
- Create tools: 버전 관리 시스템(DVCS)에서 코드 설계 및 개발, 프로젝트 데이터 관리
- Verify tools: 코드 생성, 통합 및 검증 프로세스 자동화, 코드의 품질 피드백(자동/수동) 제공
- Package tools: 애플리케이션, 컨테이너 관리 패키지화, 간편한 아티팩트 구축 지원
- Secure tools: SAST(정적 애플리케이션 보안 테스팅), DAST (동적 애플리케이션 보안 테스팅), 컨테이너 검색 기능 제공
- Release tools: 수동 애플리케이션 배포 및 전달 프로세스를 CD 솔루션을 통해 여러 환경으로 자동 배포
- Configure tools: 애플리케이션 환경 및 인프라 구성 지원, 세부정보(비밀번호, 로그인 정보 등)에 대한 권한 관리 및 액세스 제한
- Monitor tools: 코드 변경이 프로덕션 환경 및 배포 과정에 미치는 영향을 자동 모니터링, 오류 코드 자동 감지
- Defend tools: 런타임 애플리케이션 보안 위협 탐지, 데이터 보안 및 애플리케이션 인프라 보안 제공
깃랩 비즈니스 모델별 가격 정책
깃랩은 SaaS 버전과 On-premises 버전으로 서비스를 구분해서 제공하고 있다.(2019.04.29 기준) 버전에 상관없이 한 달 무료 체험판을 제공하고 있으며, 사용하는 서비스의 범위에 맞게 월간 구독료를 Bronze/Starter($4) - Silver/Premium($19) - Gold/Ultimate($99)의 가격대별로 선택할 수 있다. 구독모델 별로 지원되는 기능들을 확인하려면 가격정책 페이지의 ‘See all features’를 클릭하면 된다.
깃랩 향후 계획
2018년 10월 경, 시리즈D 투자를 유치한 깃랩은 2019년 자신들이 나아갈 방향성에 대하여 인터뷰한 바 있다. 첫 번째 목표는 기존에 깃랩이 보유하고 있던 기능들의 성능을 강화하고, 동시에 데브옵스 전체 사이클을 관리하는 데 필요한 새로운 기능들을 더하는 것이다. 두 번째 목표는 동일한 인터페이스에서 작업하는 모든 이해관계자들이 동일한 데이터 저장소를 공유할 수 있도록 경영진, 디자이너, 제품 관리자 등의 다양한 역할 범위를 제품에 추가할 예정이다.
또한 작년에 깃랩은 사용 중인 클라우드 운영 인프라를 Microsoft Azure에서 Google Cloud Platform(GCP)으로 이전했다. 이에 깃랩 이용자들은 쿠버네티스 엔진과 컨테이너 운영 플랫폼을 더욱 간편하게 활용할 수 있게 되었다. GCP로의 인프라 이전은 전 과정을 오픈하여 2018년 7월 28일에 이루어졌다.
참조 자료
- GitLab 홈페이지 - https://about.gitlab.com/
- What's next for GitLab?(2019) - https://youtu.be/ZgFqyXCsqPY
- GitLab's product vision for 2019 and beyond - https://about.gitlab.com/2018/10/01/gitlab-product-vision/
- GitLab’s DevOps Plans Ride Growing Kubernetes Federation - https://bit.ly/2INNCSq
- AWSㅣWhat is DevOps? - https://aws.amazon.com/ko/devops/what-is-devops/
- 깃허브 대 비트버킷 대 깃랩: 개발자의 마음을 사기 위한 치열한 경쟁 - https://bit.ly/2ZJQ4yA
- 한국경제ㅣ세계 클라우드 시장 800억弗…2년새 두 배로 - https://www.hankyung.com/it/article/2019021156671
- What's up with GitLab.com? Check out the latest data on its stability
https://about.gitlab.com/2018/10/11/gitlab-com-stability-post-gcp-migration/