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 Gitlab CI. 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à Gitlab. Mục đích cần đạt được là mỗi khi bạn push code mới lên trên repo tại Gitlab, 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 đó.
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ử đó
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.
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.
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 Gitlab 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 -> CI/CD -> Variables -> Add variable
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, sau đó ấn Add variable.
Bước 3: Cấu hình Gitlab CI cho repo của bạn
Để kích hoạt Gitlab CI trong repo, bạn chỉ cần tạo file .gitlab-ci.yml trong repository của bạn với nội dung như sau:
stages: # Định nghĩa các bước sẽ chạy - deploy deploy: stage: deploy image: alpine:latest script: - apk add curl - curl -X POST $WEBHOOK_URL # Thực hiện gửi request POST đến Webhook deploy only: - master # Chỉ chạy trên nhánh master
File .gitlab-ci.yml 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.
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 CI/CD của repository của bạn, bạn sẽ thấy có một job được thực hiện là deploy như hình.
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.
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é.