开源云计算的未来: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 排版