cloady文档
文档阅读约 12 分钟

核心概念

控制台中使用的术语,以及它们对你的应用意味着什么。

工作区

工作区(workspace)汇集了你的应用、团队成员、集成和账单。它有一个名称,以及一个用在 URL 中的短名称,即 slug(acme);它的控制台位于 cloady.com/w/acme。

一个工作区覆盖所有区域和所有环境,无需按地点逐一设置。你邀请的每个人都能看到其中的所有应用,一份订阅即可涵盖全部应用(参见容量与价格)。

应用

应用(application,控制台中简称“app”)就是你部署的某样东西:一个 WordPress 网站、一个 Node API,或一个 Postgres 数据库。它有自己的 URL、日志、变量、存储和部署历史。你可以从三个地方创建应用:

  • 模板目录(Catalog) — 现成的应用(WordPress、Postgres、n8n 等),选中、命名、部署即可。
  • GitHub — 你的某个仓库,由 Cloady 构建,并在你推送时重新部署。
  • 上传(Upload) — 你电脑上的一个文件夹或 zip 压缩包。

应用由哪些部分组成(它的服务和存储卷)在创建时就已确定。唯一的例外是:从带有 compose 文件的 GitHub 仓库构建的应用,每次部署都会采纳该文件的改动。应用无法升级到模板目录中更新的版本;如需新版本,请部署一个新应用并迁移过去。

每个应用都只属于一个区域和一个环境,两者都在创建时选定;在同一工作区的同一环境内,应用名称是唯一的。因此,生产环境中的 blog 和预览环境中的 blog 是两个不同的应用,各有各的数据和 URL。

重命名应用会改变它的 URL,因为地址跟随名称变化。改动立即生效,其他一切保持不变:数据、变量和自定义域名都原样保留,你只需更新所有指向旧地址的链接。(对于用你自己的代码构建的应用,重命名之后将无法再回滚到重命名之前的部署。)

删除应用会永久删除它的数据。切勿为了重命名而删除应用。

服务与端点

  • 服务(service)是应用中的一个容器。例如,一个 WordPress 应用有两个服务:网站本身和它的 MariaDB 数据库。每个服务都会在 Settings → Services 中单独列出,并带有一个终端按钮;应用的实时日志也可以分别显示每个服务。
  • 端点(endpoint)是服务监听的端口及其协议。公开发布的端口可以从互联网访问;仅在内部暴露的端口,只能由应用中的其他服务通过服务名访问。Web 端口会获得一个 https:// URL;数据库端口和游戏端口是原始的 TCP 或 UDP 端口,会获得一个主机名和一个端口号。

每个应用只有一个公开主机名,由它的主端点响应:主端点是应用声明的第一个 HTTP 端点;如果没有声明 HTTP 端点,则是它的第一个 TCP 端点。其他服务没有自己的主机名,请在应用内部通过服务名访问它们。如果应用除了网站之外还发布了 TCP 或 UDP 端口,请使用应用页面上显示的 IPv6 地址连接该端口。

区域

区域(region)是应用运行的地方,目前有 usw1(美国西部)、use1(美国东部)、eu1(德国)和 sin1(新加坡)。你在创建应用时选择区域,之后也可以通过应用危险操作区(Danger zone)中的 Transfer 迁移它;带有存储卷的应用在数据复制到新区域期间会停止服务。应用不会在区域之间自动故障转移;如果需要在两个地方运行同一个应用,请部署两次。

无需事先开通任何东西。新工作区可以立即部署到任何区域,无论免费还是付费。在这方面,只有一种错误会阻止部署:

  • payment_required — 该应用会让工作区超出免费额度,而目前没有绑定银行卡,或银行卡扣款被拒。工作区所有者可以在 Account → Billing 中添加银行卡,你也可以调小应用的规格。

如果某个区域没有空间容纳新应用,部署会显示 Adding capacity… 几分钟,期间会有一台服务器加入该区域。如果一直没有服务器加入,部署就会失败;请重试,或换一个区域。

容量与价格

你无需选择套餐。工作区中的应用会声明各自所需的资源(即 compose 文件中的资源上限,乘以你选择的缩放倍数),总量按以下四档套餐计价:

套餐vCPURAMSSD每月价格
Small1 vCPU2 GB50 GBUS$5.00
Medium4 vCPU8 GB200 GBUS$15.00
Large10 vCPU44 GB600 GBUS$60.00
Max22 vCPU116 GB1 TBUS$120.00
  • 总量会落在能覆盖全部三项资源的最小套餐上,价格介于该套餐与低一档套餐之间。恰好达到某档套餐的上限,就按该套餐的价格计费;介于两档之间的,价格也介于两者之间。因此,账单不会在档位边界处突然跳涨,申请更多资源也绝不会更便宜。
  • 所有区域价格相同;你按应用声明的资源付费,而不是按实际用量付费。免费额度每月包含 200 GB 出站 HTTP 流量;付费容量包含不限量的网络流量。
  • 如果工作区的应用总量不超过 0.5 vCPU、1 GB 内存和 5 GB SSD,就无需付费。这是一个门槛,而不是折扣:一旦任意一项资源超出,就会对整个工作区计费。
  • 增加资源会立即按当前计费周期的剩余时间收费;如果扣款被拒,更改会被阻止,而不会照常生效。减少资源则在下次续费时生效,因此你已经付费的容量在本周期内仍可继续使用。

环境

