云平台汇总(一):Dokploy、Sealos、Cloudflare、Netlify、Render、Zeet、Hetzner

声明:没有任何广告涉嫌,汇总记录一些国内外的云平台/项目。

Dokploy

官网,开源(GitHub,35K Star,2.7K Fork)自托管PaaS平台,可部署在自有VPS上,简化应用和数据库的部署管理,支持Docker、Docker Compose、多节点集群,内置Traefik负载均衡,提供实时监控、自动备份、模板市场等企业级功能。官方PaaS文档

功能

  • 一键安装部署,连Docker都会自动配置:curl -sSL https://dokploy.com/install.sh | sh
  • 全语言全栈支持,Node.js、PHP、Python、Go、Ruby等任何类型的应用都能部署
  • 数据库管理,支持MySQL、PG、MongoDB、MariaDB、Redis,还能自动备份到外部存储
  • Docker Compose原生支持,导入配置文件就能运行
  • 多节点集群部署,使用Docker Swarm管理集群,可以把应用扩展到多台服务器,流量大了随时加机器
  • 一键模板市场,内置Plausible、Pocketbase、Cal.com等几十个开源模板
  • Traefik自动集成,自动配置路由和负载均衡,SSL证书都能自动申请,域名解析好就能用HTTPS
  • 实时监控面板,每个应用和数据库的CPU、内存、存储、网络流量都能实时查看
  • CLI和API完整支持,可通过命令行或API管理所有资源,轻松集成到CI/CD流程里
  • 多服务器管理,可在Dokploy面板里管理多台远程服务器,所有项目统一控制
  • 通知系统,部署成功或失败都能推送通知,支持Slack、Discord、Telegram、邮件等多种方式
  • 自动备份功能,数据库可定时自动备份到S3、阿里云OSS等外部存储,数据安全有保障

Sealos

官网,一款以Kubernetes为内核的开源(GitHub,17K Star,2.4K Fork)云操作系统发行版,集本地开发、线上测试、打包上线为一体,无需云计算专业知识,就能在几秒钟内部署、管理和扩展您的应用,SaaS平台

DevBox

Sealos推出的产品,提供DevBox插件,可集成到VS Code,JetBrains里。

优势:

  • Unified Cloud Dev Environment:统一的云开发环境,轻松创建并共享的云开发环境,减少繁琐的安装和配置过程,统一开发、测试和生产环境,更快地进入开发状态。
  • Out-of-box Consisteney:开箱一致性,所有开发者使用相同的环境配置,消除因本地环境差异而导致的问题,确保代码在所有开发机器上都能一致运行。
  • Production Environment Simulation:生产环境模拟,DevBox提供与生产环境高度相似的测试环境配置,包括服务器、数据库、负载均衡,确保在测试的问题最早被发现。
  • Secure lsolated Environment:安全隔离环境,每个项目独立运行在不同环境中,支持动态资源调整,满足不同阶段(如测试、性能压力测试、生产发布)的需求,且互不干扰。
  • Real-time Preview:实时预览,自动分配公网 URL,无需正式部署即可查看应用预览效果,实时代码更改可实时同步更新到公网地址。
  • Team Collaboration:团队协作,所有项目集中管理,团队成员可以便捷地查看、切换和维护多个项目,提供权限分配,确保不同项目和团队。

网络配置

端口配置、公网访问设置、域名设置。

架构

