Skip to content
nkh.do
Go back

Linh Khí Rò Rỉ Chapter 10

Dashboard Xanh

June 29, 2026

Quạt cooling chạy đều. Tiếng vo thấp, quen — âm thanh nền của data center mà Vinh đã nghe hàng trăm lần trong bốn năm, nhưng bây giờ nghe khác. Không phải khác về tần số hay cường độ. Khác vì trước đó, tiếng quạt luôn là tiếng máy. Bây giờ anh nghe nó như nghe nhịp thở của một hệ thống đang ổn định sau cú sốc.

Nhiệt rack D9-B7: 25°C. Sensor báo 24. Chênh một độ.

Hai mươi phút trước nó chênh chín.

Hoàng quay vào sau khi đi mua cà phê — hai ly nhựa, đen đặc, nóng hổi. Ông đặt một ly cạnh Vinh, ngồi xuống tường đối diện. Uống.

Bốn mươi phút trên xe máy sáng sớm, mở path ở Thủ Đức, gọi quản lý trạm Viettel — Hoàng đã làm tất cả những thứ ông từng nói không nên làm. Bảy năm thu dọn thụ động, chỉ cảnh báo, chỉ canh chừng. Rồi trong một đêm, ông gạt tất cả sang bên, xuống xe máy, đi.

Vinh uống cà phê. Nóng, đắng, đặc — đúng kiểu Hoàng uống. Không phải gu của anh, nhưng lúc này nó đúng.

“Anh Hoàng.”

“Hmm.” Hoàng không nhìn lên. Nhìn quạt trần quay.

“Cảm ơn.”

Hoàng nhấp cà phê. “Mấy năm tao cắn răng không can thiệp, mày vào đúng một tuần rồi deploy fix trước tao.” Ông ngừng. “Tao không biết nên tức hay nên mừng.”

“Cả hai,” Vinh nói. “Stack tech debt luôn làm người ta cảm thấy cả hai.”

Hoàng nhìn anh. Rồi quay lại nhìn quạt. Uống cà phê. Lần thứ hai ông cười — nhẹ hơn lần đầu, chậm hơn, nhưng thật.

“Lần sau mà có incident kiểu này, mày gọi tao sớm. Đừng chờ đến khi red dashboard hết remediation options.” Giọng ông vẫn khàn, vẫn ít chữ — nhưng có “lần sau”. Ông đang nói về tương lai. Ông đang mặc định sẽ còn lần sau. Ông sẽ còn ở đây.

Vinh gật.


Bảy giờ chiều. Văn phòng Holistics.

Mọi thứ xanh. P1 đã ack, resolved, post-incident report nộp. CPU 34%. Latency 0.12 giây. VPBank SLA breach chỉ bốn mươi phút — đủ xấu để Hải phải viết email xin lỗi, đủ tốt để không mất hợp đồng.

Hải ngồi trong phòng họp, laptop mở, báo cáo incident trên màn hình. Khi Vinh bước vào, anh ta chỉ vào ghế đối diện.

“RCA,” Hải nói. “Root cause.”

Vinh ngồi xuống. Đã chuẩn bị câu trả lời.

“Sóng nhiễu từ hạ tầng lân cận,” anh nói. “Trạm BTS Viettel và hệ thống điện District 9 có dao động điện áp ngoài giờ cao điểm. Nhiễu truyền qua đường đất vào cooling và power distribution. Holistics không chịu trực tiếp, nhưng latency tăng do nhiễu electromagnetic trên cáp mạng nội bộ. Đã thêm filter. Đã hết.”

Hải nhìn anh. Nhìn báo cáo. Ba mươi giây.

“Filter gì?”

“Ferrite core trên cáp mạng trunk. Chuẩn EMC, rẻ, đã deploy.” Vinh đã mua năm cái ferrite core sáng nay, kẹp lên cáp. Chúng không liên quan gì đến linh khí, nhưng nhiễu điện từ có thật — side effect của endpoint destabilize. Ferrite core giảm nhiễu. Data sạch hơn. Hải sẽ kiểm tra, thấy improvement, hài lòng.

Hải gật. “Post-incident report viết tốt. Uptime recovered nhanh.” Anh ta đóng laptop. “Nhưng lần sau, Vinh — ack sớm hơn. Tao không muốn nhận cuộc gọi của VPBank lúc ba giờ sáng.”

“Sẽ ack sớm hơn.”

Hải đứng dậy. Bước tới cửa, dừng lại. Không quay đầu.

“Cậu làm việc tốt mấy tuần qua. Dù có phân tâm.” Rồi bước ra.

