Có thể bạn chưa biết: Cách đây tầm 5-60 năm, đi máy bay là một hình thức di chuyển cực kì nguy hiểm. Thời đấy, máy bay rơi hoặc tai nạn là chuyện … như cơm bữa, nhiều hãng hàng không bị tận 4-5 vụ tai nạn trong 1-2 năm.
Thế nhưng, nhờ 1 thiết bị nho nhỏ mà vô cùng quan trọng, ngành hàng không có thể tìm hiểu lý do máy bay rơi, từ đó cải thiện dần sau mỗi tai nạn. Sau hơn 60 năm, cho đến nay, đi máy bay đã trở thành 1 trong những phương pháp di chuyển an toàn nhất.
Muốn biết thiết bị nho nhỏ này là gì, nó có dính dáng gì đến ngành lập trình, bạn hãy đọc bài viết nhé!
Từ chiếc hộp đen trong máy bay
Ngày xưa, mỗi lần máy bay rơi, các hãng hàng không gần như … bó tay khi điều tra nguyên nhân dựa theo hiện trường vụ tai nạn. Thế là, họ nghĩ ra 1 cách: Tại sao không lưu trữ lại những gì đã xảy ra trong quá trình bay để xem lại cho dễ?
Hộp đen ra đời từ đó! Mỗi máy bay thường được trang bị 2 hộp đen, 1 hộp để ghi âm trong buồng lái, 1 hộp khác để ghi lại những thông số kĩ thuật của máy bay (tốc độ, độ cao v…v). Hai hộp này phải đảm bảo chống ăn mòn, chống sốc, chống nhiệt cực mạnh, để có thể sống sót khi có tai nạn máy bay.

Nhờ những hộp đen này, mỗi khi có tai nạn, các nhà nghiên cứu có thể đọc thông tin và tìm hiểu nguyên nhân tai nạn xảy ra (phi công xử lý sai, động cơ lỗi v…v), từ đó có cách giải quyết phù hợp.
Những hộp đen trong ngành lập trình
So với ngành hàng không, số lượng những vụ “tai nạn” trong ngành lập trình chắc nhiều gấp cả trăm cả ngàn lần. Nhẹ thì chỉ lệch vài cái nút trong giao diện, nặng thì gây chết người, sập luôn hệ thống, thiệt hại cả chục ty đồng!
Do vậy, ngành lập trình cũng có 1, 2 thứ na ná cái hộp đen, giúp anh em lập trình viên tìm hiểu mỗi khi hệ thống bị sập hoặc bị sai:
- Memory Dump/Crash Dump: Khi chương trình/hệ điều hành bị crash, ta sẽ lưu trữ toàn bộ thông tin trong RAM hiện hành xuống 1 file. Sau này, mở file dump này lên, ta có thể điều ra những tác vụ đọc/ghi nào, đụng tới vùng nhớ nào đã gây crash.
- Log: Như mình đã giới thiệu trong bài viết về logging, log cũng giống như hộp đen, ghi lại những trạng thái của server, của chươn trình. Khi hệ thống bị sập, ta cũng kiểm tra log để xem đoạn code này gây lỗi, làm sập hệ thống
Nhờ những “hộp đen” này, ta có thể tìm hiểu và sửa lỗi, giúp chương trình hoạt động tốt hơn. Còn nếu bạn code mà không lưu log, không có monitoring thì… RIP bạn, mỗi lần crash là ói máo nha =)).

Một số điểm cần lưu ý khi dùng log
Tất nhiên, các hộp đen này không phải vạn năng. Hộp đen máy bay chứa rất nhiều thông tin, nhưng nếu máy bay… rơi xuống biển, rớt mất xác thì không thể nào tìm ra hộp đen mà lấy thông tin được (MH370 là 1 ví dụ).
Các chuyên gia đang đề xuất để hộp đen truyền thông tin real-time, nhưng còn lo ngại nhiều vấn đề như riêng tư/bảo mật v..v.
Trong ngành lập trình cũng vậy. Nếu các bạn viết log, tạo crash dump nhưng không access được để xem log thì cũng coi như vô dụng. Một số hệ thống stream log, có thể xem log real-time. Tuy vậy, ta cũng nên cẩn thận về những thông tin lộ ra trong file log (Như Facebook cũng từng lộ hành triệu password trong file log).
Ngoài ra, trong ngành lập trình, số lượng log rất nhiều và khủng. Ta còn phải nghĩ cách lưu trữ log, làm sao đọc và query, tìm thông tin hữu ích từ log. Các bạn có thể xem lại bài viết về ELK Stack, và chuyện nên làm sao khi sập server để tìm hiểu thêm nha.

Tạm kết
Các bạn thấy đấy, bản thân ngành hàng không cũng phải trải qua hơn 60 năm mới làm cho các chuyến bay an toàn như bây giờ.
Làm app cũng vậy, app vừa ra mắt, chức năng mới thêm thế nào cũng sẽ có lỗi, có vấn đề, xui xui thì crash. Chuyện này là hoàn toàn bình thường, không sao cả. Nếu chịu khó cải thiện, sau 1 thời gian thì app/chức năng cũng sẽ ổn định thôi.
À nhắc mới nhớ, nếu hệ thống của các bạn không có log, không có monitoring thì nhớ thêm vào nhé. Kẻo lúc nó sập không có “hộp đen” để tìm hiểu lý do sập đâu nha!
Note vui: Gọi là hộp đen nhưng lại … không có màu đen, mà lại có màu cam cam tươi sáng.
Có khá nhiều lời đồn về vấn đề này, có người nói là do phiên bản đầu tiên ghi âm để trong hộp nhỏ màu đen; có người nó khi máy bay bị cháy, mở ra thì cái hộp …. đen thui nên gọi là hộp đen luôn.

Nguồn:
“nhiều hạn hàng không bị tận 4-5 vụ tai nạn trong 1-2 năm.”, nhiều hãng hàng không mới đúng chứ anh 😀
LikeLike