每个应用都属于三种环境之一,即 production(生产)、preview(预览)或 development(开发):

  • 不同环境之间名称互不冲突:生产环境的 blog 和预览环境的 blog 是两个独立的应用。
  • 所有环境都计入工作区的用量,并计入同一份账单。
  • 主机名中不包含环境;主机名里的唯一短代码已经足以区分生产环境和预览环境的 blog。
  • development 环境中的应用在推送代码时不会重新部署,除非你开启此功能;生产环境和预览环境默认会重新部署。

区域和环境是控制台 URL 的一部分(cloady.com/w/acme/usw1/production/a/blog);顶部的切换器决定你正在查看的是哪一组应用。

工作区横跨所有区域;每个应用位于某个区域与某个环境交汇的格子中工作区 acme身份 · 成员 · 集成 — 在所有区域通用cloady.com/w/acme区域 →环境 ↓usw1美国西部eu1德国sin1新加坡productionpreviewdevelopmentblogshopeu-apiedgeblog——scratch——控制台 URLcloady.com/w/acme/usw1/production/a/blog同一名称可以在其他环境中重复使用

域名

域名(domain)是指向某个应用的主机名,在 Settings → Domains 中管理:

  • 内置域名(Built-in) — 每个应用都会获得的 cloady.io 主机名,HTTPS 已为你配置好。

  • 自定义域名(Custom) — 你拥有的主机名。先添加它,然后创建面板中显示的 DNS 记录:子域名使用指向内置主机名的 CNAME;根域名(apex)不能使用 CNAME,请改用面板列出的 A 和 AAAA 记录。DNS 解析生效后,Cloady 会为它申请 Let's Encrypt 证书;面板会以 queued → pending → issued 显示进度,如果记录始终无法解析,则显示 failed 及原因。

  • 在 Cloady 注册的域名(Registered with Cloady) — 你在这里购买的域名。可以在部署输入框中购买(输入类似 acme.dev 的名称);当你在应用的 Domains 表单中输入的名称尚未被注册时,也可以在那里购买;还可以在 Workspace settings → Domains 中购买。域名注册期为一年,附带 WHOIS 隐私保护,属于整个工作区,而不是某一个应用。使用 Automatic DNS 时,域名及其所有子域名都已指向 Cloady,因此把 shop.acme.dev 绑定到任意应用都无需修改 DNS。除非你关闭自动续费,否则 Cloady 会在域名到期前一个月为它续费,费用从工作区的银行卡扣除。

Open 按钮使用内置主机名。将某个域名标记为 primary(通过 API 或 Terraform)只会在列表中给它加上标记。

Workspace settings → Domains 列出工作区中的所有域名。在这里注册的域名带有记录编辑器(MX、TXT、CNAME 等,并为常见邮件服务商提供预设);托管在其他 DNS 服务商的域名,会显示需要在那里添加的记录,以及这些记录目前是否已能解析。每个应用自己的 cloady.io 主机名也可以添加记录,记录名在它之下,例如 mail 或 _verify。

资源与扩缩容

工作区的用量就是其中所有应用声明的资源之和。无需预先购买容量,用量也没有封顶。

每个服务运行时都有 CPU 上限和内存上限:取应用声明的值;如果应用没有声明,则为 0.5 vCPU 和 1 GB。Settings → Resources 可以按应用缩放这些上限,倍数从 0.5× 到 4×,步长为 0.25,CPU 和内存分别设置。一个应用的费用,取决于其所有服务在当前倍数下的上限之和。

当你部署新应用或调高某个应用的缩放倍数时,Cloady 会把它的上限与所有已部署的资源相加,并在创建任何东西之前为新的总量计价。在免费额度内不收费。超出额度后,会从已绑定的银行卡扣取差额;如果没有绑定银行卡,或扣款被拒,你会收到 payment_required,且不会做任何更改。保存之前,缩放表单会显示每月费用的差额。

存储的处理方式与 CPU 和内存不同。存储卷的大小在 Settings → Resources 中逐个设置,缩放倍数不会影响它们,而且存储卷只能扩大,不能缩小:新大小在保存时生效,无法撤销。应用自己的页面会列出它的存储卷以及每个存储卷的使用率,点击 Browse files 即可打开其中一个。

URL

Cloady 使用两个域名:cloady.com 用于控制台,工作区以路径形式出现(cloady.com/w/acme);cloady.io 用于你部署的应用。

应用的主机名由应用名、一段唯一的短代码和工作区名组成。它在所有区域和所有环境中格式都相同,每个应用都有自己的短代码:

my-blog-k7q2v9ze-acme.cloady.io   production · usw1
my-blog-p3x8m1wd-acme.cloady.io   preview    · eu1

第一部分是应用的 slug,可以在 Settings → General 中编辑。在你自己设置之前,它会跟随应用名称变化;一旦设置过,它就保持不变,之后重命名应用也不会再改变 URL。

环境变量

Settings → Environment 中保存的是应用各服务能看到的变量。标记为机密(secret)的值在保存后会被隐藏,可以逐个显示;你也可以粘贴一个 .env 文件,一次导入多个变量。修改会在下次部署时生效:保存变量不会重启已经在运行的服务,如需立即生效,请使用 Redeploy。

Cloady 会自动设置几个变量,你可以在自己的变量值中用 ${...} 引用它们:

变量值
CLOADY_PRIMARY_URLhttps:// 加上应用的主机名
CLOADY_PRIMARY_HOST、CLOADY_DOMAIN应用的主机名
CLOADY_WORKSPACE、CLOADY_SVCID分别是工作区的 slug 和应用的 slug
CLOADY_HOST_<SERVICE>另一个服务在应用内部的地址

下一步:参阅控制台指南,了解如何在界面中操作;或阅读 API 概览,以编程方式使用 Cloady。

本页内容