云平台即服务公司 Vercel 发布了一份针对 Hive 的深入研究报告。Hive 是其新的底层计算平台,为客户构建提供基础架构支持。自 2023 年 11 月以来,Vercel 已将 Hive 用于不受信任的临时计算任务。
Vercel 构建和计算产品经理 Mariano Cocirio 和首席工程师 Guðmundur Bjarni Ólafsson 在博文中解释说,他们开发 Hive 是为了满足客户日益增长的需求,同时保证多租户环境中的安全性。
我们之所以构建 Hive,是因为我们需要更精细的控制和更细粒度的管理,以便不断地改进 Vercel 的基础设施。
该平台由一个称为“ hives ”的区域集群系统组成,每个集群独立运行,有自己的故障边界。每个集群包含几个关键组件,包括 “ boxes ”(裸机服务器)、“ cells ”(虚拟机)、用于编排的控制面板以及每个 Hive 实例的专用 API 。
在技术层面,Hive 使用了 KVM(Kernel-based Virtual Machine)技术和 Firecracker,后者是亚马逊云科技最初为改进 Lambda 和 Fargate 而开发的一个开源 MicroVM。这些技术结合在一起,为运行构建进程创建了安全、隔离的环境。该系统有一个 “box 守护进程”,用于管理虚拟机准备以及与 “cell 守护进程 ”通信,而后者负责控制执行客户工作负载的构建容器。
Vercel 通过预热 cell 进一步简化了构建流程,使大多数构建工作无需等待 cell 创建即可立即开始。启动构建时,系统会根据客户和构建配置选择合适的 Hive 集群,然后在 cell 内的容器中执行构建。完成后,cell 将被销毁,以保持平台的临时性特点。
Vercel 专注于 Hive 架构的安全性和隔离性。每个虚拟机都分配有专用的 CPU 和内存,而磁盘和网络吞吐量则根据总体容量和 box 划分进行速率限制。这种方法可以确保潜在的恶意代码能够在多租户环境中安全地执行,而不会影响系统的完整性或性能。
在一段讨论 Vercel 博文的 YouTube 视频中,来自 Codedamn 的 Mehul Mohan 解释了实际的工作流程:当开发人员将代码推送到 GitHub 时,一个 webhook 会触发 Vercel 的构建流程,并说明了为什么 Hive 既是不受信任的又是临时的。Mohan 将其与 Codedamn 的游乐场做了比较,后者在运行不受信任的代码时也面临着类似的挑战,这可以帮助说明 Vercel 的架构为何使用多层隔离。
在 Sum Of Bytes 上发表的一篇文章中,Arpit Kumar 讨论了无服务器计算中的各种虚拟化方法,并特别介绍了 MicroVM,认为它是一种兼顾安全性、隔离性和性能的解决方案。传统的容器虽然速度快、效率高,但因为共享主机内核,如果恶意代码导致内核恐慌,就会带来安全风险。这推动了 MicroVM 的发展,Firecracker 就是一个成功的例子,它可以在短短 300 毫秒内完成启动。
Kumar 比较了各大公司不同的 MicroVM 实现。亚马逊云科技使用 Firecracker 实现 Lambda 和 Fargate,Cloudflare 使用 V8 Isolates 运行 Worker,谷歌的 gVisor 是另一种用于运行容器的以安全为本的虚拟机。他还提到, WebAssembly 是另一种速度接近原生的沙箱方法,以及其他新兴的基于 Rust 的 MicroVM 替代方案。
Hive 还集成了 Vercel 的安全计算产品,使企业能够在敏感的构建流程中使用私有网络连接。与以前的解决方案相比,这种集成有了很大的改进,特别是在安全构建的准备时间方面。
在另一篇文章中,Cocirio 和 Ólafsson 解释了这是如何实现的:
每个 Hive cell 都会通过连接器的 WireGuard 接口启动一个安全隧道。密钥在实例启动时生成,并通过密钥交换服务分发,不会持久存在或重复使用。
该平台的安全模型使用 Linux 网络命名空间,每个 WireGuard 接口都在 box 自己的命名空间中运行。这种架构可确保所有 cell 流量都经过了加密,并通过安全隧道正确路由回客户基础设施。
与以前基于 Fargate 的解决方案相比,该系统在性能上有明显改善。以前在私有网络内,安全构建需要长达 90 秒的准备时间。新的基于 Hive 的架构将这一时间缩短到了 5 秒,而且网络安全水平保持不变。与以前的解决方案相比,整体构建性能提高了 30%。Vercel 将这些成果部分归功于 Docker 镜像缓存等优化措施。这些措施本身就将启动时间缩短了约 45 秒。
该平台的成功促使 Vercel 考虑将 Hive 扩展到其他业务领域。虽然目前的重点是为客户构建基础设施,但该公司将 Hive 描述为一个通用计算平台,未来有可能实现更广泛的应用。伴随着 Vercel 继续探索改进和新用例,进一步加强缓存策略和优化 repo 克隆的工作也正在进行当中。
原文链接:
评论