解读:

  • Controller:控制器,基于Kubernetes自定义资源定义(CRD)实现的,主要负责管理DevBox资源的生命周期。在controllers/devbox录下,主要包括:
    • DevboxReconciler:核心控制器,负责协调DevBox资源状态。主要功能包括:
      • Pod管理:根据DevBox规格创建、更新或删除Pod;
      • 服务管理:为DevBox创建Service,提供网络访问;
      • 状态管理:更新DevBox的状态信息;
      • 提交历史:管理DevBox的提交历史,支持版本回滚
    • CRD:包括Devbox(定义开发环境的规格,包括资源需求、运行时、网络配置等)、Runtime(定义开发环境的运行时,如编程语言、框架等)、DevBoxRelease(用于管理DevBox的版本发布)等
    • 控制器通过Kubernetes operator模式实现,监听DevBox资源的变化并进行相应处理,如创建、更新、删除Pod、Service等资源。
  • Frontend:前端,在frontend/providers/devbox目录下,使用Next.js框架开发,提供用户界面,允许用户创建、管理和监控DevBox实例。
  • Service:服务,在service/devbox目录下,提供一些辅助功能,如镜像标签管理等。

冷关机

冷关机,停止DevBox,是通过修改DevBox自定义资源的state字段来实现的。当用户请求停止DevBox时,系统会将其状态从Running更改为Stopped或Shutdown,然后控制器会根据这个状态变化来删除相关Pod。

整个流程包括:

  1. 前端用户界面提供关机选项
  2. 用户选择关机模式,普通关机或冷关机
  3. 前端调用API修改DevBox状态
  4. 后端API处理请求,修改DevBox资源的状态字段
  5. DevBox控制器监听到状态变化,执行相应的操作
    • 删除Pod
    • 对于冷关机,还会删除Service和修改Ingress
  6. 控制器更新DevBox的状态信息,反映当前的运行状态

这种基于Kubernetes自定义资源和控制器的实现方式,使得DevBox的状态管理变得简单而可靠,充分利用Kubernetes的声明式API和控制循环机制。

冷关机过程中各组件之间的时序交互图:

核心流程和各个阶段:

各组件之间的数据流和交互关系:

冷关机过程中的状态转换图:

Cloudflare

Cloudflare Pages

官网中文官网,一个面向前端开发者的静态网站和全栈应用部署平台,支持快速构建、自动部署、高性能交付和全球分发。提供无限站点、席位、请求和带宽,并支持HTTP/3、QUIC协议、图像压缩和SSL安全加密。通过构建缓存功能,可以加速后续构建过程,提高部署效率。

部署流程

  • 注册与登录:注册并登录Cloudflare控制台
  • 创建项目:在Pages控制台新建项目,选择Git仓库(如GitHub)并授权访问
  • 配置构建:设置构建命令和输出目录,如Hexo博客的构建命令为hexo generate,输出目录通常为public
  • 部署网站:保存配置后,Cloudflare会自动构建并分配默认pages.dev域名访问,也可绑定自定义域名并自动配置HTTPS
  • 更新内容:修改仓库文件后,推送到Git仓库即可触发自动重新部署

Cloudflare Workers

Cloudflare Pages专注于静态网站和SSR应用的快速部署和性能优化。

Cloudflare Workers,一个边缘计算平台、无服务器平台,可在Cloudflare的全球网络上构建无服务器函数和应用,无需配置或维护基础设施,通过世界各地超过335个数据中心部署到全球。

相比传统云服务器,Workers的部署速度更快、冷启动更低、全球延迟更均匀,免费额度非常慷慨。

优势

  • 提升开发人员生产力:直接从任何Git存储库部署到Workers,无需额外工具,在数小时而非数天内快速启动应用
  • 自动扩展:开发人员无需采取任何行动来增加计算能力,也不必担心应用接收的流量达到限制
  • 提高性能和可靠性:逐步自动将代码部署到最佳位置,以提高性能和可靠性

基于V8 isolates技术(Chrome浏览器的JavaScript引擎),而不是传统的容器或虚拟机。

