Webhook là một khái niệm cực kỳ quan trọng khi bước vào thế giới automation, DevOps, NetDevOps hay tích hợp hệ thống. Nếu API truyền thống giống như việc bạn phải liên tục hỏi “Có gì mới chưa?” thì webhook là cách hệ thống chủ động nói với bạn “Có sự kiện mới đây!”.
Webhook hoạt động theo mô hình push, tức là server sẽ tự động gửi dữ liệu đến một endpoint đã được cấu hình sẵn mỗi khi có sự kiện xảy ra. Không cần polling liên tục, không cần viết script cứ vài giây gọi API kiểm tra trạng thái. Đây là lý do webhook được dùng rất nhiều trong monitoring, CI/CD, incident response, ChatOps và network automation.
Trong ví dụ từ Cisco Catalyst Center, webhook được dùng để phát hành (publish) các event notification như BGP Down, interface flap, unreachable device, assurance alerts… Khi có sự cố mạng, Catalyst Center sẽ đóng vai trò event producer, đóng gói dữ liệu dưới dạng JSON payload rồi gửi đến endpoint receiver của bạn thông qua HTTP POST hoặc đôi khi PUT.
Quy trình triển khai khá đơn giản. Trước tiên tạo một webhook destination trong Catalyst Center bằng cách khai báo tên, mô tả, URL của webhook receiver, chọn trust certificate nếu dùng HTTPS, chọn phương thức HTTP (thường là POST), cấu hình authentication nếu cần như Basic Auth hoặc token-based auth, rồi lưu lại.
Sau đó vào phần Event Notifications / Event Catalog, chọn sự kiện muốn subscribe, ví dụ Network Device Interface Connectivity - BGP Down, rồi dùng chức năng Try-It-Now để phát sinh test event. Catalyst Center sẽ gửi payload thử nghiệm đến tất cả destination đã subscribe.
Một điểm quan trọng là payload test có thể khác payload thật trong production. Vì vậy khi viết webhook receiver, đừng chỉ test với mock JSON đơn giản mà nên kiểm tra với event thực tế.
Ví dụ receiver có thể là:
Ví dụ luồng automation thực tế:
BGP Down → Catalyst Center phát webhook → Flask receiver nhận JSON → Python script parse event → gọi API tạo ticket ServiceNow → gửi cảnh báo Teams/Slack → trigger remediation playbook Ansible
Đây chính là nền tảng của event-driven automation.
Polling là mô hình “Are we there yet?”
Webhook là mô hình “I’ll call you when something happens.”
Với DevOps và NetDevOps, webhook không chỉ là notification mechanism. Nó là cầu nối để biến hạ tầng từ reactive sang autonomous automation.
Webhook hoạt động theo mô hình push, tức là server sẽ tự động gửi dữ liệu đến một endpoint đã được cấu hình sẵn mỗi khi có sự kiện xảy ra. Không cần polling liên tục, không cần viết script cứ vài giây gọi API kiểm tra trạng thái. Đây là lý do webhook được dùng rất nhiều trong monitoring, CI/CD, incident response, ChatOps và network automation.
Trong ví dụ từ Cisco Catalyst Center, webhook được dùng để phát hành (publish) các event notification như BGP Down, interface flap, unreachable device, assurance alerts… Khi có sự cố mạng, Catalyst Center sẽ đóng vai trò event producer, đóng gói dữ liệu dưới dạng JSON payload rồi gửi đến endpoint receiver của bạn thông qua HTTP POST hoặc đôi khi PUT.
Quy trình triển khai khá đơn giản. Trước tiên tạo một webhook destination trong Catalyst Center bằng cách khai báo tên, mô tả, URL của webhook receiver, chọn trust certificate nếu dùng HTTPS, chọn phương thức HTTP (thường là POST), cấu hình authentication nếu cần như Basic Auth hoặc token-based auth, rồi lưu lại.
Sau đó vào phần Event Notifications / Event Catalog, chọn sự kiện muốn subscribe, ví dụ Network Device Interface Connectivity - BGP Down, rồi dùng chức năng Try-It-Now để phát sinh test event. Catalyst Center sẽ gửi payload thử nghiệm đến tất cả destination đã subscribe.
Một điểm quan trọng là payload test có thể khác payload thật trong production. Vì vậy khi viết webhook receiver, đừng chỉ test với mock JSON đơn giản mà nên kiểm tra với event thực tế.
Ví dụ receiver có thể là:
- Flask app
- FastAPI service
- Node.js Express endpoint
- SIEM collector
- Splunk HEC
- ServiceNow
- PagerDuty
- Slack automation bot
Ví dụ luồng automation thực tế:
BGP Down → Catalyst Center phát webhook → Flask receiver nhận JSON → Python script parse event → gọi API tạo ticket ServiceNow → gửi cảnh báo Teams/Slack → trigger remediation playbook Ansible
Đây chính là nền tảng của event-driven automation.
Polling là mô hình “Are we there yet?”
Webhook là mô hình “I’ll call you when something happens.”
Với DevOps và NetDevOps, webhook không chỉ là notification mechanism. Nó là cầu nối để biến hạ tầng từ reactive sang autonomous automation.