+2

Tự động deploy Service trên Bizfly App Engine sử dụng Github Actions

Mở đầu

Bài viết này mình sẽ hướng dẫn mọi người tích hợp tính năng Webhook Deploy mới có trên Bizfly App Engine để triển khai ứng dụng tự động sử dụng Github Actions. Bài viết này sẽ rất hữu ích cho những bạn đang triển khai Service từ nguồn là Github. Mục đích cần đạt được là mỗi khi bạn push code mới lên trên repo tại Github, App Engine sẽ nhận được yêu cầu và tiến hành triển khai phiên bản mới từ source code mới đó.

image.png

Tính năng Webhook Deploy này sẽ giúp bạn:

  • Nhanh chóng đưa ra được phiên bản mới cho người dùng
  • Tự động hóa quá trình cập nhật

Khá đơn giản đúng không nào 😄. Trong bài này mình sẽ hướng dẫn cách thức tích hợp đơn giản nhất để tránh gây khó hiểu khi áp dụng, nếu bạn cần áp dụng cho trường hợp phức tạp hơn mà không biết làm thế nào có thể comment ở phía dưới mình sẽ hỗ trợ. Okay, chúng ta cùng bắt tay vào thực hiện luôn nhé!

Bước 1: Kích hoạt tính năng Webhook Deploy

Để kích hoạt tính năng Webhook Deploy, bạn cần truy cập vào Service của bạn trên Bizfly App Engine và chọn Chi tiết.

Nếu bạn chưa từng sử dụng Bizfly App Engine thì tham khảo bài viết này nhé! Một nền tảng triển khai ứng dụng serverless đáng để thử đó 😄

image.png

Trong trang này sẽ chứa các thông tin về service của bạn, bao gồm Webhook Deploy. Bạn cần click vào nút bật trong mục Webhook Deploy để kích hoạt tính năng này. Mặc định tính năng này sẽ được tắt.

image.png

Sau khi kích hoạt tính năng Webhook Deploy, bạn sẽ nhận được một Webhook URL. Đây là URL mà bạn sẽ sử dụng để gửi request bằng phương thức POST đến để triển khai phiên bản mới cho service của bạn.

image.png

Hệ thống sẽ xác thực yêu cầu triển khai phiên bản mới bằng trường TOKEN được gắn trong request, chính vì thế bạn cần lưu ý không bao giờ chia sẻ Webhook URL này với bất kỳ ai. Bất cứ ai có Token đều có thể yêu cầu triển khai lại phiên bản mới cho service của bạn.

Ngoài ra bạn có thể nhấn nút bên cạnh URL để tạo ra một token mới. Sau khi tạo token mới, bạn cần cập nhật lại token mới này vào các nơi sử dụng Webhook Deploy để có thể tiếp tục sử dụng.

Như vậy sau bước này ta đã có URL để có thể call thực hiện triển khai phiên bản mới cho service.

Bước 2: Tạo secret trong repo github của bạn

Để tích hợp Webhook Deploy cho repository của bạn trên Github, bạn cần tạo Secret trong repository để lưu trữ Webhook URL theo các bước như sau:

Trong repository của bạn chọn Settings -> Secrets and variables ->** Actions** -> New repository secret

image.png

Tạo Secret mới, đặt tên cho Secret là WEBHOOK_URL và nhập giá trị là Webhook URL của service của bạn trên Bizfly App Engine đã có được tại Bước 1, sau đó ấn Add Secret.

image.png

Bước 3: Cấu hình Github Actions

Tạo file .github/workflows/deploy.yml trong repository của bạn với nội dung như sau:

name: Sample Github CD for Bizfly App Engine

on:
  push:
    branches: [ "master" ]  # Sẽ kích hoạt jobs ở dưới khi có sự kiện push lên branch master

jobs:
  deploy:
    runs-on: ubuntu-latest  # Sử dụng runner chạy HĐH Ubuntu
    steps:
      - name: Trigger deploy in Bizfly App Engine
        run: curl -X POST ${{ secrets.WEBHOOK_URL }} # Thực hiện gửi request với phương thức POST bằng curl

File deploy.yaml bên trên có mục đích thực hiện gửi request với phương thức POST đến Webhook URL của service của bạn trên Bizfly App Engine khi có sự kiện push lên branch master. Cụm ${{ secrets.WEBHOOK_URL }} sẽ được thay bằng đường dẫn URL Webhook khi Job chạy.

Sau khi cấu hình thanh công, bạn có thể thực hiện push code lên branch master để kiểm tra kết quả.

Tại mục Actions của repository của bạn, bạn sẽ thấy có một job được thực hiện là Sample Github CD for Bizfly App Engine như hình.

image.png

Vào xem chi tiết từng job, bạn sẽ thấy job deploy đã được thực hiện với status_code trả về là 200 thì việc yêu cầu triển khai lại phiên bản mới đã thành công.

image.png

Quay trở lại trang quản trị service của bạn trên Bizfly App Engine, bạn sẽ thấy đã có một phiên bản mới được triển khai.

Như vậy từ giờ trở đi với mỗi sự thay đổi trên branch master, Service chạy tại App Engine sẽ được tự động triển khai mới.

Kết

Cám ơn các bạn đã đọc tận đến đây 🥳. Bizfly App Engine là một nền tảng triển khai ứng dụng đa ngôn ngữ mới được mình và team phát triển gần đây, nền tảng hiện đang miễn phí triển khai ứng dụng bạn có thể tạo tài khoản và trải nghiệm nhé! Mình cũng đã có nhiều bài hướng dẫn triển khai các ứng dụng khác nhau trong Series BizflyCloud App Engine Tutorials

Bất cứ góp ý nào cũng rất quý với bọn mình, bạn có thể liên hệ trực tiếp với mình qua Telegram @HoangViet12 để góp ý hoặc yêu cầu hỗ trợ nhé! Follow mình và Up Vote nếu bài viết giúp ích cho bạn hoặc muốn theo dõi thêm các bài viết khác nhé.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.