Tai nạn nghề nghiệp liên quan Drupal 8 đang vận hành website này

Submitted by superthin on 02/12/2017 - 16:05:38
Khóc ròng hu hu hu

Trong cuộc sống thường ngày lẫn trong mọi hoạt động khác đều có lúc khiến cho người nào đó trong chúng ta ở vào tình trạng "khóc ròng". Vọc những thứ về kỹ thuật nói chung, máy tính (mạng mẽo, ứng dụng, phần mềm,...) nói riêng đều có nhiều lúc khiến "vọc sỹ" lúc nào đó sẽ tự cười cợt bản thân mình như một tên đại ngốc. Bài viết này xin kể một cái đại ngốc như vậy.

Bối cảnh để có bài viết này

Đó là vào ngày 26/11/2017 vừa rồi, Thin đã làm một cuộc chuyển nhà cho website này (từ đây trở đi Thin sẽ gọi từ Web viết hoa chữ W để chỉ cái blog này, cũng là cái website superthinlabs.com) sang một nhà cung cấp dịch vụ web hosting mới. Quá trình chuyển nhà được Thin tổng kết vào một bài viết với những cảm xúc dài dòng.

Vào lúc đó, mọi thứ dường như "tạm ổn" để Thin có thể tin rằng từ nay mình có thể "ăn ngon, ngủ kỹ" vì không phải lo nghĩ nhiều về chuyện trang web bị chết bất đắc kỳ tử hoặc những thứ vớ vẩn nào khác khiến nó loạng choạng như say rượu.

Ổn mà không ổn

Thin vốn là một kẻ lúc còn ở tuổi vị thành niên đã đam mê tốc độ, đụng đến cái gì có tốc độ là thích, từ việc chạy đua với thú cưng, cho đến việc đua xe đạp với bạn học cùng lớp, cùng trường. Sau này được vọc đến máy tính, cũng thích máy tính có tốc độ thật nhanh, có khi nhanh cũng chẳng để làm gì, nhưng cứ phải có gì đó gọi là nhanh mới thích.

Chính cái sự đam mê tốc độ một cách dại dột, sau khi Web chạy ổn Thin chỉnh chọc để gọi "tối ưu hóa hệ thống" mục đích thỏa cái đam mê tốc độ trước tiên, sau là  giúp cho trang web nạp trong vòng vài giây bớt chọc tức bạn đọc vào đọc bài.

Dù đã hết sức cẩn thận theo kiểu chỉnh chọc gì đều được ghi lại các bước vào một file như viết nhật ký, mọi câu lệnh đều được chép lại kỹ lưỡng, những chỗ nào cần sao lưu dự phòng đều được Thin thực hiện,... một khi có trục trặc gì xảy ra, lần ngược lại các câu lệnh, có thể nói là "Undo" được về trạng thái trước đó.

Đời không là mơ

Vào một lúc nào đó sau cái hồi tối ưu hóa kia, Thin muốn viết một bài viết để thể hiện cảm xúc về hai vấn đề gây ồn ào dư luận. Vấn đề thứ nhất liên quan đến một đề xuất liên quan đến thay đổi tiếng Việt, vấn đề thứ hai liên quan đến giao thông vận tải, cụ thể liên quan đến trạm BOT giao thông được đặt tại thị xã Cai Lậy, tỉnh Tiền Giang. Khi viết bài xong, Thin bấm nút để xuất bản bài viết đã xảy ra báo lỗi "access denied", bài viết không thể xuất bản, trình duyệt reload lại và mất hết bài viết mà Thin đã ngồi rị mọ hơn hai giờ đồng hồ, thật là một cú choáng váng mờ mắt mặc dù không bị ăn cú đấm nào.

Lỗi 403 khiến bạn điên đầu

Thế là công cuộc tìm lại vì sao gây ra nông nỗi bắt đầu. Thin cứ nghĩ việc đó là đơn giản, chắc chỉ mất chừng mười phút là xong, nhưng hóa ra mất quá nhiều thời gian, Thin lần lại từng bước cho đến bước đầu tiên cũng không thể phục hồi lại trạng thái ban đầu.

Thế này là thế nào?

Loay hoay kiểu gì đi nữa, cái tên ngáo ộp HTTP 403 Forbidden vẫn ngạo nghễ trêu Thin như một bóng ma. Thin làm gì có kinh nghiệm nào trong việc xử lý cái này, cho nên việc đầu tiên là tìm đọc tài liệu xem liệu cái gì liên quan đến nó. Mất vài ngày lặn ngụp trong những bài viết đó để tìm nguyên nhân gốc rễ vấn đề, gõ lệnh để thử tới thử lui,... mất ba ngày vẫn không giải quyết được vấn đề.

Thin hết cách nên đã tìm đến cách mà người ta thường áp dụng trong khoa học hình sự đó là dựng lại hiện trường để điều tra. Một website bản sao y chang website này được Thin tái tạo lại trong môi trường giả lập để xem chuyện gì xảy ra. Một số công cụ được cài thêm vào server ảo để có thể quan sát trực quan hơn các biểu hiện của hệ thống so với những dòng lệnh với chữ bé xíu trên màn hình đen của môi trường vận hành thực tế của Web.

Chuyện gì đã xảy ra?

Khi quan sát và xem nhật ký (các file .log) trên hệ thống giả lập, Thin nhận thấy HTTP 403 Forbidden không xảy ra trên mọi trang, chủ yếu tập trung vào những câu truy vấn được thực hiện bởi JavaScript mà người ta hay gọi là Ajax. Kiểm tra lại việc phân quyền trên các thư mục, mọi thứ xem ra đều hợp lý, các user truy cập thư mục cũng được kiểm tra kỹ. Hoàn toàn không phát hiện điểm nào đáng ngờ.

Cuối cùng, hết cách, Thin đành phải sử dụng một cách là cài mới hoàn toàn Drupal 8.4.2, sau đó thực hiện các việc "di dời" đọc được trên mạng: trích xuất nội dung, những cấu hình liên quan đến module được cài thêm, file hình ảnh đính kèm bài viết,... sau đó chạy thử cho đến khi mọi thứ ổn rồi mới commit vào server hosting để phục hồi site.

Kết luận

Mặc dù việc gỡ mớ bòng bong để cho trang web chạy lại không được xem là lập trình, nhưng nó cũng có phần nào tương tự, cũng phải ngồi mà đọc những file nhật ký, file cấu hình do những lập trình viên tạo ra,... cho nên, cũng có liên đới khá gần với lập trình.

Lập trình giống sex

Hình ảnh minh họa trên thay lời kết luận.