开源云计算的未来:Ubicloud,AWS的开源替代方案

348 阅读6分钟

开源云计算的未来:Ubicloud,AWS的开源替代方案

在云计算领域,AWS、Azure和Google Cloud等巨头占据了主导地位。然而,这些平台虽然功能强大,但它们的封闭性和高昂的成本让许多开发者和企业望而却步。今天,我们要介绍一个开源项目——Ubicloud,它提供了一个开源的云计算平台,旨在成为AWS的开源替代方案,就像Linux是专有操作系统的开源替代品一样。

什么是Ubicloud?

Ubicloud是一个开源的云计算平台,可以在任何地方运行。它提供了基础设施即服务(IaaS)的功能,支持在裸金属服务器上运行,如Hetzner、Leaseweb和AWS Bare Metal。你可以自己设置Ubicloud,也可以使用他们的托管服务。目前,Ubicloud正处于公开测试阶段。

快速开始

托管平台

你可以直接使用Ubicloud的托管服务,无需安装任何东西。通过这种方式,你可以享受到底层提供商的价格和位置优势。

访问 Ubicloud控制台 即可开始使用。

构建自己的云

你也可以构建自己的云。首先,启动Ubicloud的控制平面并连接到其云控制台。


git clone git@github.com:ubicloud/ubicloud.git



# 生成演示用的密钥

./demo/generate_env



# 运行容器:db-migrator、app(web & respirate)、postgresql

docker-compose -f demo/docker-compose.yml up



# 访问 localhost:3000

控制平面负责将裸金属Linux机器“云化”。最简单的方法是租用这些提供商的实例。例如,你可以从 Hetzner 租用实例。

租用实例后,运行以下脚本来“云化”每个实例。默认情况下,该脚本适用于从Hetzner租用的裸金属实例。云化后,你可以在这些机器上配置和管理云资源。


# 输入主机名/IP和提供商,并按照脚本指示安装SSH密钥

docker exec -it ubicloud-app ./demo/cloudify_server

当你创建虚拟机时,Ubicloud会为它们分配IPv6地址。如果你的ISP不支持IPv6,请使用VPN或隧道代理(如Mullvad或Hurricane Electric的 tunnelbroker.net)进行连接。或者,你可以从提供商租用IPv4地址并将其添加到控制平面。

为什么选择Ubicloud?

公共云提供商如AWS、Azure和Google Cloud为初创企业和大型企业提供了便利,但它们是闭源的,价格昂贵,并且会锁定用户。Ubicloud提供了一个开源替代方案,降低了成本,并将基础设施的控制权交还给你,同时不牺牲云的便利性。

目前,AWS提供了大约200种云服务。Ubicloud的目标是实现其中10%的服务,这些服务占据了80%的使用量。

使用Ubicloud的示例场景

  • 临时工作负载:如CI/CD管道(我们正在与GitHub Actions集成),或运行计算/内存密集型测试。我们的托管云比AWS便宜约3倍,因此你可以节省成本。
  • 便携式应用部署服务:如 Kamal。我们正在将Ubicloud的控制平面从Heroku迁移到Kamal,并在此过程中为Kamal的依赖项提供开放和便携的服务。
  • 裸金属机器:如果你有裸金属机器,你可以构建自己的云,以实现可移植性、安全性或合规性。

当前状态

Ubicloud目前处于公开测试阶段。你可以在 社区论坛 提供反馈、获取帮助或请求支持你的网络环境。

我们遵循一种成熟的架构模式来构建公共云服务。控制平面管理数据平面,数据平面利用开源软件。以下是当前的云组件/服务:

  • 弹性计算:控制平面通过SSH与Linux裸金属服务器通信。我们使用 Cloud Hypervisor 作为虚拟机监视器(VMM),每个VMM实例都包含在Linux命名空间中,以进一步隔离/安全。
  • 网络:我们使用 IPsec 隧道建立加密和私有的网络环境。我们支持IPv4和IPv6双栈设置,并提供公共和私有网络。为了安全,每个客户的虚拟机都在自己的网络命名空间中运行。对于 防火墙负载均衡器,我们使用Linux nftables。
  • 块存储(非复制) :我们使用存储性能开发工具包(SPDK)为虚拟机提供虚拟化块存储。SPDK使我们能够在未来添加企业功能,如快照和复制。我们遵循安全最佳实践,并对数据加密密钥本身进行加密。
  • 基于属性的访问控制(ABAC) :通过ABAC,你可以为用户定义属性、角色和权限,并为他们提供对资源的细粒度访问。你可以在这里阅读更多关于我们的 ABAC设计
  • 下一步计划:我们计划接下来开发一个托管的K8s或指标/监控服务。如果你有特定的云服务需求,请通过我们的 社区论坛 与我们联系。

常见问题

你们有构建这类项目的经验吗?

我们的创始团队来自Azure,之前在Amazon和Heroku工作过。我们也有创业经验。我们是 Citus Data 的联合创始人和创始团队成员,该公司后来被 微软收购

这与OpenStack有何不同?

我们看到了三个主要区别。首先,Ubicloud提供托管服务(而非盒装软件),因此你可以在几分钟内开始使用,而不是几周。由于Ubicloud设计为多租户,它内置了诸如静态和传输加密、虚拟网络、密钥轮换等功能。

其次,我们最初的目标是开发者。我们希望通过快速反馈周期,在未来两年内推出6个关键服务。OpenStack仍然主要用于3种云服务。

最后,我们设计追求简单性。在OpenStack中,你需要在10种虚拟机管理程序、10种S3实现和5种块存储实现之间做出选择。软件需要以这些实现相互兼容的方式工作,这导致了“顾问软件”。我们将对Ubicloud采取更有主见的方法。

同类项目介绍

OpenStack

OpenStack是一个开源的云计算平台,提供了类似于AWS的IaaS功能。它支持多种虚拟机管理程序和存储后端,适合需要高度定制化的企业环境。然而,OpenStack的复杂性和部署难度较高,通常需要专业团队进行维护。

Kubernetes (K8s)

Kubernetes是一个开源的容器编排平台,广泛用于自动化部署、扩展和管理容器化应用。虽然Kubernetes主要用于容器管理,但它也可以与云平台集成,提供弹性计算和存储服务。与Ubicloud相比,Kubernetes更专注于容器化应用的编排和管理。

Proxmox VE

Proxmox VE是一个开源的虚拟化平台,支持虚拟机和容器的管理。它提供了类似于Ubicloud的弹性计算和存储功能,但更侧重于虚拟化环境的管理。Proxmox VE适合需要虚拟化和容器化混合环境的企业。

通过Ubicloud,你可以享受到开源云计算带来的自由和灵活性,同时降低成本和避免供应商锁定。无论你是开发者还是企业,Ubicloud都为你提供了一个强大的开源云平台选择。

本文使用 markdown.com.cn 排版