“실수에 관대한 문화가 데브옵스의 키포인트”…데브옵스 플랫폼 깃랩
지난 12월 10일 깃랩(Gitlab)을 인터뷰했다. 깃랩은 단일 워크 플로우를 통해 개발 사이클을 단축하고, 개발자들이 소프트웨어를 구현하는 일에 주력할 수 있도록 돕는 데브옵스 플랫폼이다. 깃랩은 회사 방침에 따라 65개국에 있는 천 명 이상의 팀원이 원격 근무를 한다. 그들은 프로젝트 전략, 방향, 지표 등을 공개적으로 논의하고 모든 자료를 웹사이트에 게시한다. 장애 복구 과정이나 회사의 이벤트를 실시간 웹 캐스트로 고객과 공유하기도 한다.
이우상 이사, 유근준 솔루션즈 아키텍트, APAC 지역 총괄 디렉터 앤서니 맥마흔(Anthony McMahon)을 만나 깃랩이 추구하는 가치에 대해 들을 수 있었다.
Q. 깃랩을 소개해달라.
이우상 : 온프레미스 버전에서 깃허브와 비슷한 것은 소스코드 레포지토리 기능이다. 깃랩은 CI/CD를 제공한다는 것이 다른 점이다. 오픈소스 업체들이 깃허브를 많이 사용하지만, 깃허브 자체는 오픈소스가 아니다. 깃허브를 이용하려면 SaaS 버전을 구매하거나 온프레미스 버전을 구매해야 하는데 소스코드는 공개되어있지 않다. 하지만 깃랩은 완전한 오픈소스다. gitlab.com에서 깃랩이 어떻게 개발되고 있는지 투명하게 볼 수 있다. 깃랩 설치형 버전도 무료로 사용할 수 있다. 깃랩은 2014년에 우리 제품 하나로 완전한 데브옵스 라이프사이클을 제공하겠다는 취지로 비즈니스를 시작했다. 개발자들이 코드를 만들고 리뷰하고 이슈에 대해 협업하고 체크하고 마스터에 머지(Merge=통합)하고 테스트하는 등 개발부터 운영에 이르는 수많은 단계를 단일 앱으로 제공하겠다는 목표가 있다.
Q. 깃랩의 규모는 어느 정도인가?
이우상 : 직원 수는 1,000명 정도다. 그중에 개발자가 500명이다. 오픈소스 컨트리뷰터는 유동적으로 2,500명 정도다. 10만 개 이상 기관, 단체, 기업에서 우리 제품을 사용한다. VMware, IBM, Redhat이 그들의 소프트웨어를 제작하기 위한 도구로 깃랩을 사용하고 있다. 골드만삭스(GoldmanSachs), 엑스웨이(axway) 등 100년 이상 비즈니스를 해온 엔터프라이즈도 그들의 데브옵스 도구로서 깃랩을 사용한다.
Q. 엔터프라이즈 버전과 커뮤니티 버전의 차이는 무엇인가?
유근준 : 제품은 같다. 커뮤니티 에디션에도 모든 기능이 다 들어가 있다. 라이선스에 따라 기능이 나뉜다. 안정성이나 퍼포먼스는 동일하다.
이우상 : 커뮤니티 버전이나 엔터프라이즈 버전이나 제품 자체 기능은 동일하다. 오픈소스 버전이 있고. 유상 버전은 브론즈, 실버, 골드 등급이 있다. 브론즈는 소규모 팀이 협력할 때 필요한 기능을 제공한다. 실버는 중간 규모 팀에서 사용한다. 예를 들어 소규모 팀은 커뮤니티 기능과 서버이중화(HA)기능은 필요하지 않을 수 있다. 중규모 팀은 이슈 트래킹, 협업, 서버 이중화 기능이 필요하다. 골드 버전은 엔터프라이즈에서 쓸만한 기능을 제공한다. 운영팀이나 개발팀의 1년 목표, 하위 프로젝트 진행 상황 등을 대시보드로 볼 수 있다. 대규모 기업에서 필요한 보안 기능도 제공한다. 프로젝트 규모와 중요성에 따라 과금 모델을 결정한다.
고객들을 위해 수시로 엔터프라이즈 기능을 오픈소스 버전 쪽으로 내리고 있다. 깃랩은 사업으로 돈을 버는 것보다 개발자들이 원하는 것을 쉽게 접하는 것이 중요하다고 생각한다.
Q. 개발자들에게 깃랩에 관해 물었더니 서버가 불안정하다고 했다. 깃랩도 이 점을 알고 개선하고 있나?
이우상 : 계속 개선하고 있다. 고객들이 쓰는 깃랩 오픈소스를 우리도 쓰고 있다. 애저를 사용할 때부터 여러 이슈가 많았던 것은 맞다. 자세한 수치는 준비하지 못했지만, 서비스 업타임은 계속 향상되고 있다. 우리 소프트웨어에 공헌하는 분들도 많아지고 있다. 제품의 퀄리티는 점차 좋아진다. 깃랩은 서비스수준협약(SLA)을 가지고 운영한다. 그를 만족하기 위해 SRE 팀과 서비스팀에서 노력하고 있다. 개인적으로는 죄송하다는 말씀드리고 싶다.
유근준 : 최근 장애는 한국 시각으로 밤에 발생했다. 깃랩 SaaS 버전에서 CI/CD를 일정 시간 동안 무료로 사용할 수 있다. 처음 원인은 중국 쪽에서 암호화폐 채굴로 추정되는 대량의 트래픽으로부터 발생했다. 엄청난 트래픽을 막고 필터링하는 과정에서 일반 사용자에게 피해가 갔다.
다른 소프트웨어 회사들과 차이점은 장애를 복구하는 과정을 100% 공개한다는 것이다. 이런 공개된 장애복구 과정은 개발자들은 배움의 기회가 되고, 깃랩은 기업 고객으로부터 신뢰를 얻게 됐다.
Q. 5월 2일 아틀라시안, 깃허브, 깃랩이 랜섬웨어 공격을 당했고, 협력해서 사건 조사를 했다. 그 후 계속 협력하고 있나?
유근준 : 협력하고 있다. 랜섬웨어 공격을 당하는 가장 큰 이유가 보안 코드를 검색해서 들어오기 때문이다. 그와 관련한 보안 기능이 엔터프라이즈 버전에만 있었다. 커뮤니티 에디션으로 기능을 내려 일반 사용자들이 무료로 사용할 수 있도록 조치하려 한다. 아직 계획 중이고 내년 초에 기능을 추가할 예정이다.
Q. 2018년 6월, MS가 깃허브를 인수하면서 많은 사용자가 깃랩으로 옮겨갔다. 그 당시 깃랩의 생각은 어땠나?
유근준 : MS는 전통적으로 폐쇄적 문화를 가진 회사였다. 오픈소스의 중요성을 강조하기 시작하면서 많은 돈을 들여 깃허브를 인수했다. 깃랩 내부 반응은 좋았다. 경쟁사가 큰 회사에 인수되면 사업적으로는 힘들겠지만, 개발 문화가 오픈소스 쪽으로 흘러가는 것에 대해 긍정적이었다. 오히려 우리는 좋은 징조라고 생각했다. 사용자들이 깃랩으로 많이 넘어오는 것이 하나의 큰 이벤트라고 생각했다.
Q. 같은 해, 사용 중인 클라우드 운영 인프라를 마이크로소프트 애저에서 구글 클라우드 플랫폼(GCP)으로 이전했다. 그 과정을 전부 공개한 이유가 있다면?
유근준 : 애저에서 GCP로 옮기는 것은 깃허브가 인수되기 한참 전에 결정했다. 그때까지만 해도 멀티 클라우드를 많이 사용하지 않았기 때문에 한 클라우드 플랫폼에서 다른 쪽으로 옮기는 게 큰 과제였다. 깃랩이 그 과정과 기술적 내용을 다 공개해서 많은 사람이 놀랐다. 엄청난 양의 데이터를 옮길 수 있다는 것에 놀랐다.
이우상 : 애저에서 GCP로 마이그레이션 하는 것을 웹캐스트로 공개했다. 애저에서 GCP로 옮겨간다는 자체가 중요한 게 아니었다. 깃랩의 기업가치인 ‘투명성(Transparent)’에 부합하는 일이었다. 비슷한 사례로, 깃랩닷컴에 몇 년 전 큰 장애가 있었을 때도 복구 절차들을 라이브 웹캐스트로 진행했다.
Q. 깃랩은 전 직원이 원격 근무를 한다. 완전 원격 근무를 하는 이유가 무엇인가?
유근준 : 원격 근무를 다른 기업들도 많이 시도했으나 좋은 결과를 얻지 못했다. 회사의 정책이나 모든 것을 오픈하지 않은 상태에서 일부 사람들만 혹은 일정 시간만 원격 근무를 하면, 일하는 사람이 불안한 마음을 갖기 때문이다. 깃랩은 처음부터 원격 근무를 하고 투명한(Transparent) 정책을 추진했다. 덕분에 개발자나 직원들이 ‘이렇게 해도 된다’는 자신감을 느끼고 있다. 또 언제든지 물어봐도 되는 문화가 정착된 것 같다.
이우상 : 비즈니스를 잘하려면 좋은 사람이 필요하다. 미국이나 호주는 땅이 워낙 넓으니 좋은 회사에서 일하려면 대도시로 나와야 한다. 부득이한 사정이 있는 경우는 좋은 인재임에도 불구하고 좋은 기회를 얻지 못한다. 깃랩에서는 좋은 인재를 최대한 많이 채용하고자 원격근무를 시작했다. 몽골, 말레이시아, 폴란드 등 IT에 중추적 역할을 수행하지 않는 나라에도 깃랩 직원들이 있다. 각자의 위치에서 완벽히 역할을 수행하고 있다.
앤서니 : 리모트 워크가 가능한 핵심 이유는 전 직원이 서로 연결되어 있다는 것이다. 우리는 비즈니스에 깃랩을 이용한다. 우리가 해결해야 할 비즈니스 문제가 있거나 고객 관련한 문제가 있으면 우리는 깃랩에 이슈를 생성하고 의논하는 의사결정 과정을 겪는다. 우리는 깃랩을 운영하기 위해 깃랩을 이용한다.
Q. 깃랩에 오게 된 계기나 이유는 무엇인가?
이우상 : 전전 직장에서 퍼블릭 클라우드 영업을 했었다. 전 직장에서는 고객들이 컨테이너를 잘 도입해서 쓰도록 돕는 일을 했었다. 그러다 보니 고객이 CI/CD, 데브옵스 도구, 개발 문화의 움직임에 대해 많은 관심을 가진다는 것을 느꼈다. 유망한 회사를 찾아봤다. 깃랩이 깃뿐만 아니라 CI/CD, 보안 등 여러 기능을 포괄적으로 제공하는 것을 알게 됐다. 많은 사람에게 널리 쓰일 도구가 될 것이라는 생각에 입사했다.
앤서니 : 많은 산업에 걸쳐 디지털 트랜스포메이션의 움직임을 봤다. 디지털 트랜스포메이션은 많은 기업에서 다양한 의미가 있다. 하지만 데이터를 이용한 디지털화 과정이라는 것이 핵심이다. 디지털 트랜스포메이션을 가속하기 위해서는 애플리케이션을 개발하고 배포하는 과정을 변화시켜야 한다. 깃랩은 그런 과정에 대한 고유한 접근 방식을 가지고 있다.
Q. 데브옵스를 도입하려는 고객에게 하고 싶은 말이 있다면?
유근준 : 지금 IT는 제3의 발전 단계를 겪고 있다. 클라우드로 새로운 시대가 열렸다. 각 기업이나 한국의 개발자들이 빨리 이쪽으로 전환했으면 한다. 그들이 클라우드 네이티브 컴퓨팅의 물결에 빨리 올라탔으면 하는 마음이 있다.
이우상 : 아마존과 피보탈을 거쳐 깃랩에 왔다. 5~6년 전 고객 프로젝트는 주로 퍼블릭 클라우드를 배우는 단계였다. 4년 전에는 클라우드 마이그레이션 프로젝트를 했고, 지금은 금융권까지 퍼블릭 클라우드를 사용할 수 있는 환경이 됐다. 고객들이 클라우드 마이그레이션 이후에 무엇을 해야 하나 많이 물어보신다. 클라우드를 잘 쓰려면 어떻게 하느냐에 대한 답은 결국 클라우드 네이티브를 잘해야 하는 것으로 귀결된다. 컨테이너, 마이크로서비스, 데브옵스, CI/CD를 잘하려면 당연히 새로운 도구를 도입해야 한다. 여러 도구를 쓰다 보면 서로 각자 부서에서 쓰는 언어, 도구가 달라서 커뮤니케이션 비용이 기하급수적으로 늘어나고 도구를 관리하는 데도 큰 비용이 발생한다. 따라서 최근 경향은 하나의 도구로 통합하는 것이다. 우리나라에서는 아직 여러 도구를 써보는 단계다. 그러다 결국은 단일 도구를 사용하게 된다. 이미 누군가 겪었던 시행착오를 두 번 겪는 일은 없었으면 한다.
유근준 : 개인적으로 데브옵스는 혁명이라고 생각한다. 애자일 선언문(Agile Manifesto)이 20년이 지난 지금 실현되는 것이다. 단발성으로 일어나는 혁명이 아니다. 한국의 IT회사에서 데브옵스 흐름을 잘 파악해서 이어갔으면 좋겠다.
이우상 : 여러 고객중 데브옵스를 잘 구현한 조직은 많지 않다. 데브옵스는 도구 하나 도입한다고 해서 되는 게 아니라 문화와 체질을 바꿔야 한다. 가장 좋은 방법은 모든 부서에서 같은 언어를 사용하는 것이다. 서로 무슨 일을 하는지 알 수 있어야 한다. 커뮤니케이션 비용을 낮추는 게 가장 최선이다. 깃랩이 가장 최적의 도구라고 생각한다. 데브옵스에 대해 두려움을 갖지 않으면 좋겠다. 데브옵스 혹은 애자일을 위한 특정한 프레임워크는 없다. 개발과 운영의 협업이 활발하면 데브옵스다. 개발 사이클을 빠르게 진행하려고 노력하고 실제로 빨라졌다면 애자일이다. 우리 기업에 도움이 되는 도구가 무엇인지 생각하는 게 도움이 된다.
유근준 : 깃랩에서 말하는 것 중 하나가 ‘버그를 만들어내는 것을 두려워하지 말라’다. 깃랩에선 버그를 만들었다고 꾸짖지 않는다. 시스템이 걸러내지 못하는 버그를 개발자가 어떻게 하겠는가. 실수에 관대한 문화가 데브옵스의 키포인트다.
이우상 : 오히려 버그를 만들어도 무리가 없는 시스템을 만들어야 한다. 버그가 있어도 전체 서비스에 영향이 없는 환경을 만들어야 한다.
Q. 깃랩이 달성하고자 하는 목표는 무엇인가?
이우상 : 깃랩은 오픈소스로 시작했고, 지금도 오픈소스다. 설치형 시장에서는 이미 상당히 많은 분이 깃랩을 사랑해주신다. 오픈소스 깃랩 커뮤니티에 도움을 주고, 오픈소스 깃랩 사용자를 높이는 데 일조하고 싶다. 엔지니어를 위한 밋업이나 기고를 통해 엔지니어들이 깃랩을 잘 사용할 수 있게 돕고 싶다.
앤서니 : 기업에는 실무레벨과 워킹레벨이 있다. 기업의 소프트웨어 개발 및 운영에 포괄적인 도움을 주고 싶다. 임원은 기술에 대해서는 정확히 모르는 경우가 많다. 데브옵스나 데브섹옵스에 대해 잘 알지 못하고, 앞으로 알 필요가 없을 수도 있다. 그러나 회사의 목표가 무엇이고, 우리 회사가 IT기술에 공헌을 하고 있는지는 체크하고 싶어 한다. 우리 제품과 컨설팅 서비스로 그들을 도울 수 있다. 밑단에서는 목표를 어떻게 달성하고 있는지, 서비스와 제품 릴리스 사이클은 어떻게 돌아가고 있는지를 쉽게 추적할 수 있도록 돕고 있다. 개발자는 깃랩을 사용해 목표를 쉽게 달성할 수 있다.
이우상 : 기존 사일로 조직에서는 개발자들이 코드를 열심히 짜서 QA 부서에 넘기거나 보안에 넘겼다. QA 부서가 사용하는 도구, 보안 부서가 사용하는 보안 검증 도구들이 다 달랐다. 개발자들은 일이 어떻게 진행되고 있는지, 위반 사항이나 개선 사항을 알 수 없었다. 내가 개발한 소프트웨어가 어떻게 운영되고 있는지 알 수 없었다. 정책상 막기도 했다. 깃랩이라는 단일 도구를 사용하면 개발자가 자신의 코드가 어떻게 테스트되고, 보안 검증되고, 운영되고 있는지를 투명하게 알 수 있다. 개발 사이클이 빨라지고 운영 효율이 높아진다.
유근준 : 깃은 중앙 집중이 아니라 분산이다. 분산 환경에서 개발자들이 많은 일을 할 수 있다. 특히 한국은 댓글 문화가 활발하다. 스택 오버플로우 같은 데에 질문을 올리면 댓글로 토론한다. 문제는 정답을 검증하는 일이다. 그것에서 나온 개념이 데브옵스다. 데브랑 옵스를 잘 융합하기 위한 고민으로부터 나온 툴이 깃랩이다. 앞으로 깃랩은 계속 발전할 것이다.