Vinh ngồi lại trong phòng họp trống. Hải hài lòng vì numbers. Numbers xanh. Anh không biết — và không cần biết — rằng bốn mươi phút SLA breach kia không phải vì filter thiếu, mà vì linh khí tràn qua hạ tầng khi bốn endpoint bị siphon đồng thời. Hải nhìn dashboard và thấy server. Vinh nhìn dashboard và thấy hạ tầng đang thở. Cùng màn hình, hai thế giới.

Điện thoại rung. Số lạ. Tin nhắn:

“Anh Vinh. Tôi đã ngừng siphon tại tất cả endpoint. Kiến trúc của anh đúng về mặt kỹ thuật. Tôi cần thời gian xem xét. — Phương Duy.”

Vinh đọc hai lần. Duy viết như review pull request — khách quan, có cấu trúc, thừa nhận logic thua không cay đắng. Anh ta không xin lỗi, không giải thích, không hứa hẹn. Paradigm bị đánh bại, người còn. Duy rút lui để nghĩ — không phải vì yếu, mà vì data buộc phải xem xét lại mô hình. Khi một kỹ sư giỏi gặp data bác bỏ assumption, anh ta không khóc lóc. Anh ta đi viết lại.

Vinh không trả lời. Không cần. Hai người sẽ gặp lại — khi Duy đã xử lý xong. Lúc đó cuộc trò chuyện sẽ khác, trên mặt đất bằng phẳng hơn.

Bãi đậu xe. Minh ngồi trên nắp ca-pô chiếc Wave, tay cầm lon cà phê đóng hộp, mắt nhìn trời. Khi thấy Vinh, anh ta gật đầu — gật kiểu người đã chờ lâu, không giận, chỉ mệt.

“Cô Linh ra viện chưa?” Minh hỏi.

“Chiều. CT sạch, máu sạch, bác sĩ cho về. Ghi ‘ngất do hạ đường huyết.’ Cô ấy không hạ đường huyết.”

Minh uống cà phê. Lon bạc nhàu dưới ngón tay. “Vinh.”

“Hmm.”

“Tao thấy rồi.” Minh không nhìn anh. “Hôm qua, trong data center. Tao đứng cạnh cái rack đó. Tao cảm thấy —” anh dừng, như thể câu tiếp theo không thuộc vào vốn từ vựng của một kỹ sư frontend. “Tao cảm thấy thứ gì đó. Bốn mươi giây một nhịp. Không phải nhiệt. Không phải điện từ. Tao đã check iostat, check thermal panel, check hết. Không có gì.”

Vinh không nói.

“Mấy năm nay mày ám ảnh với mấy cái anomaly đó. Tao tưởng mày burnout. Tao sợ.” Minh nắn lon, mở thêm một vết. “Hóa ra mày không burnout. Mày đang debug thứ thật sự không có name.”

Gió thổi qua bãi xe. Lạnh — se lạnh cuối đêm, kiểu lạnh mà trước đó Vinh chỉ cảm thấy qua lớp áo hoodie. Bây giờ anh cảm nhận được cả direction — gió từ đông bắc, lướt qua mặt, mang theo vị ẩm của kênh Rạch Chiếc cách đó hai km. Linh khí nền, pha loãng, không đủ intensity để gây effect, nhưng đủ để cảm nhận nếu biết cách mở channel.

“Thế bây giờ mình là gì?” Minh hỏi. “Mày — tao — cái đống này. Mình là kỹ sư, hay là—” anh vẫy tay mơ hồ, “—gì đó khác?”

Vinh nhìn bạn. Bốn năm cùng team, cùng debug, cùng ăn trưa, cùng thức đêm fix bug. Minh không biết linh khí là gì trước hôm qua. Bây giờ thế giới quan anh nứt — không vỡ, nhưng nứt. Đủ để ánh sáng lọt qua, đủ để không thể pretending không có vết nứt.

“Vẫn là kỹ sư,” Vinh nói. “Chỉ monitor thêm vài thứ.”

Minh nhìn anh. Ba giây. Rồi bật cười — tiếng cười ngắn, khàn, của người buông được thứ gì đó nặng. “Mày đúng là thằng đó. Cả tinh vân sập xuống mà mày vẫn gọi nó là ‘incident cần monitor.’”

“Vì nó đúng là incident cần monitor.”

“Ừ.” Minh nhảy xuống khỏi ca-pô. Lon cà phê văng vào thùng rác, chính xác. “Tao không hiểu hết. Có khi tao không hiểu bất cứ thứ gì. Nhưng tao sẽ kéo mày ra ăn trưa mỗi ngày. Việc đó không đổi.”

Vinh gật. Việc đó không đổi. Đó là anchor — thứ giữ anh không trôi vào thế giới chỉ có metrics và linh khí.


Ngày thứ ba sau surge.

