OpenOrange: chạy Cloudflare Workers trên hạ tầng của bạn
Rivet ra mắt OpenOrange, công cụ mã nguồn mở cho phép chạy Cloudflare Workers và Durable Objects trên AWS, Google Cloud, Azure hoặc máy chủ riêng. Dự án giữ nguyên cấu hình Wrangler nhưng loại bỏ giới hạn 128 MB bộ nhớ và cắt giảm chi phí compute, lưu trữ đáng kể so với giá niêm yết của Cloudflare.

Rivet vừa giới thiệu OpenOrange, một dự án mã nguồn mở (giấy phép Apache 2.0) cho phép chạy Cloudflare Workers và Durable Objects trên AWS, Google Cloud, Azure hoặc máy chủ của chính bạn. Điểm đáng chú ý: mã ứng dụng và tệp cấu hình wrangler.jsonc được giữ nguyên, chỉ đổi tên lệnh CLI.
Điều này có ý nghĩa với các nhóm đang dùng Workers nhưng vấp phải giới hạn tài nguyên hoặc hóa đơn tăng nhanh khi Durable Objects hoạt động liên tục.
Minh họa nền tảng OpenOrange
Ba mô hình triển khai
OpenOrange được vận hành theo ba cách:
- Rivet Cloud: cụm chuyên dụng trên AWS hoặc Google Cloud, chọn vùng tùy ý, do Rivet vận hành.
- BYOC (Bring Your Own Cloud): chạy trên tài khoản AWS, Google Cloud hoặc Azure của bạn nhưng Rivet quản lý qua kết nối outbound.
- Tự lưu trữ (Self-hosted): mã nguồn mở Apache 2.0, chạy trên bất kỳ cloud nào, Hetzner hoặc tại chỗ (on-prem), do bạn vận hành.
Chi phí: rẻ hơn nhờ hạ tầng Graviton
Trang chủ OpenOrange công bố bảng so sánh giá niêm yết Cloudflare với chi phí chạy trên AWS Graviton ở us-east-1 (giá on-demand, cấp dư 40% cho autoscaling), kiểm tra ngày 08/10/2026:
- Compute Durable Object: 0,045 USD/GB-giờ so với 0,0094 USD/GB-giờ, rẻ hơn 4,8 lần.
- SQLite cho Durable Object: 0,20 USD/GB-tháng so với 0,023 USD/GB-tháng, rẻ hơn 8,7 lần.
- D1: 0,75 USD/GB-tháng so với 0,023 USD/GB-tháng, rẻ hơn 32,6 lần.
- KV: 0,50 USD/GB-tháng so với 0,023 USD/GB-tháng, rẻ hơn 21,7 lần.
- Ghi KV: 5,00 USD/triệu lượt ghi so với 0,18 USD, rẻ hơn 28,4 lần.
- Bước Workflows: 8,00 USD/triệu bước so với 0,18 USD, rẻ hơn 45,4 lần.
Ngoài ra còn khoản "thuế egress": gọi từ Cloudflare về database hay API trong AWS tốn 0,09 USD/GB, còn lưu lượng trong VPC của bạn thì miễn phí. Các khoản credit và cam kết chi tiêu của AWS, Google, Azure đều có thể dùng để trả cho OpenOrange, trong khi Cloudflare là hóa đơn thứ hai.
Không còn giới hạn 128 MB
Lợi thế kỹ thuật được nhấn mạnh nhất là việc loại bỏ các giới hạn của gói Workers Paid:
- Bộ nhớ mỗi Worker hoặc Durable Object: từ 128 MB lên tới giới hạn của máy, heap Node.js mặc định khoảng 4 GB và có thể cấu hình.
- Thời gian CPU mỗi request: từ 30 giây mặc định, tối đa 5 phút, thành không giới hạn.
- Cron, queue và alarm handler: từ 15 phút thời gian thực thành không giới hạn.
- Kết nối mở đồng thời mỗi request: từ 6 lên mức giới hạn của hệ điều hành.
- Lưu trữ mỗi Durable Object: từ 10 GB thành không giới hạn.
- Kích thước bundle: từ 64 MiB thành không giới hạn.
- Node.js: từ tập con
nodejs_compatthành Node.js đầy đủ.
Cấu hình và giới hạn runtime
Trải nghiệm lập trình viên giữ nguyên
OpenOrange dùng chính Wrangler để đọc cấu hình. Các binding, môi trường, lệnh build và .dev.vars hoạt động như cũ, chỉ thay wrangler bằng orange:
$ orange dev
$ orange deploy -e staging
$ orange deploy --dry-run
Mỗi Durable Object chạy như một Rivet Actor với database SQLite riêng. Công cụ này không chạy workerd; thay vào đó nó hiện thực API Workers trên Node.js và ánh xạ từng dịch vụ Cloudflare sang Rivet, có tái sử dụng một số mã MIT của Cloudflare như engine Workflows.
Hỗ trợ binding và di chuyển dữ liệu
Danh sách binding được hỗ trợ gồm fetch handler, Durable Objects, KV, D1, R2, Queues, Workflows, Cron Triggers, Static Assets, Cache API, Service bindings, Hyperdrive, Workers AI, Browser Rendering, Email, Rate Limiting, Secrets Store, Tail Workers và Sandbox. Chưa xây dựng: Vectorize, Images, Pipelines và chứng chỉ mTLS — các binding này vẫn nạp được nhưng mỗi lần gọi sẽ báo lỗi nêu rõ tên binding.
Lệnh orange migrate chuyển Durable Object và D1 trong lúc ứng dụng vẫn phục vụ, theo quy trình: yêu cầu vẫn về Cloudflare, chuyển DNS sang OpenOrange, sao chép từng object khi được gọi lần đầu, chạy job backfill cho phần còn lại. Riêng D1 bị gián đoạn vài phút vì Cloudflare không cung cấp cách di chuyển trực tiếp. Với R2, có thể dùng rclone hoặc aws s3 sync vì kho này tương thích S3.
Hướng dẫn triển khai OpenOrange
Góc nhìn
Với các đội kỹ thuật ở Việt Nam đang dùng Workers cho backend, OpenOrange mở ra một lựa chọn đáng cân nhắc: giữ nguyên mã và quy trình Wrangler, nhưng hết lo giới hạn 128 MB — vốn là rào cản với các tác vụ xử lý dữ liệu lớn hoặc dùng thư viện npm gốc. Việc chạy trên Node.js đầy đủ và SQLite thật cũng gần với hệ sinh thái quen thuộc hơn.
Tuy vậy, cần đọc kỹ bảng giá: con số "rẻ hơn nhiều lần" được tính trên giá on-demand Graviton ở us-east-1 và chỉ đúng với tải Durable Objects chạy liên tục. Với Workers nhỏ, tải tăng vọt từng đợt, gói miễn phí và giá theo request của Cloudflare vẫn khó đánh bại. Bên cạnh đó, các binding chưa hoàn thiện và việc OpenOrange không chạy workerd là những điểm cần kiểm thử kỹ trước khi chuyển một hệ thống đang vận hành thật.
Nguồn: openorange.dev · Quy trình biên tập
Bài viết liên quan

Cha đẻ Node.js giải phóng Durable Objects khỏi Cloudflare
13 tháng 8, 2026

Công nghệ
AWS hay GCP quá đắt đỏ? Cloudexit.pro giúp bạn di chuyển sang máy chủ vật lý để tiết kiệm chi phí
16 tháng 4, 2026

Công nghệ
Cloudflare chính thức ra mắt Python Workers: Câu hỏi về cold start và trách nhiệm bảo trì mã nguồn mở
29 tháng 9, 2026