Các lựa chọn miễn phí thay Workers Builds: CircleCI, GitHub Actions, Oracle Cloud và cách chuyển việc an toàn
Tháng mới trôi qua mười ngày mà bảng điều khiển đã báo: “Đã đạt giới hạn sử dụng trong tháng”.
Khoan đã, lịch vẫn còn hai mươi ngày! Chẳng lẽ website phải mặc đồ ngủ rồi đi ngủ đông? Người gác cổng gói miễn phí đóng cửa quá sớm.
Tin tốt là hết thời gian build không đồng nghĩa website đã xuất bản tự động ngừng hoạt động. Xây dựng chương trình, xử lý yêu cầu của khách truy cập và gửi tệp HTML có sẵn là các công việc khác nhau. Một số việc có thể chuyển sang hạn mức miễn phí của nhà cung cấp khác.
Các số liệu được kiểm tra từ tài liệu chính thức ngày 10/10/2026. Chính sách có thể đổi, vì vậy hãy kiểm tra lại trước khi dùng.
1. Chính xác là hạn mức nào đã hết?
Cloudflare có nhiều bộ đếm riêng, chứ không có một “cục pin đám mây” duy nhất.
- Workers Builds: thời gian lấy mã, kiểm tra và build. Gói Free có 3.000 phút mỗi tháng, chỉ 1 build đồng thời, tối đa 20 phút cho một build.[1]
- Cloudflare Pages builds: số lần dựng website. Miễn phí 500 lần mỗi tháng, từng lần một.[2]
- Workers và Pages Functions: số yêu cầu chạy mã động. Trên gói Free, chúng dùng chung hạn mức 100.000 yêu cầu mỗi ngày.[3]
- Tệp tĩnh: HTML, ảnh và CSS có sẵn được trả về mà không gọi Functions. Yêu cầu tĩnh của Pages miễn phí và không giới hạn.[3]
Vì vậy, hết phút của Workers Builds không tự xóa những trang đã xuất bản. Tuy nhiên, các hạn mức khác hoặc chức năng cần build mới vẫn có thể gặp sự cố. Hãy tìm đúng bộ đếm đã về 0 trước khi tổ chức tang lễ cho cả website.
2. Dùng 3.000 phút trong mười ngày nghĩa là gì?
Giả sử mười ngày đầu dùng hết 3.000 phút: trung bình 300 phút, tức 5 giờ mỗi ngày. Nếu duy trì tốc độ đó trong 30 ngày, tổng nhu cầu là 9.000 phút, thiếu 6.000 phút so với hạn mức ban đầu.
Nhưng tìm được dịch vụ quảng cáo “6.000 phút miễn phí” chưa chắc giải quyết tất cả. Bộ nhớ, CPU, tốc độ xử lý, thời gian khởi động và giới hạn mỗi tác vụ đều khác nhau.
Trước tiên hãy xem có lãng phí không. Chỉnh một bài viết mà build lại cả website? Tác vụ lỗi cứ tự chạy lại? Kiểm tra đơn giản lại dùng máy quá lớn? Đôi khi thủ phạm không phải hacker, mà là nút “Thử lại” rất vô tội.
3. Máy chạy việc, đồng hồ báo thức và máy chủ web là ba thứ khác nhau
GitHub Actions và CircleCI thực sự chạy tập lệnh, kiểm tra và build. Đây là nhóm phù hợp để thay công việc của Workers Builds.
cron-job.org gọi một địa chỉ web theo lịch, có thể mỗi phút một lần. Nó là đồng hồ báo thức chứ không phải máy tính mới để xử lý việc nặng.[4]
Cloudflare Workers và Deno Deploy chủ yếu phục vụ yêu cầu web và API. Trả lời một yêu cầu nhanh khác hẳn với việc sản xuất hàng loạt bài viết kéo dài.
Mua năm đồng hồ báo thức không tạo ra năm đầu bếp. Tăng số lần kích hoạt không có nghĩa là tăng năng lực tính toán.
4. GitHub Actions: thuận tiện nếu mã đã nằm trên GitHub
GitHub Actions chạy các bước kiểm tra, chuyển đổi và tác vụ định kỳ gắn với kho mã. GitHub Free bao gồm 2.000 phút mỗi tháng cho kho mã riêng tư dùng runner tiêu chuẩn do GitHub lưu trữ. Runner tiêu chuẩn của kho mã công khai có thể miễn phí, nhưng đừng công khai mã bí mật chỉ để lấy thêm phút.[5]
Nó hợp với kiểm tra bài viết, ghép bản dịch, chuẩn bị ảnh và chạy tập lệnh ngắn.
Điểm yếu là thời gian: GitHub cảnh báo các công việc theo lịch có thể bị trễ, thậm chí bị bỏ qua khi hệ thống quá tải.[6] Hẹn 10 giờ, nhân viên 10 giờ 48 mới đến. Hãy thiết kế cách xử lý lại các việc bị lỡ.
Việc kiểm tra pull request và giám sát cũng dùng chung hạn mức. Không thể coi toàn bộ 2.000 phút là của dây chuyền bài viết.
5. CircleCI: thêm một quỹ tính toán miễn phí độc lập
CircleCI Free có 30.000 credits mỗi tháng, không yêu cầu thẻ tín dụng. Số credits tiêu thụ mỗi phút phụ thuộc cấu hình máy.[7][8]
| Môi trường | Credits/phút | Số phút lý thuyết |
|---|---|---|
| x86 Docker Small, 2GB | 5 | 6.000 |
| x86 Docker Medium, 4GB | 10 | 3.000 |
| x86 Docker Large, 8GB | 20 | 1.500 |
| Arm Docker Gen 2 beta, 8GB | 6 | 5.000 |
Đừng vội mở tiệc vì con số 6.000 phút. Đó là máy 2GB. Công việc cần 8GB không thể tự nhiên nhét vào máy nhỏ hơn. Giống như bảo một con cá voi thuê phòng trọ.
Arm Gen 2 beta khá đáng chú ý: bảng giá chính thức ghi 2 CPU, 8GB và 6 credits/phút. Tuy nhiên phải thử xem gói của bạn có dùng được không, phần mềm có tương thích Arm không và thời gian thực tế thế nào.[8] Lưu trữ và truyền dữ liệu cũng có thể tiêu credits.[9]
CircleCI không phải máy tính miễn phí vô tận, nhưng tạo ra một hạn mức miễn phí khác, tách biệt Cloudflare.
6. Oracle Cloud: dùng máy ảo thay vì phụ thuộc phút CI
Một hướng khác là chạy công việc trên máy ảo Oracle Cloud Always Free.
Đính chính quan trọng năm 2026: theo tài liệu hiện hành, hạn mức Arm Always Free tương đương tổng cộng 2 OCPU và 12GB RAM, không phải 4 OCPU và 24GB như nhiều bài cũ. Hạn mức tháng là 1.500 giờ OCPU và 9.000 giờ-GB.[10][11]
Máy ảo giúp giảm sự phụ thuộc vào số phút CI, nhưng bạn phải tự cập nhật hệ thống, bảo vệ khóa, giám sát và phục hồi. Một số vùng không còn máy trống; máy quá ít hoạt động có thể bị thu hồi.[10]
Giống như được tặng xưởng làm việc miễn phí rồi phát hiện mình phải kiêm thợ điện, thợ khóa và bảo vệ ban đêm.
7. Không cần chuyển toàn bộ website khỏi Cloudflare
Chuyển mọi thứ đi cùng lúc có thể làm hỏng những tính năng vốn đang chạy tốt.
Cách chia việc hợp lý: GitHub lưu bản gốc; CircleCI và Actions xử lý tác vụ dài; Cloudflare Pages phục vụ trang tĩnh đã hoàn thành; Workers và Functions xử lý API ngắn; máy ảo chỉ dùng thêm khi cần.
Khi Pages có Functions, một số đường dẫn trông như trang tĩnh vẫn có thể gọi Functions. Cloudflare hướng dẫn dùng _routes.json để loại trừ đường dẫn tĩnh.[12] Tuy nhiên không được loại trừ bừa đường dẫn cần xác thực, chuyển hướng hoặc kiểm tra an toàn. Tiết kiệm bằng cách tháo khóa cửa thì quá liều.
Pages Free còn giới hạn riêng: 500 build mỗi tháng và tối đa 20.000 tệp trên mỗi website.[2] Thoát giới hạn phút rồi đâm đầu vào giới hạn số tệp đúng là trò đập chuột của thế giới đám mây.
8. Các dịch vụ miễn phí khác có điều kiện riêng
Deno Deploy có thể phù hợp với một số API, nhưng ứng dụng dùng cơ sở dữ liệu riêng của Cloudflare hoặc phòng tương tác thời gian thực có lưu trạng thái cần thiết kế lại chứ không chỉ sao chép.[13]
Gói Vercel Hobby miễn phí chỉ dành cho mục đích cá nhân phi thương mại. Website dự định kiếm tiền qua quảng cáo hay tính năng trả phí không nên mặc định nó là lựa chọn lưu trữ thương mại miễn phí.[14]
cron-job.org miễn phí gọi URL theo lịch, nhưng nếu máy nhận cuộc gọi đã hết hạn mức thì đồng hồ reo cũng chẳng xử lý được gì.[4] Việc chia việc hợp pháp cũng khác với đăng ký hàng loạt tài khoản để lách điều khoản.
9. Tai nạn đáng sợ nhất: xuất bản cùng một bài hai lần
Hãy tưởng tượng Cloudflare và CircleCI cùng xử lý bài A. Một bên đăng bản mới, bên còn lại hoàn tất muộn rồi ghi đè bằng bản cũ. Tiết kiệm được tiền, vô tình chế tạo cỗ máy thời gian.
Giải pháp là chỉ một nguồn dữ liệu chính và một nơi giao việc. Mỗi tác vụ cần mã ID và phiên bản, chỉ một bên có quyền xử lý trong một khoảng thời gian, kết quả phải được ghi lại. Chỉ giao lại khi thất bại hoặc hết hạn quyền. Cuối cùng kiểm tra URL và nội dung đã đăng thật.
Đừng để token, mật khẩu hay nội dung chưa xuất bản lọt vào nhật ký công khai. Chỉ cấp quyền tối thiểu cho mỗi dịch vụ. Chuyển sang miễn phí nhưng phát mật khẩu miễn phí cho toàn thế giới là lỗ nặng.
10. Kế hoạch cho hai mươi ngày còn lại
Đầu tiên xác định hạn mức hết là Workers Builds, số lần build Pages hay yêu cầu Workers hằng ngày. Sau đó chia thành xuất bản và kiểm tra chất lượng bắt buộc, chuẩn bị nội dung và công việc bổ sung có thể hoãn.
Kiểm tra số phút GitHub Actions còn lại. Thử một tác vụ nhẹ trên CircleCI Free, đo thời gian, bộ nhớ và tỷ lệ thành công rồi mới chuyển thêm. Nếu còn nhiều tác vụ dài, cân nhắc Oracle VM. Không mở nhiều đường chạy sản xuất cho đến khi có cơ chế ngăn xử lý trùng.
Hỏi: hết phút Builds thì website ngừng luôn? Không nhất thiết. Phát tệp tĩnh đã triển khai là việc khác, nhưng các hạn mức khác vẫn có thể ảnh hưởng.[1][3]
Hỏi: 6.000 phút của CircleCI có bù đúng 6.000 phút thiếu hụt? Chỉ là phép tính cho máy 2GB. Việc thực tế có thể cần máy lớn hơn hoặc thời gian lâu hơn.[7][8]
Kết luận: một nơi chạy chương trình đã hết hạn mức, chứ ý tưởng vẫn còn sống.
Cloudflare: “Tôi hết ca tháng này rồi.”
GitHub: “Việc nhẹ để tôi.”
CircleCI: “Gửi bớt qua đây.”
Oracle: “Có phòng, tự bảo trì nhé.”
Chủ website: “Ủa, gói miễn phí cũng chia ca được à?”
Tưởng bị chiếu hết. Hóa ra bàn cờ còn rất nhiều ô.
- Cloudflare Workers Builds — limits and pricing developers.cloudflare.com
- Cloudflare Pages — platform limits developers.cloudflare.com
- Cloudflare Pages Functions — pricing and static requests developers.cloudflare.com
- cron-job.org — free URL scheduling, up to once per minute cron-job.org
- GitHub — Actions billing and included minutes docs.github.com
- GitHub — scheduled workflow delays and dropped runs docs.github.com
- CircleCI — official Free plan and 30,000-credit allowance circleci.com
- CircleCI — resource class price list, including Arm Gen 2 beta circleci.com
- CircleCI — credits, exhaustion, storage/network implications circleci.com
- Oracle — Always Free resources, revised 2026 Arm allowances and idle reclamation docs.oracle.com
- Oracle — Free Tier and current eligibility conditions docs.oracle.com
- Cloudflare Pages Functions — invocation routing and _routes.json developers.cloudflare.com
- Deno Deploy — runtime and pricing limitations, migration suitability docs.deno.com
- Vercel — Hobby plan, non-commercial restrictions vercel.com

