Cloud Build
애플리케이션을 수정하고 다시 빌드하고 배포하는 작업은 시간 소비가 크며, 수작업으로 지속적으로 수행하기 번거로운 작업이다.
작은 단위의 테스트는 간단히 실행할 수 있지만 더 큰 시스템을 하나하나 수행하는 것은 쉽지 않은 일이다.
이러한 반복 작업들을 자동화하기 위해서 CI/CD라는 도구를 사용해서 파이프 라인을 만들고 자동화 작업을 수행한다.
이때 Google의 서버리스 CI/CD 플랫폼을 통해 빌드, 테스트, 배포 할 수 있다.
Cloud Build는 GCP의 인프라에서 빌드를 실행하는 서비스이다.
다양한 저장소 또는 클라우드 스토리지 공간에서 소스 코드를 가져오고, 사양에 맞게 빌드를 실행하고, 도커 컨테이너 또는 자바 아카이브와 같은 아티팩트를 생성할 수 있다.
Cloud Build의 장점
- 자바, Go, Node.js 등의 모든 프로그래밍 언어를 사용하여 신속하게 소프트웨어를 빌드한다.
- 빌드, 테스트, 배포를 위한 커스텀 워크플로를 정의하는 작업을 완벽하게 제어한다.
- VM, 서버리스, 쿠버네티스 또는 파이어베이스 등 다양한 환경에서 배포한다.
- CI/CD 파이프라인의 일부로 정밀 보안 스캔을 수행한다.
- Maven, Gradle, Go, Bazel과 같은 도구를 통해 컨테이너 또는 컨테이너가 아닌 아티팩트로 소스를 패키징한다.
Cloud Build의 특징
- 도커를 지원한다.
- 매일 120분의 무료 빌드 및 최대 10회 동시 빌드를 지원한다.
- 빌드 과정을 모니터링 할 수 있다.
- 컨테이너 이미지의 패키지 취약점을 자동으로 파악한다.
- 로컬 또는 클라우드에서 빌드가 가능하다.
Cloud Build의 작동 방식
Cloud Build 도커를 사용하여 빌드를 실행한다. 각 빌드 단계에서 Cloud Build는 docker run의 인스턴스로 도커 컨테이너를 실행한다.
수명주기에 대한 간략한 설명
- 애플리케이션 코드와 필요한 애셋을 준비한다.
- Cloud Build에 대한 지침이 포함된 yaml 또는 json 형식의 빌드 구성 파일을 만든다.
- Cloud Build를 제출한다.
- Cloud Build는 사용자가 제공한 빌드 구성을 기반으로 빌드를 실행한다.
- 해당하는 경우 빌드된 이미지가 Container Registry에 푸시된다.
Container Regisry는 Google Cloud에서 안전한 비공개 도커 이미지 스토리지를 제공한다.
출처:[구글 클라우드 플랫폼] GCP : Cloud Build