HA-Master
Hệ thống quản lý HAProxy tập trung theo mô hình Master–Agent. Deploy config tới hàng trăm node, không cần SSH, có audit trail đầy đủ.
Quản lý HAProxy thủ công rất khó scale
Khi số lượng node tăng lên, mô hình SSH-to-each-server bộc lộ nhiều điểm yếu nghiêm trọng.
SSH từng máy — không scalable
Mỗi lần thay đổi config phải SSH vào từng node, copy file thủ công. Với 50+ node, quá trình này tốn hàng giờ và dễ xảy ra sai lệch giữa các máy.
Không có audit trail
Không biết ai đã thay đổi gì, khi nào. Khi incident xảy ra, việc truy vết nguyên nhân gần như không thể nếu không có log đầy đủ.
Rollback thủ công = downtime
Config lỗi trên production? Phải SSH từng máy để restore file cũ. Không có snapshot, không có history, không có automated rollback.
Bảo mật kém với SSH keys
Mỗi engineer cần SSH key tới tất cả nodes. Quản lý key rotation phức tạp. Risk surface lớn khi key bị lộ.
Không có visibility
Không biết node nào đang chạy config version nào. Trạng thái deployment (success/failed/pending) hoàn toàn mù quáng.
Config drift giữa các node
Node A và Node B có thể đang chạy 2 version config khác nhau mà không ai hay biết — dẫn đến behavior không nhất quán.
HA-Master — Single Pane of Glass
Quản lý toàn bộ HAProxy cluster từ một giao diện duy nhất. Không SSH, không manual, fully audited.
Database là Source of Truth
Config không nằm trên node mà nằm trong PostgreSQL. Mỗi thay đổi tạo ra một immutable config version với SHA-256 hash. Node chỉ là nơi apply config.
Agent-Initiated gRPC (Firewall-Safe)
Agent chạy trên node chủ động kết nối tới Master qua gRPC bidirectional stream. Không cần mở inbound port trên node — an toàn với firewall enterprise.
Idempotent Deployment
Mỗi deployment so sánh SHA-256 hash. Nếu node đã có đúng config version → skip. Retry bao nhiêu lần cũng an toàn, không có side effect.
mTLS + AES-256-GCM Security
Tất cả giao tiếp giữa Agent và Master đều qua mTLS. Private keys của SSL certificate được mã hóa AES-256-GCM trước khi lưu vào DB.
Full Audit Trail
Mọi action đều được log với user attribution, timestamp, và correlation ID. Biết chính xác ai deploy gì, khi nào, kết quả ra sao.
Master–Agent Model
3 tầng rõ ràng: Frontend → Master → Agents. Không SSH, không direct access vào node.
:8080
ACID
Battle-tested, minimal dependencies
Chọn lọc kỹ — mỗi thư viện đều có lý do rõ ràng. Không over-engineer.
Đầy đủ tính năng cho production
Từ quản lý config đến SSL cert management — tất cả trong một hệ thống.
Node & Cluster Management
Đăng ký node qua API, nhận cert bundle tự động. Nhóm node vào cluster logic để deploy đồng thời. Heartbeat real-time cho phép phát hiện node offline trong <30s.
Config Editor & Versioning
Monaco editor với syntax highlighting cho HAProxy config. Mỗi lần save tạo immutable version mới với SHA-256 hash. Diff viewer so sánh giữa các version.
Deployment Engine
Rolling deploy với batch_size tùy chỉnh. Advisory lock ngăn duplicate execution. Retry tối đa 3 lần với exponential backoff. Hỗ trợ stop-on-failure hoặc continue.
Runtime Control
Enable/disable backend servers không cần reload HAProxy. Điều chỉnh weight để shift traffic gradually. Show stats real-time từ HAProxy stats socket.
SSL Certificate Management
Upload cert và private key qua UI. Key được mã hóa AES-256-GCM trước khi vào DB. Push cert tới các node, agent ghi vào /etc/haproxy/ssl/ và reload HAProxy.
Auth & RBAC
JWT authentication với access token 15min + refresh token 7 ngày. 3 roles: viewer (read-only), operator (deploy + runtime), admin (full access). Mọi action đều được audit log.
Trực quan, dễ dùng cho ops team
4 màn hình chính của HA-Master — từ dashboard tổng quan đến quản lý SSL certificate.
| Node | Status | Cluster | Config | Last Seen |
|---|---|---|---|---|
| web-01.prod | online | production | a3f8c1d… | 2s ago |
| web-02.prod | online | production | a3f8c1d… | 3s ago |
| web-03.prod | degraded | production | b7d2a4e… | 45s ago |
| lb-01.stg | offline | staging | — | 2m ago |
| lb-02.stg | online | staging | c9f1b3a… | 8s ago |
| Domain | Issuer | Expires | Status | Actions |
|---|---|---|---|---|
| *.example.com | Let’s Encrypt | 2026-08-12 | 99 days | Push · Delete |
| api.example.com | DigiCert | 2026-06-02 | 28 days | Push · Delete |
| admin.internal.com | Internal CA | 2026-05-10 | 5 days | Push · Delete |
| *.api.example.com | Let’s Encrypt | 2026-12-20 | 229 days | Push · Delete |
Chạy trong 5 phút với Docker
Môi trường development đầy đủ với 1 lệnh Docker Compose.
Từ scaffolding đến production-ready
6 phase hoàn thành. Phase 7+ đang trong kế hoạch.
Quản lý HAProxy không cần SSH nữa
HA-Master giải quyết tất cả pain point của việc quản lý HAProxy thủ công: từ config versioning, idempotent deployment, đến SSL cert management — tất cả qua một giao diện web duy nhất, có audit trail đầy đủ và bảo mật với mTLS + AES-256.
Dự án đang trong giai đoạn tích cực phát triển. Phase 7 (testing + metrics) sắp bắt đầu.