Access Hub Collector
Đồng bộ từ mã nguồn lúc 10:57, 03/10/2026
Skip to content
ADR 0013Chấp nhận

ADR 0013: Môi trường dev mô phỏng đầy đủ các thành phần như sản xuất ​

Môi trường dev chạy đầy đủ các thành phần như sản xuất (cân tải TLS, nhiều ingest và worker, Redis có mật khẩu, hai instance VictoriaMetrics, vmalert), không dùng bản tạm hoặc bộ nhớ trong.

Ngày quyết định
30/09/2026
Chấp nhận
01/10/2026
Phạm vi
Collector
Người chấp nhận
Product Owner
  1. Đề xuất30/09/2026
  2. Chấp nhận01/10/2026, Product Owner chấp nhận

1. Tiêu đề quyết định (Title) ​

Môi trường dev chạy đầy đủ các thành phần như sản xuất (cân tải TLS, nhiều ingest và worker, Redis có mật khẩu, hai instance VictoriaMetrics, vmalert), không dùng bản tạm hoặc bộ nhớ trong.

2. Trạng thái (Status) ​

Chấp nhận (Accepted) ngày 01/10/2026 bởi Product Owner. Ghi nhận chỉ đạo của người dùng đã được thực hiện. Redis ở dev chỉ phục vụ phát triển, không đại diện cho độ sẵn sàng cao của sản xuất.

Ngày quyết định: 30/09/2026 (ngày người dùng chỉ đạo).

3. Ngữ cảnh (Context) ​

  • Người dùng chỉ đạo: "trên dev em cũng phải mô phỏng đầy đủ các thành phần như prod nhé, đừng làm tạm".
  • Trước đó nhiều đường đi chỉ được kiểm thử bằng bộ nhớ hoặc httptest (adapter VictoriaMetrics, presence, giới hạn tốc độ ở bộ nhớ tiến trình). Như vậy che khuất lỗi chỉ xuất hiện khi tách tiến trình, dùng Redis và VM thật (xem docs/11).
  • Access Hub thật chưa có phần giám sát (HUB-*), nên dev dùng mockhub thay thế.

4. Quyết định (Decision) ​

Dev chạy cấu trúc giống sản xuất (nguồn: docs/09-deployment.md, deploy/dev/devctl.sh):

Thành phầnDev
Cân tải TLSnginx, 127.0.0.1:8443
Ingesthai tiến trình, cổng 18443 và 18444
Workerhai tiến trình
Admin API127.0.0.1:9101
Redismaster 6380 có requirepass, AOF everysec cộng RDB, noeviction, mật khẩu ở tệp 0600 ngoài repo. devctl.sh còn dựng một replica 6381 (chỉ để thử sao chép, không phải HA, không Sentinel). Replica là bắt buộc ở sản xuất (docs/09, docs/14), ở dev có thể bỏ
VictoriaMetricsvm-raw 8428 (30 ngày), vm-long 8429 (400 ngày)
vmalert8880, rollup 5 phút và 1 giờ
Access Hubmockhub 127.0.0.1:8090 (chỉ dev, thay thế tới khi HUB-* xong)
Agentghim CA dev

Điều khiển bằng devctl.sh. Mọi thành phần chỉ nghe loopback. Phạm vi áp dụng: kiểm thử tích hợp và soak trên máy dev.

5. Cơ sở lý luận (Rationale) ​

Ưu điểm:

  • Phát hiện sớm lỗi chỉ có khi tách tiến trình và dùng kho thật (ví dụ tách vai trò, lease, đồng bộ registry).
  • Cùng cấu hình, cùng mã, giảm khác biệt dev và sản xuất, làm nền cho hướng dẫn triển khai thật.
  • Kiểm thử hai tenant và kiểm thử tải chạy trên đường đi thật.

Nhược điểm chấp nhận được:

  • Tốn tài nguyên và thời gian dựng hơn so với chạy một tiến trình.
  • Dev vẫn khác sản xuất ở các điểm đã biết: Redis chưa Sentinel, VM chưa snapshot theo lịch, Access Hub là mock, TLS dùng CA dev (docs/09).

6. Ảnh hưởng (Consequences) ​

  • Tích cực: độ tin cậy kiểm thử cao hơn, devctl.sh là tài liệu sống về cấu trúc sản xuất.
  • Rủi ro: dễ nhầm dev là bằng chứng sản xuất. Kết quả dev không thay kiểm thử tải thật (X-5, X-7, X-9).
  • Phải giữ dev không bị gián đoạn khi làm việc khác trên máy (không khởi động lại dịch vụ, không đụng dữ liệu Redis và VM khi không cần).
  • Việc tiếp theo: hướng dẫn triển khai sản xuất (docs/14, đang được viết), đo tài nguyên dev, thay mockhub bằng Access Hub thật khi HUB-* xong.

7. Các phương án được đánh giá (Considered Options) ​

Phương ánƯu điểmNhược điểmKết luận
Dev một tiến trình, kho trong bộ nhớ (tsdb.url trống)Nhanh, ít phụ thuộcChe lỗi khi tách tiến trình, không kiểm chứng VM và Redis thậtVẫn giữ cho kiểm thử đơn vị, không dùng cho tích hợp
Dev mô phỏng đầy đủSát sản xuấtTốn tài nguyênChọn (đề xuất, theo chỉ đạo người dùng)
Dev trên Docker ComposeDễ tái tạoKhông dùng ở đây: máy dev chạy trực tiếp binary theo mô hình unit systemd của sản xuất (đề xuất, chưa xác nhận lý do lựa chọn ban đầu)Không chọn
  • docs/09-deployment.md, deploy/dev/devctl.sh, deploy/systemd/
  • ADR: 0012, 0014
  • L1 HLD mục 8 (phụ thuộc mockhub)

9. Phê duyệt (Approvals) ​

TênVai tròGhi chú
chưa chỉ địnhEnterprise ArchitectChưa duyệt
chưa chỉ địnhSolution ArchitectChưa duyệt
Thiện Phan NgọcProduct OwnerChấp nhận 01/10/2026. Redis dev chỉ để phát triển
Trang này có giúp được bạn không?
Sửa trang này

Nội dung đồng bộ từ kho mã access-hub-collector lúc 10:57, 03/10/2026. Khi tài liệu và mã khác nhau, mã thắng.