Ghi chép Kỹ thuật & Kiến trúc Hệ thống

Daily articles to build knowledge and experience

Kỹ thuật và Phân tích Dữ liệu

2026-09-29 • 6 phút đọc

Data Thực Chiến #01: Kiến trúc tổng thể - "Bản thiết kế" giải cứu hệ thống đối soát tài chính

Có bao giờ bạn thức dậy lúc 8 giờ sáng, nhâm nhi ly cà phê, mở log server lên kiểm tra và chết lặng khi thấy dòng chữ Killed: 9 hoặc Out of Memory (OOM) đỏ chót? Đoạn cronjob đối soát dữ liệu chạy từ 10 giờ đêm qua đã gục ngã ở phút thứ 99 chỉ vì... hết RAM.

Kiến trúc Hệ thống

2026-09-28 • 5 phút đọc

Từ 100 đến 1000 CCU #02: Tối ưu Hệ thống Báo cáo hiệu quả quảng cáo đạt 1000 CCU: Bước Chuyển Sang Data Architecture

Khi lượng truy cập tăng gấp 10 lần (1000 CCU) và khối lượng dữ liệu phình to thành hàng chục GB/TB, kiến trúc nguyên khối sẽ hoàn toàn sụp đổ. Bài viết này trình bày giải pháp chuyển dịch sang Kiến trúc Dữ liệu Hiện đại (Modern Data Architecture). Cốt lõi của mô hình này là việc phân tách hoàn toàn Database nghiệp vụ (PostgreSQL) và Data Warehouse (BigQuery), áp dụng Cache (Redis) làm khiên chắn bảo vệ hệ thống khỏi các cơn bão truy vấn, và xây dựng Data Pipeline chuyên nghiệp.

Tech Radar và Góc nhìn

2026-09-25 • 12 phút đọc

Thiết Kế Hệ Thống Phân Tán #08.2: Quản trị hệ thống phân tán - Quản trị hệ thống phân tán - Khả năng Quan sát & Tự phục hồi

Tiếp nối bức tranh về tài chính và rủi ro ở phần trước, bài viết này sẽ giải quyết bài toán sống còn cuối cùng của kiến trúc hàng ngang: Khả năng Quan sát (Observability) và Tự động Phục hồi (Self-Healing).

Tech Radar và Góc nhìn

2026-09-25 • 12 phút đọc

Thiết Kế Hệ Thống Phân Tán #08.1: Quản trị hệ thống phân tán - Giải bài toán Chi phí (FinOps) và Rủi ro tại TicketNow

Khi thiết kế và xây dựng thành công một hệ thống kiến trúc hàng ngang ở các bài trước, bạn đã trao cho TicketNow sức mạnh vô hạn để đương đầu với mọi lưu lượng truy cập từ hàng triệu fan hâm mộ. Tuy nhiên, trong thế giới điện toán đám mây (Cloud Computing) và hệ thống phân tán, sức mạnh vô hạn luôn đi kèm với hóa đơn vô hạn và những rủi ro hỗn loạn phi tuyến tính.

Tech Radar và Góc nhìn

2026-09-25 • 7 phút đọc

Review hành trình 5 năm làm nghề: Thăng trầm và sự đánh đổi đam mê đi khắp Việt Nam

Năm năm trong ngành phần mềm trôi qua tựa như một cái chớp mắt, nhưng nhìn lại, nó đủ dài để định hình lại hoàn toàn một con người - từ cách tư duy, lối sống cho đến những vết sẹo nghề nghiệp đầu đời.

Kỹ thuật lập trình

2026-09-24 • 5 phút đọc

Design Pattern #16.3: Tổng hợp Series - Đánh giá Kiến trúc và Lời kết

Phân tích mặt trái của việc sử dụng Design Patterns (Over-engineering) và lời khuyên thực chiến khi áp dụng vào dự án thực tế.

DevOps, Cloud & Công cụ

2026-09-23 • 12 phút đọc

Thiết Kế Hệ Thống Phân Tán #07: Triển khai & Tự động hoá - Khi hệ thống biến thành Code (IaC)

