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