开源的 Cloudflare Workers 兼容平台: open-compute

12 小时 4 分钟前
 hqy5345

大家好,我是 Elliot 。分享一下我做的 open-compute 。

我一直都很喜欢 Cloudflare ,Workers 加上 KV 、D1 、R2 、Durable Objects 这些服务,便宜、性能好、生态丰富,开发起来很舒服。

但我们做 ToB 、FDE 交付时,经常会碰到另一种情况:客户认可这个方案,可业务数据必须留在内网,或者企业网络根本不允许访问外部服务。金融、政企、医疗这些场景里,私有化部署往往是项目能不能落地的前提。

最后还是得自己搭基础设施,K8s 、MinIO 、Redis 、任务调度…… 原本几行代码能解决的事,又变成了一堆服务的部署和维护。所以我想,能不能保留 Cloudflare 这套开发体验,把它搬到自己的机器上?

open-compute 就是这么来的。它把 Workers 运行时、部署、网关、存储、队列、工作流和管理界面放进了一个 Rust 二进制里,底层用 workerd ,面向单机部署,一分钟就能跑起来。平台数据用 SQLite ,对象数据默认存在本地,也可以接 S3 兼容存储,不用先搭一套 K8s 、数据库和缓存服务。

最好的地方在于能零成本复用已有的生态。现有的项目一行代码都不用改,原来的 Wrangler 配置、Bindings 和框架适配器都能继续用,切换部署目标就可以运行。所有的 account API 也按 Cloudflare 的接口实现,已有的 SDK 和工具( wrangler 等)都能直接复用。

目前已经支持 Workers 、KV 、D1 、R2 、Durable Objects 、Queues 、Workflows 、Cron 、Cache 、Images 、Vectorize 、AI Search ,还有 Static Assets 和 Service Bindings 。具体支持范围和单机部署下的行为差异,在官网的产品矩阵里有说明。

我们已经在公司客户内部的 ToB 业务跑了一段时间,在实际的交付过程中持续完善后,才把它开源出来。我们内部用它来做 Agent Sandbox 、生成式应用的运行容器等。

对我来说,既能用熟悉的开发方式,又能把代码、数据和运行环境留在自己手里,还具有 Serverless 架构的高性能、低资源占用,都是很实在的需求。

如果大家也有 Workers 项目需要私有化部署,欢迎来把玩,协议是 Apache-2.0 。也欢迎大家 star 、fork 、PR ,项目处于早期阶段,也欢迎加入贡献。

官网和文档:open-compute.dev
源码:GitHub

关于为什么做这个项目,以及我们在企业交付和 Agent 基础设施里遇到的问题,我写了一篇更详细的文章:我把 Cloudflare 开源了

745 次点击
所在节点    分享创造
8 条回复
abersheeran
11 小时 43 分钟前
这个好,我之前也想过。
hqy5345
11 小时 7 分钟前
@abersheeran 谢谢🙏
julyclyde
8 小时 24 分钟前
我在 xhs 看见,然后才是这里
不对劲!
hqy5345
8 小时 21 分钟前
@julyclyde 😂终于想起好多年不用的 V 站密码
nofishing
4 小时 32 分钟前
我去,上过 hacknews 周报,大佬也来 v 站了
hqy5345
4 小时 15 分钟前
@nofishing OMG 你说我上了 hackernews 周报我才知道 😂
airyland
3 小时 46 分钟前
最近我在测试使用 celld ,open-compute 和它的区别是什么?
hqy5345
2 小时 36 分钟前
@airyland 核心定位和架构都差的挺大。

celld 主打自托管的分布式 Durable Objects ,目标是让有状态对象跨多台机器运行。open-compute 是把整个 Cloudflare worker platform 一比一实现,目标是一键部署运行整个 workers 兼容平台,方便搬进企业内网、在自己的服务器上运行。

celld 是直接基于 V8 去实现 workerd 部分的接口,我们直接使用 workerd ,保留原生 Workers 运行时行为。celld 基于 Durable Object 出发构建了上层 API ,所以兼容性和我们相比有很大差距。

我们基本百分百兼容 CF 的官方能力。同时兼容 Cloudflare 管理 API 和已有 CLI 、SDK ,覆盖 Workers 、KV 、D1 、R2 、DO 、Queues 、Workflows 、Cron 、Cache 、Images 、Vectorize 、AI Search 、Artifacts 、Static Assets 、Service Bindings 、Dynamic Workers 、LogTail 。现有项目可以复用业务代码和工具链,加上单机、单二进制的部署方式,私有化迁移和日常维护都更省事。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1246382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX