Chỉ vì một lỗi sơ đẳng trong lập trình, các kỹ sư giỏi nhất của Google đã vô tình đánh sập một nửa internet của thế giới như thế nào

Sự cố này là một lời nhắc nhở chúng ta rằng ngay cả những hệ thống phức tạp và được thiết kế cẩn thận nhất như Google cũng có thể sụp đổ vì những lỗi rất cơ bản.

Vào lúc 10 giờ 45 phút sáng ngày 12 tháng 6 năm 2025, theo giờ Thái Bình Dương, hàng loạt nền tảng internet nổi tiếng trên thế giới như Google, Spotify, Discord và Cloudflare cùng nhiều dịch vụ internet khác dừng hoạt động trên diện rộng. Không lâu sau đó, nguyên nhân của sự cố này được xác định là do Google Cloud. Đây được xem như một trong những sự cố nghiêm trọng nhất trong lịch sử hoạt động của nền tảng này cũng như ảnh hưởng đến hàng chục triệu người dùng trên toàn cầu.

Điều đáng chú ý nhất về sự cố này không phải quy mô thiệt hại mà chính là nguyên nhân gây ra nó - một lỗi lập trình cơ bản mà bất kỳ sinh viên khoa học máy tính năm nhất nào cũng được dạy cách tránh. Câu chuyện này cho thấy như thế nào một sai lầm nhỏ có thể lan truyền và gây ra hậu quả khôn lường trong thế giới công nghệ hiện đại.

Chỉ vì một lỗi sơ đẳng trong lập trình, các kỹ sư giỏi nhất của Google đã vô tình đánh sập một nửa internet của thế giới như thế nào- Ảnh 1.

Vào ngày 12-6 vừa qua, hàng loạt dịch vụ internet gặp sự cố dừng hoạt động

Chuỗi sai lầm nối tiếp sai lầm

Để hiểu rõ sự cố, trước tiên cần nắm được vai trò của hệ thống Service Control trong cơ sở hạ tầng Google Cloud. Service Control đóng vai trò như một cổng kiểm soát trung tâm, xử lý tất cả các yêu cầu API gửi đến Google Cloud. Hệ thống này chịu trách nhiệm xác thực người dùng, kiểm tra hạn ngạch sử dụng, thực thi các chính sách bảo mật và ghi lại thông tin để tính phí. Có thể nói, Service Control là "tim" của toàn bộ nền tảng Google Cloud.

Chuỗi sự kiện dẫn đến thảm họa bắt đầu từ ngày 29 tháng 5 năm 2025, khi đội ngũ kỹ sư Google triển khai một tính năng mới cho Service Control. Tính năng này được thiết kế để cung cấp khả năng kiểm soát hạn ngạch chi tiết hơn, nhằm đáp ứng nhu cầu ngày càng phức tạp của khách hàng doanh nghiệp.

Tuy nhiên, việc triển khai này đã mắc phải một sai lầm nghiêm trọng trong quy trình phát triển phần mềm. Các kỹ sư đã triển khai tính năng mới mà không sử dụng "feature flag" - một cơ chế cho phép bật hoặc tắt tính năng mới một cách nhanh chóng trong trường hợp khẩn cấp. Điều này có nghĩa là một khi tính năng được triển khai, nó sẽ hoạt động trên toàn bộ hệ thống mà không có cách nào để vô hiệu hóa ngay lập tức.

Chỉ vì một lỗi sơ đẳng trong lập trình, các kỹ sư giỏi nhất của Google đã vô tình đánh sập một nửa internet của thế giới như thế nào- Ảnh 2.

Service Control, trung tâm trong hệ thống kiểm soát API của Google

Tệ hơn nữa, tính năng mới này chứa một lỗi null pointer - một trong những lỗi cơ bản nhất trong lập trình. Lỗi null pointer xảy ra khi chương trình cố gắng truy cập vào một vùng nhớ không tồn tại hoặc chưa được khởi tạo. Trong trường hợp này, lỗi chỉ xuất hiện khi hệ thống gặp phải một loại dữ liệu cụ thể mà trong quá trình kiểm thử không được mô phỏng.

Hai tuần sau khi triển khai tính năng có lỗi, vào ngày 12 tháng 6, một sự kiện tưởng chừng như vô hại đã kích hoạt thảm họa. Một nhân viên Google đã tải lên một bản cập nhật chính sách vào cơ sở dữ liệu Spanner của công ty. Bản cập nhật này chứa một số trường dữ liệu trống - điều hoàn toàn bình thường trong vận hành hàng ngày và thường được hệ thống xử lý mà không gặp vấn đề gì.

Khi Service Control đọc dữ liệu chính sách có chứa các trường trống này, tính năng mới được kích hoạt và lập tức gặp phải lỗi null pointer. Kết quả là toàn bộ Service Control binary bị crash, khiến hệ thống không thể xử lý bất kỳ yêu cầu API nào.

