Cloudflare Workers và D1 Database: Tại sao anh em làm web nhỏ nên tìm hiểu ngay từ bây giờ?

Mở đầu

Hello anh em! Chào mừng anh em đã quay trở lại với Blog Share Tips. Đợt này Hà Nội và mấy tỉnh miền Bắc đang đón đợt gió mùa đông bắc lạnh buốt thịt rồi, thời tiết hai tháng cuối năm tự nhiên ẩm ương làm mình cứ sụt sịt mãi. Sáng dậy trời tối sầm, gió rít qua khe cửa sổ lạnh run người, ôm cốc cà phê nóng ngồi vào bàn gõ phím mà tay cứ cứng đơ lại. Cái thời tiết này anh em nào có gấu thì sướng, rủ nhau đi lượn lờ ăn đồ nướng hay lẩu thì hết sảy, còn mấy thằng coder với blogger tụi mình thì chắc chỉ có chăn ấm đệm êm, ôm cái laptop gõ cộc cộc là chân ái thôi.

Hôm nay mình lại nổi hứng ngoi lên viết bài. Rét thì rét thật đấy nhưng có một thứ dạo này làm mình nóng hừng hực muốn chia sẻ ngay cho anh em. Ai theo dõi blog mình từ cái đợt mình khoe cái tool quản trị Blogspot bằng API chắc cũng nhớ mình có nhắc tới việc viết hơn 1000 dòng code chạy hoàn toàn trên Cloudflare Workers kết hợp với D1 Database đúng không? Thú thật lúc đầu làm để nghịch cho vui, nhưng dùng rồi mới thấy nó nghiện vcl. Nên hôm nay, nhân cái dịp gió rét ngoài kia, anh em mình cùng ngồi lại đây nhâm nhi tách trà nóng, mình sẽ kể cho anh em nghe tại sao những người làm web nhỏ, mấy anh em đang tập tành làm tool hay blog cá nhân phải "múc" ngay hệ sinh thái Cloudflare Workers và D1 ngay từ bây giờ.

Nỗi ám ảnh mang tên "Server" và "Hosting" của những ngày tháng cũ

Anh em làm web chắc chả lạ gì cái cảm giác đi săn lùng hosting giá rẻ, hay hì hục thuê một con VPS lèo tèo 1GB RAM rồi về tự cài AAPanel, Nginx, MySQL các thứ. Nhớ lại mấy năm trước, hồi mình mới tập tành làm web, tiền thì không có nhiều, toàn nhịn ăn sáng để nạp tiền mua mấy cái host cùi bắp share tài nguyên tè le. Cứ hễ blog hay web tool của mình mà có 1 bài đăng lên xu hướng, lượt truy cập tăng đột biến 1 tí là y như rằng... bùm! Lỗi 500, lỗi 502 Bad Gateway đập thẳng vào mặt.

Lúc đấy ức chế lắm, cảm giác bất lực kinh khủng. Mình thức trắng đêm mò mẫm cấu hình lại database, tối ưu query, dùng đủ mọi trick lỏ cache nhưng con server yếu sinh lý vẫn không chịu nổi nhiệt. Chưa kể đến cái cảnh mỗi tháng phải canh me nạp tiền gia hạn, rồi nơm nớp lo sợ bị DDoS, bị scan lỗi bảo mật vớ vẩn. Làm web cá nhân mà mệt mỏi như kiểu đi hầu hạ cái server vậy, thời gian rảnh đâu nữa mà sáng tạo nội dung với viết bài. Đỉnh điểm là đợt năm 2024, cái web lưu trữ data của mình bị chết ổ cứng bên phía nhà cung cấp, mất sạch dữ liệu mà không có backup. Đau đến xé lòng! Từ dạo đó mình bắt đầu đi tìm một con đường mới, một nơi mà mình chỉ cần ném code lên và nó chạy, không cần quan tâm đến máy chủ mẹ gì cả. Và thế là mình va vào Cloudflare Workers.

Cloudflare Workers: Đưa code ra "biên giới" mạng

Nghe cái từ "Edge Computing" hay "Serverless" có vẻ to tát và sặc mùi học thuật, nhưng anh em cứ hiểu nôm na thế này cho dễ vào đầu: Bình thường code của anh em nằm ở 1 cái máy chủ vật lý ở Singapore hay Tokyo gì đó. Khách từ Việt Nam vào thì phải gửi yêu cầu sang tận đó rồi chờ nó trả kết quả về, thỉnh thoảng mập địch cắn cáp thì mạng quay đều quay đều.

