概念:Sky Computing#

SkyPilot 是一个开源的 Sky Computing 框架。

_images/sky-above-clouds-gen.jpg

问题:云基础设施呈爆炸式增长的复杂性#

如今的云基础设施复杂度呈爆炸式增长。组织被迫处理跨越三个维度、组合数量庞大的基础设施选择:

  • 位置:单个云中有数十个区域和数百个可用区。团队也越来越多地使用多集群和多云(3 个以上超大规模云提供商,10 个以上专业云提供商)。

  • 硬件:每个云有 500 多种实例类型;许多新的加速器(例如,GPU、TPU)。

  • 定价模型:按需实例、预留实例和可抢占 Spot 实例,每种都有不同的定价和可用性。

(位置、 硬件、 定价模型) 的搜索空间组合数量庞大,即使在单个云内也是如此。它也是动态变化的,因为可用性和定价随时间和地点而异。看似简单的任务,如“在美国任意区域/集群中以最低成本运行作业”或“在 AWS 和 GCP 上监控和管理作业”,都变得成本高昂。

  • 投入宝贵的工程时间来掩盖基础设施选择之间的差异。

  • 工作负载被迫运行在次优选项上(为了启发式地简化搜索空间),浪费了利用率、成本节约和容量。

Sky Computing#

为了解决这个问题,加州大学伯克利分校的两篇论文最近提出了 Sky Computing 的概念:《From Cloud Computing to Sky Computing》和《The Sky Above The Clouds》(白皮书)。

简而言之,Sky Computing 将团队多样化的云基础设施整合成一个统一的资源池,称为“天空”(sky)。天空附带两个组件来简化和利用复杂的搜索空间:

  • 一个用于在不同云基础设施上运行工作负载的统一界面。

  • 一个优化器,为每个工作负载找到最佳的基础设施选择(最便宜且最可用)。

这两个组件都使得使用复杂的云基础设施变得简单:

  • 统一的 Sky 界面允许使用相同的界面一次性指定工作负载,并能在不同的基础设施上运行。

  • Sky 优化器跨越搜索空间,利用计算资源池中(动态变化的)定价和可用性差异。

借助 Sky,云用户及其工作负载获得以下好处:

  • 云更容易使用:通过统一界面,基础设施得到简化,并为多云做好了准备。

  • 成本更低:节省了处理云基础设施的工程时间。Sky 优化每个工作负载的成本。大型组织因可移植性获得定价优势。

  • 容量更高:工作负载现在可以在更大的计算资源池上运行,有多种位置、硬件和定价模型可供选择。

为什么 AI 受益于 Sky Computing?#

AI 对容量和成本要求极高,比之前的云工作负载高出许多数量级。为了增加容量和降低成本,AI 团队正在任何地方、以任何可能的形式使用计算资源。

  • 位置:AI 团队混合使用超大规模云提供商(AWS/GCP/Azure/..)、GPU 云(CoreWeave/Lambda/..)、云内的多个区域以及/或多个 Kubernetes 集群。

  • 硬件:用于不同任务的不同代次 GPU(例如,H100 用于训练,L4 用于推理);AMD GPU;超大规模云上的加速器(例如,TPU、Trainium、Inferentia)。

  • 定价模型:团队混合使用预留、按需和 Spot GPU 来节省成本。

这些选择通常交织在一起:例如,AI 团队通常在云 X 上使用预留的 H100 进行训练,在云 Y 上使用 Spot L4 进行大规模批量推理。因此,AI 工作负载本身就需要管理复杂搜索空间中的众多计算选项。

Sky Computing 提供了一个自然的解决方案。Sky 为 AI 团队提供了一个统一的界面,可以轻松且可移植地在其多样化计算资源上运行 AI。此外,Sky 智能地协调团队的 AI 计算选项,提供大量成本节约和更高的计算容量。

SkyPilot 和 Sky Computing#

SkyPilot 诞生于提出 Sky Computing 的同一个加州大学伯克利分校实验室。SkyPilot 是 Sky 的第一个实现,它最初是为了实现 Sky Computing 中的一类重要工作负载:AI 和计算密集型工作负载。

在过去几年中,SkyPilot 已被约 100 多家领先公司和 AI 团队广泛采用。虽然最初的开发团队由伯克利博士生/研究人员组成,但今天的 SkyPilot 社区已发展到 100 多个来自许多组织的贡献者

SkyPilot 在 BYOC (Bring Your Own Cloud) 模型下运行,其中所有资源都在用户现有的云账户、VPC 和集群中启动。

SkyPilot 根据宽松的 Apache 2 许可证开源,并在 GitHub 上积极开发中。

如果我只有一个云:Sky Computing 的层次#

就像自动驾驶有不同的自主级别(例如,Level 1-5)一样,可以以递增的“级别”采用 Sky Computing 和 SkyPilot,获得更多好处。

对于固定集群(例如,Kubernetes、Slurm)上的用户,SkyPilot 提供:

  • 一个简单的界面,用于提交和管理 AI 工作负载,针对 AI 用户的操作习惯进行了优化。

  • 支持在您的集群上进行集群、作业和服务。

  • 成本节约:自动停止、排队和更高的硬件利用率。

  • 面向未来:将来添加其他集群或云时无需重新改造工具。

对于单云单区域/可用区上的用户,SkyPilot 提供:

  • 自动重试、自动回退供应器:指定多个硬件回退目标,SkyPilot 将自动优化和自动重试以应对 GPU 短缺。

  • 经过实战检验的作业恢复,包括在 Spot 实例上的训练和服务。

  • 简单的负载打包:用一个简单的 SkyPilot YAML 文件包装您现有的 AI 项目,并由 SkyPilot 处理所有基础设施任务。

  • 加上上述所有好处。

对于单云多区域上的用户,SkyPilot 提供:

  • 支持单个作业利用多个区域以获取 GPU 可用性和更快恢复。

  • 支持模型的副本跨越多个区域以提高可用性和节省成本。

  • 加上上述所有好处。

对于多云或多集群上的用户,SkyPilot:

  • 将您的所有基础设施整合成一个统一的资源池(您的 Sky),以获得更高的利用率、成本节约和容量。

  • 加上上述所有好处。

了解更多#

如今,加州大学伯克利分校及其他地方的系统社区已经产生了几个后续项目,以扩展 Sky Computing 技术栈:

  • SkyServe:SkyPilot 的跨区域、跨云 AI 服务库(用户文档)。

  • Can’t Be Late:针对 SkyPilot 的高级 Spot 实例调度策略 (NSDI ‘24 最佳论文)。

  • Skyplane:用于快速且经济高效的跨云数据传输的开源工具。

  • Cloudcast:高吞吐量、成本感知的跨区域和跨云组播。

  • FogROS2:利用 Sky Computing 通过 SkyPilot 构建的开源云机器人平台。

  • ...以及管道中的一些其他项目。

要了解有关 SkyPilot 的更多信息,请参阅项目公告博客文章,或SkyPilot NSDI 2023 论文演讲

要了解有关 Sky Computing 的更多信息,请参阅Sky Computing 白皮书

参与进来#

试用 SkyPilot:通过快速入门,在 5 分钟内在您的云中体验 Sky Computing。

分享您的反馈:在SkyPilot Slack 上与团队聊天,或在我们的GitHub 上留言。

贡献:我们欢迎社区的贡献!请参阅 CONTRIBUTING