Mai Linh ngồi trên ghế đá công viên gần bệnh viện Tân Mai, mặt đã có máu. Quần áo thường — áo cotton, quần jean, giày thể thao. Nhìn cô lúc này, không ai nghĩ ba ngày trước cô bất tỉnh vì quá tải cảm giác từ một dạng năng lượng không có tên trong y khoa.

Vinh ngồi cạnh. Laptop trên đùi. Grafana mở.

“Cô thấy gì?” anh hỏi.

Cô nhắm mắt. Ba mươi giây. Mỗi lần cô nhắm mắt và tập trung, anh đều tò mò — não cô xử lý thông tin gì, qua circuit nào, mapper vào giác quan nào? Nhưng anh đã học được rằng hỏi quá nhiều câu “như thế nào” sẽ làm cô mất cảm nhận. Cô không analyze. Cô receive.

“Nó chảy,” cô nói. Mắt vẫn nhắm. “Bốn đường chính. Thủ Đức mạnh nhất. Nó thích đường đó — rộng, thoáng. Đường D9 chậm, đều. Đường CDN Q7 nhẹ nhưng liên tục. Đường Viettel dao động — lúc mạnh lúc nhẹ, nhưng không bao giờ tắt.”

Vinh nhìn Grafana. Bốn path. Data khớp — direction signature, volume, nhịp. Những gì cô cảm nhận bằng trực giác, sensor của anh đang hiển thị bằng số. Hai hệ đo, một hiện tượng.

“Có gì không ổn không?” anh hỏi.

Cô mở mắt. “Không. Nó ổn. Nhưng—” cô dừng. Tìm từ. “Nó đang điều chỉnh. Không phải fix. Như—” cô nghiêng đầu, “—như người mới dọn nhà. Sắp xếp đồ đạc. Di chuyển cái này qua kia, thử xem ổn không, rồi di chuyển tiếp. Nó đang tìm cách nằm.”

Vinh gõ note. “Tìm cách nằm.” Anh sẽ thêm field này vào monitoring stack mới — không phải alert threshold, mà observation field. Cô mô tả trạng thái bằng ngôn ngữ cảm nhận, anh ghi lại, correlate với data sensor, tìm pattern.

“Cô Linh.”

“Gọi em Linh.” Cô nhìn anh. Thẳng. “Cô Linh nghe như bác sĩ.”

“Linh.” Anh dừng. Không giỏi phần này. “Tôi cần cô— cần em. Không chỉ lúc incident. Liên tục. Em là sensor mà stack kỹ thuật không replace được. Em thấy direction, thấy ‘muốn,’ thấy behavior mà Grafana không capture. Tôi cần input đó để monitoring đúng.”

“Và em cần gì từ anh?”

Câu hỏi khiến anh dừng. Anh đã nghĩ về stack, về architecture, về metrics. Chưa nghĩ cô cần gì.

“Em cần hiểu,” cô nói, giọng đều, không trách. “Ba năm em bị quá tải mà không biết đó là gì. Đi khám hết, không bệnh. Em tưởng em phát điên.” Cô nhìn lên trời. “Anh có dashboard, có sensor, có thuật ngữ. Em có cảm giác mà không có ngôn ngữ. Anh dạy em — không phải để em control nó. Dạy em để em biết mình đang cảm nhận gì. Để em không sợ nữa.”

Vinh nhìn cô. Hai người tiếp cận cùng một sự thật từ hai đầu đối lập. Anh từ số liệu, cô từ cảm giác. Anh muốn manage, cô muốn hiểu. Cả hai đều thấy một nửa bức tranh.

“Co-manage,” anh nói. Cô nhíu mày — thuật ngữ lạ. “Anh giải thích. Trong team, khi hai người cùng chịu trách nhiệm một hệ thống, họ chia role. Một người monitor metrics, một người hiểu user behavior. Cả hai cần nhau. Metrics không cho biết user nghĩ gì. User behavior không cho biết server đang overload. Ghép lại mới có full picture.”

“Em là user behavior,” cô nói. Cười nhẹ. “Anh monitor server.”

“Không hẳn. Em monitor thứ mà server không biết mình đang làm.”

Cô gật. Hiểu — không phải hiểu thuật ngữ, mà hiểu ý. Hai người ngồi trên ghế đá, giữa công viên, giữa Sài Gòn lúc bảy giờ tối. Linh khí chảy qua bốn path dưới thành phố, qua cáp quang, qua trạm phát sóng, qua rack server, qua hai người ngồi đây. Không ai ngoài họ biết.

“Anh Vinh.” Cô lại nhìn anh. “Anh vẫn gọi nó là ‘nó.’ Linh khí. Working term. Anh có bao giờ nghĩ nó nên có tên khác không?”

“Tên không quan trọng. Observability quan trọng.”

