Task Engine & Webhook
Tự động hóa các hoạt động VergeOS với Task Engine tích hợp sẵn — các kích hoạt theo sự kiện, tác vụ theo lịch, webhook tới hệ thống bên ngoài và các quy trình tự động hóa mô-đun.
VergeOS Bộ máy Tác vụ là một khung tự động hóa tích hợp sẵn, cho phép các thao tác theo sự kiện và theo lịch mà không cần công cụ bên ngoài. Thay vì viết script hoặc phụ thuộc vào các cron job trên những máy riêng biệt, quản trị viên định nghĩa tác vụ, gắn trình kích hoạt và để nền tảng tự động thực thi hành động. Bộ máy Tác vụ là phần bổ sung gốc cho các công cụ API và IaC được đề cập trước đó trong mô-đun này — nơi Terraform và Ansible quản lý việc cung cấp tài nguyên, Bộ máy Tác vụ xử lý tự động hóa vận hành hằng ngày ngay trong hệ thống đang chạy.
Các Thành phần của Bộ máy Tác vụ
Bộ máy Tác vụ sử dụng sáu khối xây dựng mô-đun có thể kết hợp theo nhiều cách linh hoạt:
Tác vụ
Định nghĩa hành động cần thực hiện (ví dụ: tắt một VM, gửi thông báo)
Lịch
Xác định khi nào và tần suất tác vụ nên chạy (ví dụ: hằng ngày, hằng tuần, một lần)
Sự kiện
Định nghĩa các điều kiện kích hoạt một tác vụ (ví dụ: người dùng đăng nhập, đồng bộ thất bại)
Webhook
Đẩy dữ liệu đến các hệ thống bên ngoài qua HTTP POST theo thời gian thực
Script
Các khối xây dựng tự động hóa có thể lập trình được hiển thị trên Bảng điều khiển Tác vụ (xem phần Script bên dưới)
Nhật ký Tác vụ
Ghi lại lịch sử tạo và thực thi tác vụ để kiểm tra và khắc phục sự cố
Tất cả các thành phần đều được truy cập từ Hệ thống → Bảng điều khiển Tác vụ trong giao diện VergeOS.
Kiến trúc Tự động hóa Mô-đun
Một điểm mạnh then chốt của Bộ máy Tác vụ là nhiều-nhiều mô hình quan hệ. Các thành phần không bị khóa vào các cặp một-một:
Nhiều tác vụ hoặc sự kiện → một webhook — Cấu hình một webhook một lần và kích hoạt nó từ nhiều sự kiện khác nhau (lỗi đồng bộ, lần đăng nhập, cảnh báo hệ thống). Điều này tập trung hóa các tích hợp bên ngoài và giảm trùng lặp.
Một tác vụ → nhiều sự kiện — Tác vụ "Bật VM" có thể chạy khi một người dùng cụ thể đăng nhập hoặc khi một cửa sổ bảo trì theo lịch bắt đầu. Tái sử dụng định nghĩa tác vụ trên nhiều kịch bản.
Một lịch → nhiều tác vụ — Định nghĩa một cửa sổ bảo trì hằng tuần một lần và liên kết nó với các tác vụ cập nhật, cảnh báo và tắt máy. Nhất quán mà không bị trôi cấu hình.
Thiết kế có thể kết hợp này có nghĩa là bạn xây dựng một thư viện các tác vụ, lịch và webhook có thể tái sử dụng, rồi nối chúng với nhau khi nhu cầu vận hành thay đổi.
Trình kích hoạt dựa trên sự kiện
Trình kích hoạt sự kiện tự động chạy tác vụ khi phát hiện một diễn biến cụ thể của hệ thống. Khi tạo một sự kiện, bạn chọn:
Loại — Loại đối tượng (ví dụ: Người dùng, Máy ảo, Cảnh báo, Tenant, Đồng bộ đi)
Sự kiện — Diễn biến cụ thể (ví dụ: Đăng nhập, Đăng xuất, Bật nguồn, Lỗi, Thay đổi trạng thái)
Phiên bản đối tượng hoặc thẻ — Hoặc một đối tượng cụ thể (một người dùng hoặc VM nhất định) hoặc một thẻ khớp với một nhóm đối tượng
Các mẫu trình kích hoạt sự kiện phổ biến
Người dùng
Đăng nhập / Đăng xuất
Bật/tắt các VM GPU cho người dùng đã đăng nhập
Đồng bộ đi
Lỗi
Gửi thông báo Slack + cảnh báo email
Máy ảo
Bật nguồn / Tắt nguồn
Ghi nhật ký vào hệ thống giám sát bên ngoài qua webhook
Cảnh báo
Mức độ lỗi
Gửi thông báo email cho nhóm vận hành
Cảnh báo
Được kích hoạt
Gửi webhook tới PagerDuty hoặc ca trực
Trình kích hoạt dựa trên thẻ
Thay vì tạo các sự kiện riêng cho từng VM, hãy gán một thẻ dùng chung (ví dụ: gpu-workstation) cho các VM liên quan. Sau đó cấu hình trình kích hoạt sự kiện để khớp với thẻ đó — bất kỳ VM nào có thẻ này sẽ kích hoạt trình kích hoạt. Cách này dễ bảo trì hơn nhiều so với các sự kiện theo từng đối tượng.
Trình kích hoạt dựa trên lịch
Trình kích hoạt lịch chạy tác vụ vào các thời điểm hoặc khoảng thời gian được xác định trước. VergeOS bao gồm một số lịch mặc định và hỗ trợ tạo lịch tùy chỉnh.
Các tùy chọn cấu hình lịch
Lặp lại — Lặp mỗi N ngày, giờ, phút, tuần, tháng hoặc năm, với lựa chọn ngày/giờ cụ thể
Một lần — Chọn "Không lặp lại" và chỉ định một ngày giờ bắt đầu duy nhất
Ngày kết thúc — Lịch lặp lại mặc định là vô thời hạn; có thể tùy chọn đặt ngày kết thúc
Các mẫu lịch phổ biến
Mỗi thứ Bảy lúc 5 giờ chiều
Kiểm tra và tải xuống các bản cập nhật hệ thống
Mỗi thứ Sáu lúc 6 giờ chiều
Tắt các VM tiêu tốn nhiều tài nguyên vào cuối giờ làm việc
Ngày cụ thể trong tương lai
Vô hiệu hóa tài khoản nhân viên tạm thời 30 ngày sau khi tạo
Mỗi ngày lúc nửa đêm
Chạy kiểm tra xác minh sao lưu tenant
Ngày đầu tiên mỗi tháng
Tạo báo cáo sử dụng tài nguyên
Webhook
Webhook cho phép nhắn tin đẩy đến các hệ thống bên ngoài khi tác vụ thực thi. Thay vì các hệ thống bên ngoài truy vấn VergeOS để lấy trạng thái, nền tảng chủ động gửi các yêu cầu HTTP POST đến các URL được xác định trước khi các điều kiện cấu hình được đáp ứng.
Cấu hình Webhook
Khi tạo một webhook, bạn cấu hình:
Tên
Định danh mô tả cho webhook
URL
Điểm cuối API trên hệ thống bên ngoài chấp nhận yêu cầu HTTP POST
Loại xác thực
Bearer Token, API Key, Basic (tên người dùng/mật khẩu), hoặc None
Tiêu đề
Các tiêu đề HTTP tùy chỉnh (mặc định: content-type: application/json)
Cho phép chứng chỉ không an toàn
Dành cho chứng chỉ tự ký trong môi trường dev/test
Thời gian chờ
Số giây tối đa để chờ phản hồi (tối thiểu 3)
Số lần thử lại
Số lần thử lại khi thất bại hoặc không có phản hồi
Biến tải trọng
Tải trọng của tác vụ webhook hỗ trợ các biến động được phân giải tại thời điểm thực thi:
${DATE}
Ngày/giờ hiện tại ở định dạng chuỗi đầy đủ (ví dụ: Thu, 16 Oct 2025 11:38:07 EDT)
${TIMESTAMP}
Ngày/giờ hiện tại dưới dạng số nguyên epoch (ví dụ: 1760629087)
${RANDOM}
Số nguyên được tạo ngẫu nhiên
${NAME}
Tên của đối tượng VergeOS áp dụng
Các trường hợp sử dụng Webhook
Gửi một thông báo Slack tới một kênh quản trị khi một công việc đồng bộ tạo ra lỗi
Đăng lên một hệ thống kế toán khi một tenant lên online, kích hoạt thanh toán tự động
Kích hoạt một quy trình Zapier khi một VM cụ thể bật nguồn, khởi tạo các hành động liên ứng dụng
Ví dụ thực hành 1: Tự động Bật/Tắt các VM GPU
Ví dụ này minh họa cách thẻ, tác vụ, sự kiện và lịch hoạt động cùng nhau để quản lý các khối lượng công việc GPU tiêu tốn nhiều tài nguyên.
Tình huống: Người dùng JThompson sử dụng nhiều VM chạy bằng GPU cho mô hình 3D. Các VM này tiêu thụ đáng kể năng lực tính toán và bộ nhớ — để chúng chạy khi không hoạt động là lãng phí.
Mục tiêu: Bật các VM khi JThompson đăng nhập, tắt chúng khi đăng xuất và thực thi việc tắt máy lúc 6 giờ chiều thứ Sáu như một biện pháp an toàn.
Các bước cấu hình
Tạo một thẻ — Trong Hệ thống → Thẻ, tạo một danh mục
VMvới thẻJThompson-GPU. Gán thẻ này cho các VM mục tiêu.Tạo tác vụ "Bật nguồn" — Hệ thống → Bảng điều khiển Tác vụ → Tác vụ mới. Đặt Loại đối tượng thành
Máy ảo, chọn thẻJThompson-GPU, và đặt Hành động thànhBật nguồn.Thêm trình kích hoạt sự kiện đăng nhập — Từ bảng điều khiển tác vụ, thêm Trình kích hoạt sự kiện: Loại =
Người dùng, Sự kiện =Đăng nhập, Đối tượng =JThompson.Tạo tác vụ "Tắt nguồn" — Tác vụ mới với cùng lựa chọn thẻ nhưng Hành động =
Tắt nguồn.Thêm trình kích hoạt sự kiện đăng xuất — Trình kích hoạt sự kiện trên tác vụ tắt nguồn: Loại =
Người dùng, Sự kiện =Đăng xuất, Đối tượng =JThompson.Tạo lịch thứ Sáu — Lịch mới: Lặp mỗi 1 tuần vào thứ Sáu lúc 6:00 PM.
Thêm trình kích hoạt lịch — Gắn lịch thứ Sáu vào tác vụ "Tắt nguồn" như một Trình kích hoạt lịch.
Kết quả: Các VM tự động bật khi JThompson đăng nhập, tắt khi đăng xuất, và được đảm bảo tắt vào mỗi thứ Sáu lúc 6 giờ chiều bất kể trạng thái đăng nhập. Mẫu này áp dụng cho bất kỳ khối lượng công việc nào tiêu tốn nhiều tài nguyên — máy đào tạo ML, trạm dựng CAD, môi trường kiểm thử tích hợp hoặc cụm mô hình tài chính.
Ví dụ thực hành 2: Cảnh báo Slack + Email khi lỗi đồng bộ
Ví dụ này cho thấy cách webhook, tác vụ và sự kiện kết hợp để cung cấp cảnh báo đa kênh cho các hoạt động DR/BC.
Tình huống: Một nhà cung cấp dịch vụ cần nhận thông báo ngay lập tức khi các công việc đồng bộ ban đêm gặp lỗi, thông qua cả Slack và email.
Các bước cấu hình
Tạo một webhook — Hệ thống → Bảng điều khiển Tác vụ → Webhook mới. Cấu hình URL webhook đến Slack, đặt Loại xác thực thành
Bearer Tokenvới mã bot Slack, và đặt content-type thànhapplication/json.Tạo tác vụ email — Tác vụ mới: Loại đối tượng =
Email, cấu hình địa chỉ người nhận và nội dung thông báo.Tạo tác vụ webhook — Tác vụ mới: Loại đối tượng =
Webhook, chọn webhook Slack, Hành động =Gửi. Xác định tải trọng JSON:Thêm trình kích hoạt sự kiện vào tác vụ webhook — Loại =
Đồng bộ đi, Sự kiện =Lỗi, chọn công việc đồng bộ cụ thể (hoặc dùng một thẻ cho nhiều lần đồng bộ).Thêm cùng trình kích hoạt sự kiện vào tác vụ email — Cấu hình giống bước 4, liên kết với tác vụ email.
Kết quả: Khi bất kỳ công việc đồng bộ nào được giám sát tạo ra lỗi, cả kênh Slack và hộp thư email đều nhận cảnh báo đồng thời. Quản trị viên có thể điều tra kịp thời, tối đa hóa khả năng hoàn tất đồng bộ trong khoảng thời gian sẵn có.
Mở rộng bằng Thẻ
Nếu bạn muốn cùng một trình kích hoạt áp dụng cho tất cả các đồng bộ đi, hãy gán một thẻ dùng chung (ví dụ: critical-sync) cho các công việc đồng bộ đó. Cấu hình trình kích hoạt để chạy với bất kỳ đồng bộ nào có thẻ đó — không cần tạo từng trình kích hoạt riêng cho mỗi lần đồng bộ.
Tạo Tác vụ: Tham chiếu Nhanh
Mỗi tác vụ đều tuân theo cùng một mẫu tạo:
Đi tới Hệ thống → Bảng điều khiển Tác vụ → Tác vụ mới
Cấu hình: Tên, Loại đối tượng, Đối tượng (phiên bản cụ thể hoặc thẻ), Hành động, Cài đặt
Gắn một hoặc nhiều Trình kích hoạt sự kiện và/hoặc Trình kích hoạt lịch
Xác minh trong Nhật ký Tác vụ rằng tác vụ chạy đúng
Các tác vụ có một Đã bật cờ; bạn có thể tạm thời vô hiệu hóa một tác vụ nếu cần xác minh cấu hình trước khi kích hoạt nó, rồi bật lại khi sẵn sàng.
Các trường của Tác vụ
Tên — Định danh mô tả Loại đối tượng — Phần của ứng dụng (VM, Mạng, Người dùng, Webhook, v.v.) Đối tượng — Mục tiêu hoặc thẻ cụ thể Hành động — Thao tác cần thực hiện Xóa sau khi chạy — Tùy chọn thực thi một lần
Nhật ký Tác vụ
Mỗi lần thực thi tác vụ được ghi lại với: - Dấu thời gian và thời lượng - Trạng thái thành công/thất bại - Sự kiện hoặc lịch kích hoạt - Chi tiết đối tượng mục tiêu Nhật ký có thể truy cập từ Bảng điều khiển Tác vụ để kiểm tra.
Script (Xem trước)
Tính năng Script tính năng, được giới thiệu trong VergeOS 26, đặt nền tảng cho các luồng tự động hóa do quản trị viên định nghĩa trong tương lai. Mặc dù hiện tại chỉ dành cho các hoạt động hệ thống nội bộ, nó đã được thiết kế với khả năng mở rộng trong tâm trí. Các bản phát hành tương lai sẽ mở rộng Script để hỗ trợ tự động hóa tùy chỉnh của quản trị viên trực tiếp trong nền tảng — bổ sung cho Bộ máy Tác vụ hiện có bằng logic có thể lập trình.
Điểm chính
Theo sự kiện
Kích hoạt tự động hóa từ các sự kiện hệ thống — người dùng đăng nhập/đăng xuất, lỗi đồng bộ, thay đổi trạng thái VM, điều kiện cảnh báo — mà không cần thăm dò hay bộ lập lịch bên ngoài.
Theo lịch
Chạy tác vụ vào các thời điểm cụ thể bằng lịch tích hợp sẵn hoặc tùy chỉnh. Một lần hoặc lặp lại, với ngày kết thúc tùy chọn.
Tích hợp bên ngoài
Đẩy thông báo tới Slack, email, Zapier hoặc bất kỳ điểm cuối HTTP nào thông qua webhook với xác thực, tiêu đề và logic thử lại có thể cấu hình.
Mô-đun & Tái sử dụng
Quan hệ nhiều-nhiều giữa tác vụ, sự kiện, lịch và webhook. Xây dựng một lần, kết hợp tự do.
Cập nhật lần cuối
Nội dung này có hữu ích không?