云环境糟糕?他要构建一朵自己想用的云,解决虚拟机资源隔离等问题!
为何要构建云2026 年 4 月 22 日是募资宣布日。在面向大众写作时这是正式且稳妥的声明。大规模写作时内容会变得客观、缺乏个人情感而作者想写些个人化内容谈谈为何要做这件事。作者已是一家创业公司的联合创始人这家公司发展良好他至今仍热爱其产品。那是什么让他甘愿承受再次创业的痛苦呢一些创业伙伴难以置信又震惊不理解他为何再次投身艰难创业路。作者认为真相很简单他喜欢计算机。在一些科技圈子里这是不寻常的表述有人会说“在我们这儿大家都咒骂计算机”。计算机有时让人抓狂但作者就是喜欢让计算机完成各种任务很有趣过程可能痛苦但结果值得。无论是小型微控制器、台式机、手机还是服务器不管放在地下室机架里还是远在世界另一端的数据中心作者都喜欢。为何不喜欢如今的云作者承认“不喜欢如今的云”并非小事。他其实很想喜欢云计算机很棒无论是直接安装在 PC 上的 BSD 系统还是 Linux 虚拟机他能接受 Windows、BeOS、Novell NetWare甚至安装过 OS/2 Warp 还玩得开心。如今 Linux 尤其强大云从产品层面看就是由 API 驱动的 Linux 虚拟机作者本应乐在其中。然而他尝试过的每一款云产品都不尽如人意虽有些相对好一些但总是受到云供应商各种选择的限制很难让计算机完成他想做的事。这些问题不只是用户体验不佳或 API 设计糟糕如今云的一些基本构建模块存在根本性问题。比如虚拟机设计有问题与 CPU/内存资源绑定作者希望购买 CPU、内存和磁盘后运行虚拟机而 Linux 虚拟机是在另一个 Linux 的 cgroup 中运行的进程在如今云环境中要轻松实现这一点只能自己掌控隔离如使用 gVisor 或在单个云虚拟机上进行嵌套虚拟化但会付出嵌套性能代价还得负责运行和管理虚拟机的反向代理这是因为云的抽象设计有问题。云供应商试图用“平台即服务”PaaS系统解决问题但这些抽象概念本质上比计算机功能弱且是特定供应商独有的。为每个计算供应商学习新的软件开发方式却会在项目进行到一半时发现一些在普通计算机上容易实现的事在平台系统上几乎不可能因为有隐藏极深的平台限制直到深入项目才会发现。作者一次次以为找到想要的却被半吊子、未完全实现或考虑不周的抽象概念辜负。云的磁盘、网络和 API 存在哪些问题再看磁盘云供应商希望用户使用远程块设备或更受限、更慢的东西如 S3。远程块设备刚推出时有道理因为当时计算机用硬盘若缓冲实现得好远程操作对顺序读写性能影响不大硬盘随机寻道时间为 10 毫秒以太网连接到远程存储的 1 毫秒往返时间是可接受的代价这对硬盘来说是不错的产品也让云供应商工作轻松从标准实例类型中去掉了一个维度。但后来换成固态硬盘寻道时间从 10 毫秒降到 20 微秒远程系统的输入/输出操作每秒开销从使用硬盘时的 10% 增加到使用 SSD 时的 10 倍以上。配置一个 EC2 虚拟机达到 20 万 IOPS 非常困难每月要为此支付 1 万美元而作者的 MacBook 就能达到 50 万 IOPS。为何要让云基础设施受限于缓慢的磁盘呢最后说说网络超大规模云服务提供商网络出色但收费极高与其他供应商合作也麻烦。云供应商每 GB 出口带宽的标准价格是在普通数据中心托管服务器的 10 倍使用量适中时倍数更高。当然若每月在云服务上花费数百万美元价格会好很多但作者大多数项目每月只想花费几百美元。这里基础技术没问题但云供应商设置各种限制确保构建的东西成本高昂。最后云的 API 也很糟糕这就是像 KubernetesK8S这样的项目出现的原因它们试图掩盖痛苦让工程师使用云时少受点罪。但在 Kubernetes 中使用虚拟机困难因为云供应商让用户自己进行繁琐的嵌套虚拟化磁盘方面也麻烦因为设计 Kubernetes 时谷歌甚至还没有可用的远程块设备即使现在能在不同云之间找到通用模式掩盖问题速度也会很慢网络方面同样困难因为若网络使用容易就可从相邻开放数据中心引入几个系统将云成本降低一个数量级。有人可能认为 Kubernetes 是骗局是为避免做真正的产品工作而人为制造的麻烦但事实更糟糕它是试图解决不可能完成的任务的产品即让云变得可移植和易用但这根本做不到。为何现在要解决云的问题在糟糕的云环境中大家已经挣扎了 15 年只能凑合着用。但现在是解决问题的时机因为情况发生了变化现在有了智能代理。实际上作者和联合创始人 Josh 最初开始尝试是因为想在编程中使用大语言模型。结果发现为大语言模型构建所需的正是更好的传统抽象概念。智能代理让编写代码变得更简单意味着会有更多软件出现经济学家会将其称为杰文斯悖论的一个实例。人们会为了乐趣和工作编写更多程序需要私密的地方运行这些程序方便与朋友和同事分享并且尽量减少管理开销。随着生活中软件总量增加原本就令人烦恼的云变得更加让人头疼需要更多计算资源且需要更易于管理。智能代理在一定程度上有所帮助若信任它们并提供凭证它们可以很好地帮用户调用 AWS API但偶尔也会删除生产数据库。而且智能代理和人们一样也在与云抽象概念的根本限制作斗争需要比预期更多的令牌得到的结果也不尽如人意。智能代理每花一分精力去思考如何让传统云发挥作用就少了一分精力去解决用户的问题。exe.dev 推出的产品解决了哪些问题所以作者要解决这些问题。今天在 exe.dev 上推出的产品解决了虚拟机资源隔离问题用户不再需要单独配置虚拟机而是获得 CPU 和内存资源然后运行想要的虚拟机。还处理了 TLS 代理和身份验证代理因为作者不想让新创建的虚拟机直接暴露在互联网上。用户的磁盘是本地 NVMe 磁盘数据块会异步复制到其他机器上。在全球各地都设有区域这样机器可以离用户更近。机器位于任播网络之后为全球用户提供低延迟的产品访问入口这样很快就能构建一些令人兴奋的新功能。这里还有很多工作要做从静态 IP 这样显而易见的功能到如何让用户访问自动历史磁盘快照这类用户体验方面的挑战这些都会逐步实现。与此同时作者又回到了起点在数据中心部署计算机仔细考虑软件栈的每一层探索网络连接的各种可能性。那么作者构建的这朵云能否满足大家的需求呢