Trong kiến trúc hệ thống, nếu bạn đã thiết kế thành công Tầng Biên, Tầng Ứng dụng phi trạng thái, Tầng Dữ liệu phân tán và Tầng Bất đồng bộ, bạn mới chỉ đi được một nửa chặng đường. Nửa còn lại quyết định hệ thống có "sống sót" trong thực tế hay không chính là Triển khai & Tự động hoá (Deployment & Automation).

DevOps, Cloud & Công cụ

2026-09-23 • 4 phút đọc

Chiến Lược Triển Khai Blue-Green Deployment

Hướng dẫn chi tiết về chiến lược Blue-Green Deployment trong CI/CD. Trả lời câu hỏi khi nào nên áp dụng, nguyên lý hoạt động, từng bước thiết lập và cách khắc phục sự cố downtime.

Kỹ thuật và Phân tích Dữ liệu

2026-09-22 • 5 phút đọc

Thiết kế CSDL #05: So sánh 1NF đến BCNF và Bài toán Khử chuẩn hóa (Denormalization)

Chặng đường từ 1NF (1970) đến BCNF (1974) đánh dấu thời kỳ hoàng kim của mô hình dữ liệu quan hệ. Về sau, Ronald Fagin bổ sung 4NF (1977) xử lý phụ thuộc đa trị và 5NF. Tuy nhiên, trong 99% các dự án phần mềm thực tế, 3NF/BCNF được xem là "điểm dừng ngọt ngào" (sweet spot). Việc theo đuổi 4NF hay 5NF thường khiến cấu trúc quá phân mảnh và làm giảm hiệu năng hệ thống một cách không cần thiết.

Kiến trúc Hệ thống

2026-09-21 • 9 phút đọc

Thiết Kế Hệ Thống Phân Tán #06: Tầng Xử lý Bất đồng bộ (Async Tier) - 'Hệ tuần hoàn' của TicketNow

Trong kiến trúc hệ thống phân tán, nếu Tầng Giao tiếp là "tấm khiên", Tầng Ứng dụng là "khối óc", Tầng Dữ liệu là "trí nhớ", thì Tầng Xử lý Bất đồng bộ (Asynchronous Processing Layer) chính là "hệ thống giảm xóc" và "hệ tuần hoàn".

Kiến trúc Hệ thống

2026-09-21 • 3 phút đọc

Từ 100 đến 1000 CCU #01: Thiết kế Hệ thống Báo cáo hiệu quả quảng cáo với 100 CCU

Bài viết này phác thảo kiến trúc nguyên khối (Monolithic) kết hợp cơ sở dữ liệu quan hệ truyền thống để giải quyết bài toán hiển thị báo cáo quảng cáo cho 100 user truy cập đồng thời. Trọng tâm của thiết kế này là tối ưu hóa thời gian ra mắt (time-to-market) và chi phí vận hành thấp nhất, chấp nhận những giới hạn về khả năng mở rộng trong tương lai để đổi lấy sự tinh gọn trong giai đoạn đầu của dự án.

Tech Radar và Góc nhìn

2026-09-18 • 7 phút đọc

Bức Tranh Thị Trường Lập Trình Viên 2026: Sự Đào Thải, Nghịch Lý Tuyển Dụng Và Kỷ Nguyên Product Engineer

Phân tích chuyên sâu về thị trường lao động mảng Software Engineer dưới góc nhìn cá nhân: Làn sóng lay-off, tác động của AI, nghịch lý tuyển dụng và cách định vị bản thân trong thời đại mới.

Kỹ thuật lập trình

2026-09-17 • 6 phút đọc

Design Pattern #16.2: Tổng hợp Series - Luồng phối hợp thực thi Checkout

Phân tích chi tiết một request Checkout sẽ đi qua các Design Patterns như thế nào theo thời gian thực (Runtime).

Kỹ thuật lập trình

2026-09-17 • 6 phút đọc

Làm chủ CSS Sticky trong CSS Grid: Khắc phục Lỗi Trôi Filter Bar & Giới hạn Chiều cao Container khi Cuộn Danh sách Sâu

Phân tích cơ chế Containing Block của CSS Sticky, giải quyết triệt để hiện tượng trôi thanh công cụ lọc khi cuộn qua hàng chục bài viết và tối ưu hóa hiệu năng render 60fps trong React.