Nhưng Cloudflare Workers thì khác biệt hoàn toàn. Thằng Cloudflare nó có hàng ngàn cái trạm máy chủ (CDN) rải rác khắp thế giới, có cả ở Hà Nội với TP.HCM luôn. Khi anh em viết code xong và deploy lên Workers, cái đoạn code đó lập tức được copy ra toàn bộ các trạm này. Người dùng ở Hà Nội truy cập thì cái trạm ở Hà Nội sẽ chạy code và trả kết quả luôn. Nhanh như một cơn gió! Tốc độ phản hồi thường chỉ tính bằng mili-giây (ms).

Cái sướng nhất của việc dùng Workers là anh em đéo cần quan tâm đến hệ điều hành, RAM, CPU hay việc cài đặt môi trường. Anh em chỉ cần biết viết JavaScript hoặc TypeScript. Viết xong hàm fetch, ấn nút Deploy là xong. Cloudflare nó tự lo vụ mở rộng (scale) khi có hàng triệu người truy cập cùng lúc. Hồi mình code cái tool quản trị Blogspot, lúc đầu mình chỉ nghĩ đơn giản là dùng Workers để chọc API vào Telegram gửi thông báo thôi. Nhưng lúc viết xong, thấy tốc độ nó phản hồi kinh khủng quá, mình quyết định ném toàn bộ backend vào đó luôn. Code nhẹ, chạy mượt, mà cái gói Free của nó cho tận 100.000 request mỗi ngày. Với một thằng làm web nhỏ như mình, con số đấy là dùng tẹt ga, xả láng không bao giờ hết.

D1 Database: Mảnh ghép hoàn hảo để dập tắt nỗi lo cơ sở dữ liệu

Workers ngon thật đấy, nhưng trước đây nó có một cái nhược điểm chí mạng là éo có database quan hệ. Mình từng dùng KV (Key-Value) của nó để lưu trữ tạm thời, nhưng để làm mấy cái như bảng Users, bảng Posts, bảng Comments mà dùng KV thì cực như chó, query phức tạp là mù mắt luôn. Phải kết nối ra MySQL bên ngoài thì lại chậm rì rì vì độ trễ mạng, mất luôn cái lợi thế tốc độ của Workers.

Thế rồi Cloudflare tung ra D1 - database SQL Serverless đầu tiên của họ, xây dựng dựa trên SQLite. Ôi chu choa, nó giống như người đang đi lạc giữa sa mạc thì nhặt được bình nước đá vậy. D1 giải quyết triệt để bài toán lưu trữ dữ liệu có cấu trúc ngay tại "biên" (edge).

Hôm mình test thử tính năng theo dõi địa chỉ IP và lưu lịch sử truy cập thô cho cái công cụ Admin của Blog Share Tips, mình tạo một database D1. Thay vì phải cài phpMyAdmin lằng nhằng, mình chỉ cần gõ vài dòng lệnh wrangler trên terminal là bảng đã được tạo. Việc kết nối từ Workers vào D1 là nội bộ trong mạng lưới của Cloudflare, tốc độ query nó tính bằng vài mili-giây. Dữ liệu ghi vào phát là tự động được backup, chả sợ chết ổ cứng như đợt dùng VPS rẻ tiền nữa.

Gói miễn phí của D1 hiện tại cho phép đọc 5 triệu hàng mỗi ngày và ghi 100 ngàn hàng mỗi ngày, lưu trữ 500MB. Các ông thấy có điên rồ không? Với một web tool cá nhân hay 1 blog tầm trung, ngày vài ngàn traffic thì dùng đến mùa quýt sang năm cũng chả chạm được cái ngưỡng free này của nó. Tiền tiết kiệm được từ việc thuê hosting hay VPS mỗi tháng, mình để dành thi thoảng rủ hội anh em đi bú bát phở bò lõi rùa nóng hổi sáng sớm mùa đông, cuộc đời nó thi vị hơn biết bao nhiêu.

Tại sao anh em phải "đu trend" này ngay từ bây giờ?