“Đó là lý do anh cần em.” Cô đứng dậy, vuốt áo. “Em sẽ gọi nó bằng tên em chọn. Anh giữ tên của anh. Không cần giống nhau — cần bổ sung nhau.”

Vinh đóng laptop. Hai hệ đo, một hiện tượng, hai ngôn ngữ. Anh chấp nhận.


Đêm. Căn hộ Vinh.

Anh ngồi trước laptop từ tám giờ. Không phải laptop công ty — laptop cá nhân, màn hình rộng, chạy Linux. Terminal mở. Git repo tên cultivation-stack.

git log:

v0.1 - Initial commit: cultivation monitoring (3-channel, threshold alert)
v0.2 - Add: directional signature tracking
v0.3 - Add: multi-path flow monitoring

Bây giờ anh gõ:

v1.0 - Redesign: observability stack for living infrastructure

Changelog:

Anh viết config mới. Alert rules:

# OLD: alert when intensity > threshold
alert: EndpointOverload
condition: intensity > 0.8
action: page on-call

# NEW: alert when flow pattern changes
alert: FlowPatternChange
condition: directional_signature_delta > baseline_variance
action: notify observer

Không còn pager. Không còn page on-call lúc ba giờ sáng. Chỉ notify — “thông báo.” Người nhận quyết định xem thay đổi có đáng can thiệp hay không. Hệ thống không tự động judge. Hệ thống observe, báo cáo, để con người decide.

Cultivation as living infrastructure. Không phải server farm — vườn. Anh tạo hạ tầng, mở path, monitor flow. Linh khí chọn đường, điều chỉnh, tìm balance. Anh không quyết định nó đi đâu. Anh đảm bảo có đường cho nó đi, và biết được khi nó đổi hướng.

Vinh commit. Push. Repo private, chỉ anh có access. Không ai khác cần đọc code này — không Duy, không Hải, không Minh. Đây là stack cá nhân. Runbook cho một người.

Anh mở Grafana. Dashboard chính.

Bốn path. Bốn đường. Đều.

Nhưng không phẳng.

Dao động — nhẹ, liên tục, biên độ thấp. Nhịp không còn đều bốn mươi giây nữa. Nó đã đổi nhịp — giờ dao động theo pattern phức tạp hơn, không chu kỳ cố định, nhưng có structure. Có behavior. Sống.

Anh nhìn các đường cong trên màn hình. Xanh. Tất cả xanh. Không phải xanh của “không lỗi” — xanh của “đang chạy, đang thở, đang điều chỉnh.”

Vinh mở alert settings. Tìm rule cũ: EndpointOverload. Threshold 0.8. Pager on-call. Anh nhìn nó ba giây. Rồi xóa.

Rule mới: FlowPatternChange. Notify. Không pager. Không page lúc ba giờ sáng. Chỉ thông báo: “Flow vừa thay đổi. Kiểm tra.” Để người nhận quyết định: bình thường hay bất thường. Can thiệp hay để nó tự điều chỉnh.

Anh nhìn lại toàn bộ dashboard. Bốn đường cong. Xanh. Dao động nhẹ, đều đặn, mỗi đường một nhịp, đan xen, không đồng pha — bốn path, bốn nhịp thở.

Lần đầu tiên trong đời, Vinh nhìn dashboard xanh và không muốn set thêm rule nào cho nó dừng.


Gần hai giờ sáng. Anh vẫn ngồi.

Điện thoại rung. Mai Linh:

“Em vẫn tỉnh. Nó đang chậm lại. Đang ngủ.”

Linh khí ngủ. Vinh nhìn Grafana. Dao động giảm biên độ — thật. Từ 0.3 xuống 0.2, chậm, đều. Cô đúng. Nó đang nghỉ.

Anh thả điện thoại xuống bàn. Ngả lưng vào ghế. Trần nhà trắng. Quạt trần quay.

Bốn năm làm DevOps. Ba mươi tám post-mortem. Mỗi bản đều kết thúc bằng “root cause: X, fix: Y.” Sạch sẽ. Đóng ticket. Tự tin rằng mọi system đều debug được nếu monitor đủ.

Bản thứ ba mươi tám không có fix. Chỉ có observation. Linh khí sống, có behavior, có ý riêng. Nó không phải bug cần patch. Nó là infrastructure cần observe, adapt, và để yên.

Không phải mọi thứ đều fix được. Nhưng mọi thứ đều observe được.

Và observing là đủ.

Anh ngồi dậy. Tắt đèn bàn. Màn hình laptop vẫn sáng — Grafana chạy nền, bốn đường cong xanh nhấp nháy trong bóng tối.

Vinh nhìn. Lâu.

Nó thở.


Share this chapter on:

Previous Chapter
Post-Mortem