18/11/2025
Case Study nào cho bài học từ sự cố CloudFlare sập sấp mặt lần này.
CloudFlare là dịch vụ mình đã tin tưởng và sử dụng cho nhiều hệ thống lớn nhỏ từ hơn 10 năm nay. Ngay cả hệ thống quản lý bán hàng Chủ Tiệm POS cũng đang sử dụng nhiều dịch vụ và CloudFlare cung cấp.
Niềm tin đó không chỉ là qua khoảng thời gian 10 năm sử dụng mà còn qua các bài test phòng thủ tấn công hệ thống mà chính CloudFlare đã chia sẻ qua các diễn đàn.
Và điều đó dần dẫn tới 1 quyết định có lẽ là sai lầm do sự tin tưởng tuyệt đối bên trên mà bản thân mình cần xem lại, đó là đang cố gắng đưa các dịch vụ từ các nhà cung cấp khác về CloudFlare -> là đưa hết trứng về 1 giỏ!!
Cụ thể là mình đã có tư tưởng chuyển hết các domain về CloudFlare :)). Cũng do thằng godady dở chứng chặn truy cập từ Việt Nam cả tháng lận tưởng ko vô được để gia hạn domain luôn ấy.
Và thằng CloudFlare rất khốn nạn ở chỗ domain của của nó thì nó ko cho đổi NS qua nhà cung cấp khác mà phải dùng toàn bộ các service khác trong hệ sinh thái của nó. Và bumm quả toang này kéo theo các domain mình đang dùng trên đó ko thể cứu đc.
Cũng may domain chính chạy hệ thống vẫn nằm trên NCC khác nên mới cứu được bàn thua này.
Và từ sự cố lần này 1 bài học mình học đc từ CloudFlare là cần quan tâm hơn về hệ thống monitoring nhiều hơn. Theo nội dung hóng được nguyên nhân có thể đã phát sinh từ bẫy useEffect trong React.
Mình không có code React nên ace nào code món này có lẽ hiểu rõ hơn, nhưng đâu đó là lỗi trên dẫn tới FE call liên tục chuỗi các API kiểu như tự tay DDOS hệ thông của mình.
Đấy CF chặn DDOS từ ngoài vào thấy khoe chặn đc 99,9% các request tiềm tàn rủi do, vậy mà tự tay bóp ... thì chặn ko nổi. Đúng là không sợ kẻ địch mạnh mà chỉ sợ đồng đội ngoo thôi ah.
Nhưng như mình đã nói trên CF chắc chắn có hệ thống monitoring rất mạnh thì vì sao lại để tới mức hệ 1 hệ thống quá tải và kéo theo các hệ thống khác sập hàng loạt?
Và trước CF thì Google Cloud và AWS cũng có sự cố gần như tương tự mới xảy ra ko xa. Mà chắc chắn 3 ông lớn này bảo ko ngon thì chắc chả ai ngon hơn được nữa.
Có khi nào đây chính là hệ quả của các hệ thống lớn thiết kế theo hướng microservice + quá nhiều broker vận hành. Combo này đưa hệ thống sức mạnh chịu tải và phân vùng ảnh hưởng lên 1 tâm cao mới nhưng cũng trở thành combo huỷ diệt nếu như chỉ 1 lỗi tưởng chừng rất nhỏ từ 1 hệ thống không được monitor cẩn thận như trên thôi cũng như 1 khối ung thư làm suy yếu 1 chức năng kéo theo sự sụp đổ của cả 1 hệ thống?
Mình nghĩ phía CF có thể đã phát hiện bất thường này từ sáng nay vì sáng này mình đã thấy hệ thống mình có sự bất thường, nhưng không thấy có KH nào kêu cả và mình đã chủ quan lại nghĩ do nhà mạng internet mình đang dùng có vấn đề nên không quá chú tâm.
Và theo mình biết thì CF cũng đã cố găng scale hệ thống để trống đỡ (có thể là khoảng lúc 11h trưa nay) và tìm hướng xử lý lỗi nhưng có vẻ động thái này kèm combo huỷ diệt bên trên đã biên CF thành nạn nhân thứ 3 :).
Và BÙMM đúng 19h03p điện thoại hotline Chủ Tiệm đổ chuông liên tục, đại lý và KH gọi báo hệ thống lỗi khi mình vừa và đc 2 miếng cơm tối thì vội phi ngay vào hệ thống kiểm tra.
Timeline:
19h05' -> 19h20': Mất 15p đi 1 lượt hệ thống từ tổng quan trên monitoring các service đạng hoạt động, kiểm tra các server đang chịu tải và còn bao nhiêu tài nguyên trống, hệ thống DB, hệ thống broker
-> Mọi thứ đều ổn
-> Tài nguyên luôn trống 30% mỗi server (quan điểm của mình nếu 1 server vượt quá tải 70% thì phải tính tới scale)
19h20' -> 19h30': Kiểm tra lại các domain, ssl.
-> Domain còn hạn
-> Kiểm tra SSL thì đoàng -> CloudFlare không thể truy cập...
-> Kiểm tra thêm CF chỉ hết trang portal hay đã đi chân lạnh toán cả hệ thống bằng cách call API qua postman -> kết quả đã đi chân lanh toát tất cả hệ thống.
19h30' -> 19h45' Tìm kiếm thông tin sự cố về CF thì đọc được nhiều tin về sự cố toàn cầu nay. Và bản thân phía CF cũng đã có website cập nhật từng phút trạng thái xử lý sự cố.
-> CF xử lý tình huống cực kỳ chuyên nghiệp và cảm thấy an tâm lòng dân ...nhưng thực tế thời gian cứ trôi.. dòng đời còn mãi.. và lỗi còn nguyên đó
-> sau 15p nữa chờ đợi và thấy hệ thống lúc đc lúc tạch và thời gian tạch sau lâu dần đều thì mình thấy không ổn rồi phải tìm hướng xử lý thôi
20h00' -> 20h30' Xem lại toàn bộ thiết kế hệ thống, domain, DNS, SSL đang sử dụng ở đâu, chỗ nào, trỏ tới đâu.
-> Nhát dao 1: Tư tưởng đưa trứng về 1 giỏ xiên 1 phát đâu tiên. 1 domain mua trên CF vô phương cứu chưa vì không thể vào được CF mà vào đc cũng ko đổi NS domain đó ra khỏi CF được.
-> Nhát dao 2: Không lưu bất kỳ bản chụp config DNS nào của cả hệ thống đang chạy trên CF. -> May mắn mò vào DB có lưu 1 table danh sách các host URL cho hệ thống phân chia tải.
-> Nhận định nếu bỏ domain đang mua của CF thì hệ thống miễn cưỡng vẫn chạy đc 90% tính năng. chỉ có hệ thống API opengate cho bank sẽ oảng, đành chịu xử lý sau.
-> Cọng rơm cứu mạng vô tình: Đợt vừa rồi vì vài lý do mà quyết định mua Cer SSL bản thuơng mại cho domain chạy hệ thống chính nên không bị hẹo chỗ SSL. Chứ nếu vẫn dùng SSL của CF nữa thì chắc đi hẳn luôn...
20h30' -> 20h45': Loại bỏ NS của CF, config lại toàn bộ DNS của hệ thống sang nhà cung cấp khác.
-> Chạy hệ thống app ổn, ngon, ngọt, báo luôn cho KH. Tưởng tươi rồi.
-> Đời không như mơ... Chỉ chạy ổn khi app đã load config trước đó và sử dụng bán hàng tiếp thì OK còn nếu đăng xuất ra thì không đăng nhập lại đc... Nguyên nhân chính do thẳng domain còn lại mua của CF nó chưa 1 config về thanh toán bắt buộc load khi đăng nhập lại...
-> Đời quá đen mà đỏ chắc vẫn vậy :(
20h45' -> 21h00' Ngồi thân thờ reload lại trang thông báo xử lý sự cố của CF liên tục xem có gì tiến triển.
-> Đối lúc CF hoạt động được 1 lúc lại đi xa mãi. Làm mình chuyển đi chuyển lại NS mấy bận.
-> Sau 15' đơị chờ thì trang portal của CF hoạt động lại được nhưng các dịch vụ khác vẫn không work. Nên mình nhận định có vẻ ông CF này giáp mạnh quá nên dần dần cơ thể ko ốm đau gì nên cơ địa yêu rồi -> Không trông chờ gì nữa.
21h00' -> 21h30: Quyết định bỏ cả domain đang dùng mua từ CF chuyển qua sub-domain khác và build lại các hệ thống có liên quan.
-> Tạo xong sub-domain, config bổ sung vào hệ thống Proxy + Webservice
-> Build và deploy xong source code bị ảnh hưởng.
->Tuyệt vời. hệ thống đã hoạt động trở lại. Test 1 lượt rồi thông báo lại cho partner và KH được rồi.
------- KH của Chủ Tiệm đã có thể sử dụng lại được hệ thống ------
22h00: Có vẻ hệ thống CloudFlare đã hoạt động được trở lại. Nhưng check trên trang thông báo sự cố của CF thì vẫn đang đỏ lòm với các thông báo họ vẫn đang xử lý và rà soát các lỗi.
-> Ko dám mạo hiểm đưa hệ thống về CF ngay lúc này.
22h01': Chủ Tiệm quyết định đi ăn tiếp bát cơm còn dang dở :D
00h14: Team CF vẫn đang xử lý các lỗi tồn đọng
00h44p Tuyệt vời CF đã thông báo hệ thống hoạt động ổn định trở lại vả họ sẽ tiếp tục theo dõi. Sắc xanh đã thay thế sắc đỏ trong trang thông báo của CF.
01h46p: Sau khi viết luyên thuyên như trên Chủ Tiệm quyết định tin tưởng vào CF và chuyển lại hệ thống về CF 1 lần nữa.
02h00: Hệ thống Chủ Tiệm đã quay về với CloudFlare thành công và đã test hoạt động ổn định.
Cảm ơn đội ngũ CloudFlare đã rất cố găng xử lý vấn đề 1 cách chuyển nghiệp và rõ ràng.
Qua sự cố Chủ Tiệm cũng học được bài học là không tượng đài nào là không thể sụp đổ, không hệ thống nào là không bao giờ lỗi.
Kết quả Chủ Tiệm cũng có thêm được 1 giải pháp backup sẵn trong trường hợp bạn CloudFlare dở chứng nữa là sẵn sàng bỏ đi ngay và luôn :)
Và hơn hết cảm ơn những Khách hàng của Chủ Tiệm đã kiên nhẫn với Chủ Tiệm!
Bài viết Chủ Tiệm chia sẻ dưới cái nhìn cá nhân của riêng mình, không có nhằm mục đích đánh giá, phân tích hay suy set vì bản thân Chủ Tiệm cũng không phải là 1 BE hay infra.
Chủ Tiệm chỉ có 1 mục tiêu cố gắng duy trì hệ thống ngày 1 ổn định hơn trước các sóng gió có thể gặp phải, tránh làm ảnh hưởng tới hoạt động của các ace chủ Shop ah :D
Trân trọng,
Chủ Tiệm