Mình không phải dạng hay khuyên người khác bỏ cái này theo cái kia, nhưng với Cloudflare Workers và D1, mình khuyên thật lòng anh em nên tìm hiểu ngay. Đây không phải là cái trend sớm nở tối tàn, mà nó đang thay đổi hoàn toàn cách chúng ta làm web.

  • Tiết kiệm kinh tế tối đa: Anh em làm dự án cá nhân, làm portfolio, làm web tool vệ tinh, web clone... không cần bỏ ra một cắc nào phí duy trì server hàng tháng. Free tier của Cloudflare dư sức gánh. Khởi nghiệp từ con số 0 đúng nghĩa đen.
  • Bảo mật ở đẳng cấp thế giới: Code của bạn nằm sau bức tường lửa của Cloudflare. Chặn DDoS, chặn IP rác, chặn Bot xấu... mấy cái đó nó tự lo hết. Mình code cái tool chặn IP nâng cao ở bài trước, thực chất là gọi API của Cloudflare WAF để ban thiết bị, nhàn tênh.
  • Hiệu năng đè bẹp VPS giá rẻ: Đừng so sánh với mấy con VPS cùi. Code chạy trên mạng lưới Global CDN, user ở Mỹ truy cập cũng nhanh mà ở VN truy cập cũng mượt. Trải nghiệm người dùng lên một tầm cao mới, SEO web nó cũng dễ thở hơn vì tốc độ tải trang là yếu tố quan trọng mà Google đánh giá rất cao (E-E-A-T và Core Web Vitals ngon ơ).
  • Bắt nhịp với kỷ nguyên API-first: Thay vì code cục mịch bằng PHP render HTML, việc viết Workers ép anh em tư duy theo kiểu tách bạch Frontend và Backend (viết API). Sau này anh em kết hợp Frontend làm bằng React, Vue, hay tĩnh như HTML/CSS/JS thuần gọi API qua Workers thì web nó gọi là mượt như nhung.

Những khó khăn anh em sẽ gặp phải (Đời không như là mơ)

Nói nãy giờ toàn thấy màu hồng, nhưng mình cũng phải chia sẻ thật mấy cái "sỏi đá" mà mình vấp phải khi làm quen với cái mớ này.

Thứ nhất, nó không có môi trường Node.js hoàn chỉnh. V8 Engine của Workers nó giới hạn một số thư viện Node cũ. Nên anh em quen xài mấy thư viện NPM cồng kềnh bê lên đây có thể sẽ bị lỗi. Bắt buộc phải tìm các thư viện nhẹ hơn hỗ trợ chuẩn Edge.

Thứ hai, thời gian chạy của Workers bị giới hạn (thường là 10ms - 50ms CPU time cho gói Free). Có nghĩa là anh em không thể nhét một đoạn code xử lý ảnh nặng trịch hay tính toán AI phức tạp vòng lặp vô tận vào đây được. Nó sinh ra để làm trung chuyển, xử lý logic nhanh gọn và truy vấn database rồi trả về. Làm gì nặng quá là nó ngắt cái rụp. Đợt mình viết cái tính năng parse file XML sitemap nặng vài chục MB, cứ quăng lên Workers là bị timeout, sau phải chuyển về phía client xử lý bằng Javascript.

Thứ ba, D1 là SQLite chứ không phải MySQL hay PostgreSQL. Nó có một số giới hạn về các hàm SQL phức tạp, và không có kết nối trực tiếp kiểu GUI trực quan (bây giờ thì có Cloudflare Dashboard cũng tạm ổn rồi nhưng chưa bằng DBeaver hay Navicat kết nối trực tiếp). Nhưng bù lại tốc độ và sự đơn giản của nó cứu vớt lại tất cả.

Lời kết

Ngoảnh đi ngoảnh lại đã sắp hết năm 2026, thời tiết thì lạnh tê tái nhưng công nghệ thì không bao giờ ngừng nóng. Việc từ bỏ thói quen dùng Hosting truyền thống để chuyển sang Cloudflare Workers và D1 lúc đầu sẽ hơi ngợp, anh em sẽ phải học lại tư duy deploy bằng dòng lệnh, làm quen với Wrangler CLI. Nhưng tin mình đi, một khi đã vượt qua được cái ngưỡng cửa đó, anh em sẽ thấy một chân trời mới mở ra. Làm web không còn là nỗi lo âu canh cánh về server sập hay bill tiền hosting cuối tháng nữa.

Anh em nào đang làm blog vệ tinh, web chia sẻ thủ thuật hay những cái tool nhỏ giống mình, hãy thử đăng ký tài khoản Cloudflare, tạo thử 1 cái "Hello World" trên Workers và vọc vạch D1 xem sao. Đảm bảo anh em sẽ ghiền cái tốc độ deploy "vừa enter phát web đã có mặt trên toàn cầu". Biết đâu từ những cái nghịch ngợm nhỏ bé giữa đêm đông gió rét này, anh em lại tạo ra được những dự án khủng trong tương lai.

Cảm ơn bạn đã đến đây, cảm ơn bạn đã đọc bài viết này. Nhớ theo dõi và ủng hộ Blog Share Tips nhé. Đừng quên nhấn vào chiếc chuông màu xanh dưới góc phải màn hình để nhận thông báo mới nhất khi mình có bài mới. Chúc bạn luôn mạnh khỏe, giữ ấm cơ thể trong những ngày gió mùa đông bắc này và code ít bug thôi nhé! (update 06:17 PM - 04/11/2026)

Copyright © Blog Share Tips

Đăng nhận xét