DevOps, Cloud & Công cụ

2026-09-16 • 8 phút đọc

Làm chủ Mermaid.js: Hướng dẫn Toàn diện từ Cú pháp tới Trực quan hóa Kiến trúc & Tài liệu Kỹ thuật (Diagrams as Code)

Cẩm nang thực chiến về triết lý Diagrams as Code (DaC) với Mermaid.js: Khai phá toàn bộ cú pháp Flowchart, Sequence, Git Graph, Class, State và quy trình tự động hóa tài liệu kiến trúc trong CI/CD.

Kỹ thuật và Phân tích Dữ liệu

2026-09-15 • 10 phút đọc

Thiết Kế Hệ Thống Phân Tán #05: Tầng Dữ liệu (Data Tier) - Nghệ thuật chia để trị và Bài toán chống mua trùng vé

Nếu Tầng Ứng dụng (Application Tier) ở Bài 4 được thiết kế theo nguyên tắc "mất trí nhớ" (Stateless), thì toàn bộ áp lực ghi nhớ của hệ thống sẽ dồn cả vào Tầng Dữ liệu (Data Tier).

Kỹ thuật và Phân tích Dữ liệu

2026-09-15 • 5 phút đọc

Thiết kế CSDL #04: Chuẩn BCNF - Khắc phục điểm mù của 3NF

Chuẩn BCNF được đề xuất vào năm 1974 bởi Raymond F. Boyce và Edgar F. Codd. Mặc dù 3NF đã giải quyết được hầu hết các vấn đề về dư thừa dữ liệu, Codd nhận ra rằng 3NF vẫn có một "điểm mù" kỹ thuật đối với các bảng có nhiều khóa ứng viên chồng chéo (overlapping candidate keys). Do đó, BCNF ra đời và thường được giới học thuật gọi vui là chuẩn "3.5NF". Đáng tiếc, Raymond F. Boyce đã qua đời chỉ vài tháng sau khi công bố bài báo này, ở tuổi 26.

Kiến trúc Hệ thống

2026-09-14 • 8 phút đọc

Thiết Kế Hệ Thống Phân Tán #04: Tầng Ứng dụng (Application Tier) - Trái tim 'Phi trạng thái' của TicketNow

Trong kiến trúc hàng ngang, Tầng Ứng dụng (Application Layer) đóng vai trò là "khối óc" xử lý toàn bộ logic nghiệp vụ (business logic) như tính toán giá vé, giữ chỗ, và xác nhận thanh toán. Khác với Tầng Biên (chỉ lo điều hướng) hay Tầng Dữ liệu (phải lưu trữ bền vững), Tầng Ứng dụng là nơi các node (máy chủ/container) sinh ra và chết đi liên tục dựa trên lưu lượng truy cập (Auto-scaling).

Kiến trúc Hệ thống

2026-09-14 • 9 phút đọc

Rời bỏ JSON: Cấu trúc lại hệ thống lưu trữ Blog tĩnh với Markdown và SSG

Hành trình chuyển đổi mô hình lưu trữ bài viết từ file JSON nguyên khối sang hệ thống file Markdown độc lập. Bài viết phân tích bài toán nút thắt hiệu năng (bottleneck) trên môi trường GitHub Pages, thiết kế lại kiến trúc, và những đánh đổi kỹ thuật khi áp dụng tư duy "Build-time" thay cho "Run-time".

Tech Radar và Góc nhìn

2026-09-11 • 12 phút đọc

Toàn cảnh Nghề Data Engineer: Bản đồ Năng lực, Vòng đời Dữ liệu (Data Lifecycle) & Kiến trúc Nền tảng Dữ liệu Hiện đại (Modern Data Stack)

Hướng dẫn toàn diện về nghề Kỹ sư Dữ liệu (Data Engineer): Khám phá vai trò trụ cột trong kỷ nguyên AI, so sánh chi tiết Data Engineer vs Data Scientist vs Backend Engineer, phân tích vòng đời dữ liệu (Ingestion, Storage, Processing, Serving), kiến trúc Modern Data Stack (Lakehouse, Kafka, Spark, dbt, Airflow) và lộ trình phát triển kỹ năng thực chiến.