Đang tải nội dung…
Đang tải nội dung…
Một không gian dành cho những người muốn hiểu backend đến tận cơ chế bên trong.
Fortex trong tuyến truyện này là bối cảnh hư cấu; Tom và Ben là nhân vật. Những phép thử kỹ thuật có code, số đo và bằng chứng riêng. Một cảnh kể chuyện không phải lời khẳng định đã có sự cố production như vậy.
Ngày đầu vào Fortex, Ben muốn được giao một việc có thể làm xong ngay. Cậu học framework nhanh, đọc code nhanh, và thích cảm giác biến một ticket thành một pull request trước khi hết buổi.
Tom nhận review phần backend của cậu. Ben chuẩn bị tinh thần nghe một danh sách lỗi. Nhưng Tom đọc hết đoạn code, hỏi cậu muốn giải quyết điều gì, rồi mới kéo ghế sang bên cạnh.
“Cho anh nghe vì sao em chọn cách này.”
Ben nói rất nhanh. Lập luận của cậu có lý: xóa dữ liệu thì file phải nhỏ đi; có index thì query nên nhanh hơn; request timeout thì gửi lại. Những ý ấy không ngớ ngẩn. Chúng chỉ đang thiếu một điều kiện, một người gọi đồng thời, hoặc một khoảng hở giữa hai lần commit.
Tom không có sẵn mọi đáp án. Anh quen nhìn thấy rủi ro, nhưng kinh nghiệm đôi khi cũng khiến anh kết luận sớm. Khi số đo không ủng hộ dự đoán, anh sẽ sửa kết luận trước mặt Ben. Điều anh muốn truyền lại là cách tìm ra vì sao, kể cả khi người cần đổi ý là mình.
Fortex trong câu chuyện xây các dịch vụ phục vụ bán hàng và vận hành cho đối tác. Một dịch vụ cũ dùng MySQL; những chức năng mới trong chặng này dùng PostgreSQL và Redis. Mỗi bài ghi rõ engine, phiên bản và hệ thống nào thực sự có trong lab. Dùng Redis Streams để thử outbox không đồng nghĩa đã thử Kafka.
Các tuyến kỹ thuật vẫn có thể đọc riêng. Nếu muốn theo sự thay đổi của Ben, đi theo thứ tự này:
Trang tất cả bài viết vẫn sắp theo ngày xuất bản mới nhất trước. Thứ tự chương ở đây là thứ tự câu chuyện; đổi giọng văn không đổi ngày xuất bản cũ. Mỗi chương có đường dẫn trước/sau và bản tiếng Anh tương ứng, chọn ở header.
Tom và Ben đưa một giả thuyết vào môi trường Docker dùng một lần. Họ giữ nhánh sai, chạy nhánh thay thế, kiểm tra dữ liệu cuối cùng rồi mới bàn chọn phương án nào. Bạn có thể tải source hoặc dùng phần Docker Lab trong bài để chạy lại.
Số đo trong bảng và biểu đồ thuộc lần chạy được dẫn bằng report và raw log. Source commit, digest và assertion giúp đối chiếu thí nghiệm. Nhãn Verified nói về bằng chứng lab đã pass trong phạm vi đó; nó không biến mọi đoạn hội thoại hay mọi khuyến nghị production thành kết quả thực nghiệm.
Có lab đo tính đúng chứ không đo tốc độ. Có lab dùng failpoint thay vì làm mạng đứt thật. Các giới hạn ấy được nói ngay trong bài, để bạn biết điều gì đã được kiểm chứng và điều gì còn phải thử trên workload của mình. Tài liệu gốc nằm cạnh lập luận liên quan; bài nào dùng lại kiến thức cũ sẽ dẫn về bài đó.
Ben sẽ không trở thành người nói câu nào cũng đúng sau một chương. Cậu vẫn nhanh, vẫn thích lời giải gọn. Thay đổi nằm ở những câu hỏi xuất hiện trước khi cậu bấm chạy: mình đang giả định gì, dữ liệu nào phản bác được, và nếu làm vậy thì ai phải trả chi phí?
Đến một lúc, Tom sẽ bớt cầm bút. Ben sẽ là người vẽ nhánh lỗi, yêu cầu kiểm tra lại và giải thích quyết định với nhóm. Bạn đi cùng họ để hiểu hệ thống, và cũng để nhìn thấy một kỹ sư học cách tin vào lập luận của mình mà không ngừng kiểm chứng nó.
Bắt đầu từ ticket dọn dữ liệu mà Ben muốn đóng sớm.
Môi trường lab cho bài viết này đang được xây dựng. Script tái hiện và kết quả đo lường sẽ sớm được cập nhật.