对比项 传统Serverless(如AWS Lambda) Cloudflare Workers
启动方式 启动容器/VM 启动V8 isolate
冷启动时间 100ms-数秒 <5ms
部署位置 区域性(如us-east-1 全球300+节点
资源隔离 容器级别 V8沙箱
支持语言 多种 JavaScript/TypeScript/WASM

对比Vercel、Netlify

平台 优势 劣势 适用场景
Cloudflare Workers 冷启动最快、全球延迟最低、免费额度大 内存限制128MB、不支持完整Node.js API、边缘处理、轻量服务
Vercel Next.js深度集成、开发体验好 免费额度有限、冷启动较慢 Next.js项目、前端为主
Netlify Jamstack生态完善、部署简单 性能不如Workers 静态站点、简单函数

选型建议:

  • 使用Next.js→选Vercel
  • 需要极致性能和全球低延迟→选Cloudflare Workers
  • 做静态站点+简单后端→选Netlify或Cloudflare Pages

免费计划

资源 免费额度 说明
请求数 每天10w次 约每月300万次
CPU时间 每次请求10ms 足够大多数场景
Workers KV(键值存储) 读取10万/天、写入1000/天、存储1GB 轻量缓存足够
D1数据库 读取500万行/天、写入10万行/天、存储5GB 小型应用足够
静态资源 无限制 图片、CSS、JS等不计费
子请求 不计费 从Worker发起的请求免费

重点:每天10万次请求=每月约300万次,对于个人博客、小工具、API代理等场景绰绰有余。

适合场景

场景 说明 示例
API代理/网关 转发请求、添加CORS头、处理跨域 OpenAI API代理
URL短链接 轻量级的短链服务 自建bit.ly
边缘计算处理 图片裁剪、A/B测试、地理位置路由 根据用户位置返回不同内容
API服务 轻量级REST API 个人博客后端
Webhook处理 接收并处理第三方通知 GitHub/Stripe Webhook
静态资源加速 CDN+简单处理逻辑 图片处理、缓存控制
认证鉴权 JWT验证、OAuth中转 统一认证网关

不太适合场景

场景 原因 替代方案
长时间计算(>30s) CPU时间限制 使用Queues+Durable Objects
大内存应用(>128MB) 内存限制 使用传统云服务器
需要完整Node.js环境 不支持所有Node API Vercel Functions
数据库密集型应用 KV/D1有读写限制 使用外部数据库
WebSocket长连接 需要Durable Objects 付费功能

总结:

  • 适合Workers:请求处理时间短、无状态或轻状态、需要全球低延迟
  • 不适合Workers:重计算、大内存、复杂数据库操作

Wrangler

Cloudflare官方推出的命令行工具,用于开发、测试和部署Workers。

安装:npm install -g wrangler

执行npx wrangler login自动打开浏览器,登录Cloudflare账号并授权。

npm create cloudflare@latest -- demo-worker创建项目,按提示选择:

  • 选择"Hello World"示例
  • 选择"Worker only"
  • 选择JavaScript或TypeScript
  • 是否启用git:Yes
  • 是否立即部署:No(先本地测试)

项目结构

复制代码
demo-worker/
├── src/
│   └── index.js	# Worker代码
├── wrangler.toml	# 配置文件,或wrangler.jsonc
├── package.json
└── node_modules/

Workers KV

Cloudflare提供的键值存储服务。

创建KV命名空间:npx wrangler kv:namespace create "MY_CACHE"

wrangler.toml中绑定:

toml 复制代码
[[kv_namespaces]]
binding = "MY_CACHE"
id = "输出ID"

代码中使用:

ts 复制代码
export default {
  async fetch(request, env, ctx) {
    await env.MY_CACHE.put('key', 'value');
    const value = await env.MY_CACHE.get('key');
    await env.MY_CACHE.delete('key');
    await env.MY_CACHE.put('session', 'data', { expirationTtl: 3600 });
    return new Response(value);
  },
};

D1

Cloudflare提供的关系型数据库服务。

创建数据库:npx wrangler d1 create my-database

wrangler.toml中绑定:

复制代码
[[d1_databases]]
binding = "DB"
database_name = "my-database"
database_id = "输出ID"

执行迁移:npx wrangler d1 execute my-database --file=./schema.sql

代码中使用:

ts 复制代码
export default {
  async fetch(request, env, ctx) {
    const { results } = await env.DB.prepare(
      'SELECT * FROM users'
    ).all();
    // 带参数查询,防SQL注入
    const user = await env.DB.prepare(
      'SELECT * FROM users WHERE id = ?'
    ).bind(1).first();
    await env.DB.prepare(
      'INSERT INTO users (name, email) VALUES (?, ?)'
    ).bind('张三', 'zhangsan@example.com').run();
    return Response.json(results);
  },
};

Netlify

官网,专为现代Web项目的自动化构建、部署和持续托管而设计。

提供:

  • 持续部署:直接与Git仓库连接,自动构建和部署
  • 全球CDN:内容分发网络确保全球用户的快速访问
  • 自动HTTPS:免费SSL证书,确保网站安全
  • 无服务器函数:后端功能而无需管理服务器
  • 表单处理:内置的表单提交和处理功能
  • 身份验证:用户管理系统
  • 大型媒体优化:图像优化和转换

优势:

  • 简单:注册到部署第一个项目,通常只需要几分钟
  • 免费计划:个人项目和小型团队完全够用
  • Git集成:与GitHub、GitLab和Bitbucket的无缝连接
  • 预览部署:每个Pull Request都能生成一个独立的预览环境
  • 回滚功能:有问题一键回滚到之前版本
  • 本地开发工具:提供Netlify CLI,简化本地开发流程

netlify.toml配置文件,可定义构建设置、重定向规则、环境变量等:

toml 复制代码
[build]
  command = "npm run build"
  publish = "dist"

[context.production]
  environment = { NODE_VERSION = "14" }

[[redirects]]
  from = "/api/*"
  to = "/.netlify/functions/:splat"
  status = 200

[[headers]]
  for = "/*"
  [headers.values]
    X-Frame-Options = "DENY"
    X-XSS-Protection = "1; mode=block"

Netlify Functions提供无服务器函数,为网站添加动态功能,而无需管理服务器。基于AWS Lambda,支持JavaScript、TypeScript、Go等多语言。可用于处理支付、访问数据库、与第三方API交互,运行完整的无服务器应用。

集成CI/CD工作流,推送代码后,Netlify能自动构建和部署更新:

  • 开发人员提交PR
  • Netlify自动生成预览部署
  • 团队成员可以查看实际运行的更改
  • 合并后,生产环境自动更新

内置表单处理功能,无需后端代码:

ts 复制代码
<form name="contact" method="POST" data-netlify="true">
  <input type="text" name="name" />
  <input type="email" name="email" />
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
</form>

添加data-netlify="true"属性后,Netlify会自动处理表单提交,可在仪表板中查看所有提交内容,设置邮件通知。

Split Testing提供A/B测试能力:

  • 创建一个新分支,实现替代版本
  • 在Netlify仪表板中启用Split Testing
  • 选择要测试的分支和流量分配

提供环境变量功能,用于存储敏感信息(如API密钥)。

针对大型媒体文件,提供两个解决方案:

  • Netlify Large Media:使用Git LFS管理大文件
  • 内置图像转换API:动态调整图片大小和格式

性能优化技巧

  • 实施适当的缓存策略:利用Cache-Control头
  • 启用懒加载:特别是对图片和视频
  • 代码分割:减小初始加载包的大小
  • 预渲染关键页面:改善首次内容绘制时间
  • 利用Netlify Edge功能:在全球CDN边缘执行代码

Render

官网,功能强大的全自动托管平台,支持静态网站、Node.js、Python 等多种项目类型。适合海外用户,支持免费套餐。

使用Render部署应用的详细步骤。

  1. 准备工作
    确保项目在本地可正常运行。静态网站:如HTML、CSS或Vue、React打包后的项目。 动态网站:如Node.js(需package.json)、Python(需requirements.txt)。上传到GitHub和GitLab。
  2. 注册并登录Render
  3. 创建新服务
    • 静态网站,在控制台点击New按钮,选择Static Site。绑定Git仓库,选择项目分支。配置构建命令:如npm run build,点击创建静态站点,开始部署。
    • 动态网站:以Node.js为例,点击New按钮,选择Web Service,配置构建命令:npm install && npm run build,确保代码中使用process.env.PORT作为端口变量。点击Create Web Service开始部署。
  4. 自定义域名(可选):在项目设置中添加自定义域名,并根据提示配置DNS的CNAME记录。Render会自动申请免费HTTPS证书。
  5. 注意事项
    • 免费实例每月提供750小时运行时间,超过后服务会暂停至下月重置;
    • 若无访问请求,实例会在15分钟后休眠,下次访问时冷启动。

Zeet

官网,一款云原生开发者平台,旨在简化多云环境下的应用部署与基础设施运维。平台提供CI/CD流水线、Kubernetes集群管理、自动扩缩容与变更追踪,全部集中于统一仪表盘。可与GitHub、GitLab、Bitbucket等主流版本控制系统无缝集成,实现快速可靠的部署,支持滚动更新、手动审批与便捷回滚。多云支持让团队可在主流云服务商间无缝部署应用,提升可扩展性、可用性和成本效率。

主要功能

  • 集成式CI/CD:内置持续集成与部署,支持自动部署、手动审批、分支资源配置、滚动部署和回滚功能。
  • 多云Kubernetes管理:可在任意云上创建或导入Kubernetes集群,自动集成监控、弹性伸缩、日志转发及网络配置。
  • 统一开发者仪表盘:集中式平台,便于管理部署、查看日志与指标、配置自动扩缩容,并为工程团队提供自助服务功能。
  • 预览分支与临时环境:为功能预览创建临时环境,使相关方可在生产前测试变更。
  • 基础设施即代码与蓝图:通过官方及自定义蓝图,快速部署可复用的基础设施模板,加速应用搭建与扩展。
  • 无服务器与数据库部署:跨云部署无服务器函数和容器化数据库,配置简单。

试用场景

  • 云原生应用部署:开发者与DevOps团队可借助自动化CI/CD和Kubernetes编排,快速跨多云部署和管理云原生应用。
  • 多云战略落地:企业可通过Zeet将工作负载分布在不同云服务商,提高延迟表现、可用性与灾备能力。
  • 基础设施自动化:利用Zeet的基础设施即代码与蓝图,实现自动化资源配置和扩展,减少手动云管理负担。
  • 功能测试与协作:团队可为功能分支创建临时环境,协作预览和验证变更,确保生产发布前质量。
  • 无服务器应用部署:可直接从代码仓库部署无服务器函数,无需手动管理云控制台或扩缩容。

Hetzner

官网,1997年成立的德国老牌服务商,优势在于性价比高。

目前有4个数据中心:

位置 代号 特点
纽伦堡(德国) NBG1 老牌节点,欧洲核心
法尔肯施泰因(德国) FSN1 独服拍卖主力
赫尔辛基(芬兰) HEL1 北欧节点
阿什本(美国东部) ASH 2021年新增,性价比碾压美国本土厂商

核心产品线:

  • Cloud(云服务器):按小时计费的 VPS,本文重点
  • Dedicated(独立服务器):物理机直租,性能怪兽
  • Server Auction(服务器拍卖):二手独服荷兰式拍卖,捡漏神器
  • 存储、负载均衡、DNS 等:生态齐全

API和自动化:

  • 完善REST API+CLI工具(hcloud)
  • Terraform Provider官方支持
  • Ansible、Pulumi等IaC工具生态完整

控制面板:

  • 干净、快速、不花哨
  • 30秒内开机
  • 防火墙、快照、负载均衡一站式管理

注意事项:

  • 并不适合中国用户。因为没有亚太节点,美东节点到国内延迟200ms+,欧洲节点更高;
  • 注册审核严格,门槛略高,需护照、世界信用卡、人脸核验、

参考