Cloud Google Gloud

Hướng dẫn Deploy tự động lên Cloud Run bằng Cloud Build

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-11

Cloud Run Là gì ?

Cloud Run là nền tảng giúp bạn có thể chạy, thực thi các Container mà không cần quan tâm tới máy chủ vật lý ( serverless ), cụm từ serverless chắc khá quen thuộc với mọi người, nơi mà chúng ta chỉ tập trung vào phát triển ứng dụng, không cần để tâm đến hạ tầng bên dưới.

Hôm nay, trong chuỗi bài về Google cloud. Chúng ta sẽ tiếp tục tìm hiểu về cách để có thể deploy lên Cloud Run bằng công cụ Cloud Build.

Chuẩn bị

Đầu tiên, chúng ta cần tạo và thêm 3 file sau vào GIT:

1/ Dockerfile

FROM python:3.7-slim

ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./

RUN pip install Flask gunicorn

CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 app:app

2/ app.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

3/ cloudbuild.yaml

 steps:
 # Build the container image
 - name: 'gcr.io/cloud-builders/docker'
   args: ['build', '-t', 'gcr.io/$PROJECT_ID/hello-cloud-run:$COMMIT_SHA', '.']
 # Push the container image to Container Registry
 - name: 'gcr.io/cloud-builders/docker'
   args: ['push', 'gcr.io/$PROJECT_ID/hello-cloud-run:$COMMIT_SHA']
 # Deploy container image to Cloud Run
 - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
   entrypoint: gcloud
   args:
   - 'run'
   - 'deploy'
   - 'hello-cloud-run'
   - '--image'
   - 'gcr.io/$PROJECT_ID/hello-cloud-run:$COMMIT_SHA'
   - '--region'
   - 'asia-east1'
   - '--platform'
   - 'managed'
   - '--allow-unauthenticated'
Trong đó:
  • hello-cloud-run: Là service name của Cloud Run (“Bạn có thể thay đổi”)
  • asia-east1: Là Region trên cloud (“Bạn có thể thay đổi”)
  • --allow-unauthenticated: Dùng để public website của bạn mà không cần Authen.

Tạo Trigger cho Cloud Build

Tiếp đến, chúng ta sẽ tạo Trigger, mục đích là giúp cho Cloud Build tự động thực hiện quá trình build và deploy lên Cloud Run mỗi khi có commit code mới. Nếu bạn nào là DevOps hoặc từng sử dụng Git, Gitlab, Jenkins… thì dễ hình dung tính năng này. Một tính năng rất hữu ích trong quá trình xây dựng CI/CD.

Để làm đc việc đó, chúng ta cần connect git repository vào Cloud Build.

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-1

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-2

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-3

Tạo triggers:

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-4

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-5

Set permissions cho Cloud Build.

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-6

Kiểm thử quá trình Cloud Run

Như vậy là bước cài đặt đã xong, giờ ta sẽ thử thay đổi code, và commit thử. Xem quá trình Trigger và deploy trên Cloud Run sẽ như thế nào.
Thử edit file app.py thành như dưới:

return "Hello Cloud Ace!"
Push thay đổi lên GitHub

Tại Cloud Build -> History sẽ có Job đang running

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-7

Tại Container Registry sẽ có image mà Cloud Build vừa tạo.

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-8

Tại Cloud Run sẽ có service mà Cloud Build vừa deploy.

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-9

Truy cập website để kiểm tra.

congdonglinux.com-huong-dan-deploy-tu-dong-len-cloud-run-bang-cloud-build-10

Kết Bài

Như vậy, chúng ta vừa trãi qua các bước để có thể thiết lập môi trường cho quá trình deploy tự động lên Cloud Run bằng công cụ Cloud Build, với tính năng trigger đầy mạnh mẽ phục vụ cho CI/CD.

 

        Nguồn:                  

congdonglinux.com

              [maxbutton id=”2″ ]                             [maxbutton id=”3″ ] 

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !