Skip to content

开放、免费、便携的云。公共测试版中的弹性计算、块存储(非复制)、虚拟网络、托管 Postgres 和 IAM 服务。

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/ubicloud

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

育碧云那里 建造 使用 Greptile 学习此存储库

Ubicloud 是一个开放、免费、可移植的云。将其视为云提供商的开放替代方案,就像 Linux 之于专有操作系统一样。

Ubicloud 在 Hetzner、OVH 和 AWS Bare Metal 等裸机提供商上提供 IaaS 云功能。您可以在这些提供商上自行设置,也可以使用我们的托管服务。我们目前处于公开测试阶段。

快速开始

托管平台

您无需安装任何东西即可使用Ubicloud。当您这样做时,我们会将底层提供商的优势传递给您,例如价格或位置。

https://console.ubicloud.com

构建您自己的云

您还可以构建自己的云。为此,启动 Ubicloud 的控制平面并连接到其云控制台。

git clone [email protected]:ubicloud/ubicloud.git

// Generate secrets for demo ./demo/generate_env

/// Run containers: db-migrator, app (web & respirate), postgresql docker-compose -f demo/docker-compose.yml up

/// Visit localhost:3000

控制平面负责裸机Linux机器的云化。构建自己的云的最简单方法是从这些提供商之一租赁实例。例如:https://www.hetzner.com/sb

租用实例后,请为每个实例运行以下脚本以云化该实例。默认情况下,该脚本会对从 Hetzner 租用的裸机实例进行云化。将实例云化后,您可以在这些计算机上配置和管理云资源。

# Enter hostname/IP and provider, and install SSH key as instructed by script
docker exec -it ubicloud-app ./demo/cloudify_server

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

为什么使用它

AWS、Azure 和 Google Cloud 等公共云提供商让初创企业和企业的生活变得更加轻松。但它们是闭源的,让你以巨额溢价租用计算机,然后将你锁定。Ubicloud 提供了一个开放的替代方案,降低了你的成本,并将基础设施的控制权交还给你。所有这一切都不会牺牲云的便利性。

如今,AWS 提供约 200 种云服务。最终,我们将实施占该消费量 80% 的 10% 的云服务。

目前使用 Ubicloud 的示例工作负载和原因包括:

  • 您有一个临时工作负载,例如 CI/CD 管道(我们正在与 GitHub Actions 集成),或者您希望运行计算/内存密集型测试。我们的托管云比 AWS 便宜约 3 倍,因此您可以节省成本。

  • 您需要像Kamal这样的便携式且简单的应用程序部署服务 。我们正在将 Ubicloud 的控制平面从 Heroku 移至 Kamal;我们希望为Kamal在此过程中的依赖提供开放和可移植的服务。

  • 你的某个地方有裸机。出于可移植性、安全性或合规性原因,您希望构建自己的云。

地位

Ubicloud 处于公开测试阶段。您可以在社区论坛中向我们提供反馈、获取帮助或要求我们支持您的网络环境 。

我们在构建公共云服务时遵循既定的架构模式。控制平面管理数据平面,其中数据平面利用开源软件。您可以在下面找到我们当前的云组件/服务。

  • 弹性计算:我们的控制平面使用 SSH 与 Linux 裸机服务器进行通信。我们使用Cloud Hypervisor作为我们的虚拟机监视器(VMM); VMM 的每个实例都包含在 Linux 命名空间中,以实现进一步的隔离/安全。

  • 虚拟网络:我们使用IPsec 隧道来建立加密的专用网络环境。我们在双栈设置中支持 IPv4 和 IPv6,并提供公共和专用网络。为了安全起见,每个客户的虚拟机都在自己的网络命名空间中运行。虚拟网络中的一切都是第 3 层及以上。

  • 块存储,非复制:我们使用存储性能开发工具包(SPDK)为虚拟机提供虚拟化块存储。 SPDK使我们能够在未来添加快照和复制等企业功能。我们遵循安全最佳实践并对数据加密密钥本身进行加密。

  • 基于属性的访问控制 (ABAC):使用 ABAC,您可以定义用户的属性、角色和权限,并授予他们对资源的细粒度访问权限。您可以在此处阅读有关我们的 ABAC 设计的更多信息。

  • 下一步是什么?:接下来我们计划开发弹性负载均衡器或简单的存储服务。如果您的工作负载可以从特定云服务中受益,请通过我们的社区论坛与我们联系。

  • 控制平面:管理数据平面服务和资源。这是一个 Ruby 程序,将其数据存储在 Postgres 中。我们使用Roda 框架来服务 HTTP 请求,并使用Sequel来访问数据库。我们使用Rodauth管理 Web 身份验证 。我们通过库net-ssh使用 SSH 与数据平面服务器进行通信。对于我们的测试,我们使用RSpec

  • 云控制台:由 Roda 框架提供服务的服务器端 Web 应用程序。对于视觉设计,我们使用Tailwind CSS和Tailwind UI中的组件 。我们还使用 jQuery 进行交互。

如果您想开始使用 Ubicloud 进行黑客攻击,任何获取 Ruby 和 Postgres 版本的方法都是可以接受的。如果您对此没有意见,我们的开发团队将使用此处详细记录的asdf-vm 内容。

Greptile提供了一个 AI/LLM,可以索引 Ubicloud 的源代码,可以回答有关它的问题

常问问题

你有建造这类东西的经验吗?

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

这与 OpenStack 有什么不同?

我们看到三个差异。首先,Ubicloud 可作为托管服务(相对于盒装软件)。这样,您可以在几分钟而不是几周内开始。由于 Ubicloud 是为多租户而设计的,因此它具有静态和传输加密、虚拟网络、秘密轮换等内置功能。

其次,我们最初的目标是开发者。我们希望这将为我们提供快速的反馈周期,并使我们能够在未来两年内以 GA 形式提供 6 项关键服务。 OpenStack仍然主要用于3个云服务。

最后,我们的设计是为了简单。使用 OpenStack,您可以在 10 个虚拟机管理程序、10 个 S3 实现和 5 个块存储实现之间进行选择。软件需要以所有这些实现都相互兼容的方式工作。这导致了顾问软件的出现。对于 Ubicloud,我们将采取更加固执己见的方法。

About

开放、免费、便携的云。公共测试版中的弹性计算、块存储(非复制)、虚拟网络、托管 Postgres 和 IAM 服务。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 85.3%
  • HTML 14.0%
  • Other 0.7%