DevOps를 시행 중이거나, 계획 중이라면! 구글 클라우드 빌드(Google Cloud Build)를 자세히 한번 봐야 할 것 같습니다. 구글 클라우드 빌드는 크라우드 기반의 매니지드 지속적 통합/지속적 배포(CI/CD) 플랫폼입니다. 여기서 중요한 단어는 ‘매니지드’입니다.
CI/CD는 새로울 것 없는 개념이죠. 예전부터 개발자 커뮤니티에서 관심 있게 주시하는 개발 생산성과 효율 향상을 위한 접근이었습니다. 다만 요즘 DevOps라는 개념과 결합하면서 훨씬 더 친근해지고, 더 자주 접하는 키워드가 된 것 같습니다.
CI/CD 기반을 갖추는 것은 생각처럼 쉽지 않습니다. 도구가 많다 보니 최적의 조합을 찾기까지 시간도 걸립니다. 소규모 개발 팀이라면 나름 빨리 자리를 잡을 수도 있겠지만, 대규모 개발 조직을 위한 기반을 다지려면 일이 좀 복잡합니다.
구글 클라우드 빌드는 CI/CD를 더 이상 복잡하고, 어려운 주제의 영역에서 큰 어려움 없이 시도해 볼 수 있는 일상의 영역으로 옮겼습니다. 매니지드 서비스이다 보니 개발 조직은 애플리케이션 빌드와 테스트만 신경 쓰면 됩니다. 그 밑 단에 돌아가는 것들은 몰라도 됩니다. 대규모 개발 조직 또는 수백 명의 개발자가 투입되는 차세대 프로젝트처럼 CI/CD를 실행에 옮기기 쉽지 않은 조건도 구글 클라우드 빌드 환경에서는 ‘문제없음’입니다.
구글 클라우드 빌드와 같은 매니지드 기반 CI/CD 서비스의 장점은 크게 세 가지입니다.
(1) 확장성: 프로젝트 규모가 계속 커지고, 합류하는 개발자 수가 자꾸 늘어나면? CI/CD 플랫폼도 여기에 맞추어 확장을 해야 합니다. 구글 클라우드 빌드는 ‘클라우드’ 서비스다 보니 확장에 유리할 수밖에 없습니다. 반대로 외주 인력이 참여하는 프로젝트일 경우 개발을 마치고 나면 원래 규모로 CI/CD 플랫폼 규모를 줄여야 하는데, 이때도 클라우드가 유리합니다.
(2) 유연성: 소프트웨어 개발은 복잡한 작업입니다. 개발할 때마다 환경과 조건이 다를 수 있습니다. 언어, 프레임워크, 도구 등 변수가 많죠. 구글 클라우드 빌드는 이런 변수를 유연하게 수용합니다. 어떤 툴체인을 적용하건 관계없습니다. 어떤 조합이건 빌드 아티팩트를 도커 컨테이너에 담아 배포하면 됩니다. CI/CD 파이프라인 자동화 관련해 소스 리포지토리와 연계도 유연합니다. 구글 클라우드 빌드는 필요에 맞춰 GitHub, GitLab, BitBucket 등 원하는 리포지토리에 연계해 사용할 수 있습니다.
(3) 보안성: 참 중요한 포인트인데요 구글 클라우드 빌드는 런타임 수준이 아니라 개발 라이프사이클 측면에서 도구, 소스 코드 등에 대한 탄탄한 보안 체계를 갖추고 있습니다. 빌드 생성과 조회에 대한 권한 관리도 철저히 할 수 있습니다. 소스 코드와 빌디 아티팩트를 저장하는 위치도 유연하게 바꿀 수 있습니다. 이런 특징으로 개발 과정에서 생길 수 있는 정보 유출 위험도 직접 CI/CD 플랫폼을 운영할 때와 비교할 수 없을 정도로 낮습니다.
CI/CD 플랫폼도 이제는 매니지드 서비스로 이용할 수 있다는 것, 프로젝트 규모가 크거나 다양한 프로젝트가 늘 진행되는 조직이라면 이만한 선택도 없어 보입니다.