Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 16. Thực hành chuyển QMS sang AI server trong vài phút

ICT

1. Mục tiêu của bài thực hành

Bài này mô phỏng tình huống sự cố thực tế:
máy chủ QMS gặp lỗi nghiêm trọng hoặc cần bảo trì khẩn cấp, hệ thống phải chuyển toàn bộ dịch vụ sang AI server trong thời gian ngắn, với các yêu cầu:

  • Không sửa cấu hình hàng trăm website/web app.

  • Không ảnh hưởng HTTPS, Certbot, Cloudflare.

  • Thao tác đơn giản, có thể hoàn thành trong vài phút.

  • Có khả năng rollback khi QMS hồi phục.

Bài thực hành này giả định rằng:

  • Các bài trước đã được triển khai đúng (snippets backend-active, ACME độc lập, template chuẩn).

  • AI server đã được chuẩn bị ở trạng thái standby.


2. Kịch bản sự cố giả định

Tình huống

  • Người dùng báo:

    • Web app QLCL chậm bất thường.

    • Nhiều website trả lỗi 502/504.

  • Kiểm tra sơ bộ cho thấy:

    • QMS không phản hồi ổn định.

    • AI server vẫn hoạt động bình thường.

Quyết định

  • Kích hoạt failover thủ công: QMS → AI.


3. Checklist chuẩn bị (trước khi thao tác)

Checklist này nên được in sẵn hoặc lưu trong SOP nội bộ.

  1. Có quyền root hoặc sudo trên Reverse Proxy.

  2. Biết vị trí file:

    • /etc/nginx/snippets/backend/backend-active.conf

  3. Biết IP backend:

    • QMS: 10.10.10.66

    • AI: 10.10.10.88


4. Bước 1 — Xác minh nhanh trạng thái QMS và AI

Thao tác trên Reverse Proxy.

4.1. Kiểm tra QMS

curl -I http://10.10.10.66

Kết quả giả định:

  • Timeout hoặc lỗi 5xx → QMS có vấn đề.


4.2. Kiểm tra AI

curl -I http://10.10.10.88

Kết quả mong đợi:

  • Có phản hồi HTTP (200/301/302).

Nếu AI không phản hồi, không failover.
Cần xử lý AI trước.


5. Bước 2 — Chuyển backend-active sang AI (thao tác cốt lõi)

5.1. Kiểm tra backend-active hiện tại

ls -l /etc/nginx/snippets/backend/backend-active.conf

Ví dụ kết quả:

backend-active.conf -> backend-qms.conf

5.2. Switch sang AI bằng symlink

ln -sfn /etc/nginx/snippets/backend/backend-ai.conf \
      /etc/nginx/snippets/backend/backend-active.conf

Thao tác này:

  • Không sửa file site.

  • Không sửa SSL.

  • Chỉ thay “điểm chuyển mạch”.


6. Bước 3 — Kiểm tra cấu hình và reload Nginx

6.1. Kiểm tra cấu hình

nginx -t

Chỉ khi kết quả:

syntax is ok test is successful

mới tiếp tục.


6.2. Reload Nginx (không restart)

systemctl reload nginx

Không dùng restart, tránh ngắt kết nối đang tồn tại.


7. Bước 4 — Xác minh dịch vụ từ phía người dùng

7.1. Kiểm tra nhanh trên proxy

curl -I https://qlcl.example.com

7.2. Kiểm tra từ trình duyệt

  • Truy cập:

    • 1–2 web app trọng điểm (QLCL, KHTH).

    • 1 website public.

7.3. Kiểm tra log Nginx (nếu cần)

tail -n 50 /var/log/nginx/error.log

Không thấy lỗi upstream timed out mới → failover thành công.


8. Thời gian thực tế của quy trình

Với người đã quen thao tác:

BướcThời gian
Kiểm tra QMS/AI30–60 giây
Switch backend10 giây
Reload Nginx5 giây
Kiểm tra dịch vụ1–2 phút

👉 Tổng thời gian: 2–3 phút


9. Ghi nhận sự kiện failover (khuyến nghị)

Để phục vụ audit và rút kinh nghiệm:

echo "$(date '+%Y-%m-%d %H:%M:%S') - FAILOVER QMS -> AI" \ >> /var/log/failover.log

10. Lưu ý quan trọng trong khi AI đang active

  • AI đang gánh toàn bộ traffic → theo dõi:

    • CPU

    • RAM

    • Disk I/O

  • Tránh deploy lớn hoặc thao tác nặng không cần thiết.

  • Thông báo nội bộ (nếu có quy trình) rằng hệ thống đang ở chế độ dự phòng.


11. Thực hành rollback: chuyển AI → QMS

Khi QMS đã được khắc phục:

11.1. Kiểm tra QMS

curl -I http://10.10.10.66

11.2. Switch backend-active về QMS

ln -sfn /etc/nginx/snippets/backend/backend-qms.conf \
      /etc/nginx/snippets/backend/backend-active.conf

11.3. Reload an toàn

nginx -t && systemctl reload nginx

Kết luận

Bài thực hành này cho thấy:

  • Failover không cần phức tạp để hiệu quả.

  • Chỉ cần:

    • Reverse Proxy thiết kế đúng,

    • Một điểm chuyển mạch backend duy nhất,

    • Quy trình rõ ràng.

Với cách làm này, hệ thống của anh:

  • Chịu lỗi tốt hơn,

  • Ít phụ thuộc cá nhân,

  • Phù hợp môi trường vận hành thực tế.