Tình huống trở nên tồi tệ hơn do cách thức hoạt động của cơ sở dữ liệu Spanner. Spanner được thiết kế để tự động sao chép dữ liệu ra tất cả các khu vực trên toàn cầu nhằm đảm bảo tính nhất quán và sẵn sàng cao. Trong trường hợp này, dữ liệu chính sách có vấn đề đã được lan truyền đến mọi trung tâm dữ liệu của Google trên khắp thế giới chỉ trong vài giây. Kết quả là các phiên bản Service Control tại mọi khu vực đều lần lượt bị crash khi cố gắng xử lý dữ liệu độc hại này.

Chỉ vì một lỗi sơ đẳng trong lập trình, các kỹ sư giỏi nhất của Google đã vô tình đánh sập một nửa internet của thế giới như thế nào- Ảnh 3.

Từ một lỗi null pointer sơ đẳng, cả hệ thống của Google và các đối tác đã gặp sự cố theo dây chuyền domino

Hậu quả trầm trọng của sự cố

Tác động của sự cố lan rộng nhanh chóng ra ngoài hệ sinh thái Google. Vì nhiều dịch vụ và ứng dụng của bên thứ ba dựa vào Google Cloud để vận hành, chúng cũng bị ảnh hưởng nghiêm trọng. Trong số các dịch vụ bị gián đoạn đáng kể nhất có Cloudflare - một công ty chuyên cung cấp dịch vụ bảo mật và tăng tốc website, nổi tiếng với độ tin cậy cao.

Sự cố cũng ảnh hưởng đến hàng loạt ứng dụng phổ biến mà hàng triệu người dùng sử dụng hàng ngày. Spotify gặp khó khăn trong việc phát nhạc, Discord không thể duy trì kết nối giữa các cộng đồng người dùng, Snapchat gián đoạn dịch vụ chia sẻ ảnh, và thậm chí ChatGPT của OpenAI cũng ngừng hoạt động trong một thời gian. Một phần dịch vụ của Amazon Web Services cũng bị ảnh hưởng do sự phụ thuộc lẫn nhau giữa các nhà cung cấp dịch vụ đám mây.

Đội ngũ Site Reliability Engineering (SRE) của Google đã phản ứng khá nhanh chóng. Chỉ trong vòng 2 phút sau khi phát hiện sự cố, họ đã xác định được nguyên nhân và bắt đầu triển khai giải pháp khắc phục. Google đã kích hoạt cơ chế "kill switch" để vô hiệu hóa đường dẫn code có vấn đề sau mười phút kể từ khi sự cố được phát hiện.

Chỉ vì một lỗi sơ đẳng trong lập trình, các kỹ sư giỏi nhất của Google đã vô tình đánh sập một nửa internet của thế giới như thế nào- Ảnh 4.

Quá trình phục hồi diễn ra khá thuận lợi ở hầu hết các khu vực. Trong vòng 40 phút, đa số các dịch vụ đã trở lại hoạt động bình thường. Tuy nhiên, khu vực us-central1 (Iowa) gặp phải vấn đề phức tạp hơn. Khi tất cả các phiên bản Service Control trong khu vực này cùng lúc cố gắng khởi động lại, chúng đã tạo ra một lượng tải quá lớn lên cơ sở dữ liệu backend. Hiện tượng này, được gọi là "herd effect", đã khiến việc phục hồi tại khu vực này kéo dài gần 3 giờ đồng hồ.

Một khía cạnh đáng chú ý khác của sự cố là vấn đề giao tiếp với khách hàng. Google không thể cập nhật thông tin về tình trạng dịch vụ cho người dùng vì chính bảng điều khiển trạng thái của họ cũng được lưu trữ trên cùng cơ sở hạ tầng bị sự cố. Điều này khiến khách hàng phải dựa vào các nguồn thông tin bên ngoài như DownDetector và mạng xã hội để hiểu tình hình.

Sau sự cố, Google đã công bố báo cáo phân tích chi tiết và cam kết thực hiện một số biện pháp khắc phục. Công ty hứa sẽ cải thiện khả năng xử lý dữ liệu không hợp lệ của hệ thống API management, triển khai các biện pháp bảo vệ để ngăn chặn việc sao chép dữ liệu có vấn đề ra toàn cầu mà không qua kiểm tra, và mở rộng quy trình kiểm thử để phát hiện sớm các trường hợp dữ liệu bất thường.

Sự cố đã làm nổi bật xu hướng tập trung hóa ngày càng gia tăng trong ngành công nghệ. Khi nhiều dịch vụ cùng phụ thuộc vào một số ít nhà cung cấp hạ tầng lớn, một sự cố tại một điểm có thể gây ra hiệu ứng domino trên quy mô toàn cầu. Điều này đặt ra câu hỏi về tính đa dạng và phân tán trong thiết kế hệ thống công nghệ hiện đại.

Mặc dù Google đã xử lý sự cố một cách chuyên nghiệp và nhanh chóng, nhưng sự kiện này nhắc nhở chúng ta rằng ngay cả những hệ thống phức tạp và được thiết kế cẩn thận nhất cũng có thể thất bại vì những lỗi rất cơ bản. Trong thời đại mà cuộc sống số ngày càng phụ thuộc vào các dịch vụ đám mây, việc xây dựng các biện pháp dự phòng và quy trình xử lý sự cố hiệu quả trở nên quan trọng hơn bao giờ hết.