云迁徙记录: 从腾讯云云服务器到雨云云应用
前迁移历史
从2016年10月起,酒植就开始成为了 Vultr / 腾讯云 / 百度云 / 阿里云 的 抠搜学生用户,逐渐经历了下面的过程:
- 小白入门阶段,此阶段作者的目标是
一直组乐队建立一个小团体的功能性站点,在某位不愿透露姓名的群主的资助下开展了行动。此阶段主要是用 Vultr 的服务器搭建 LNMP 环境 + WordPress 应用 + MIDI 插件,此阶段 5美元/月 的 1vCPU+1GB内存 的示例能够满足需求 - 小白摸索阶段,此阶段作者接触了一些低代码/零代码构建APP/网站的服务,品牌已经忘记,但是其提供 Java 环境和对应的 APK 产物,作者尝试将其部署到 Vultr 的服务器上,结果由于内存不足导致OOM,遂进行升级,使用了硅云的云服务器。该服务器一直服务到作者高中毕业(P.S. 别买,超卖很严重,服务非常差,在知乎下评价还被举报修改😅)
- 职业入门阶段,作者高中毕业后选择了某末流学校的计算机专业,在高考暑假托亲戚关系在本地找了个ERP代理商的暑假工岗位,给老板维护营销网站和ERP/CRM系统。该公司使用腾讯云云服务器,作者在此阶段0-1接触了站点上线的全流程,包括域名、备案、数据库、网站、Nginx/Apache、SSL、CDN等
- 职业成长阶段,作者在大学期间,加入了某不知名实验室,进行XCPC比赛训练,后来成为了负责人(之一)。在此期间实验室有招新、练习、会议、总结,实验等需求。在此期间作者采用了混合云的模式,使用腾讯云+本地服务器集群的方式,公网环境和内网环境互相集成,部署了 Vijos训练平台,GitLab/Gitea代码托管平台,Hadoop实验平台,Drone构建平台等
- 职业成熟阶段,作者在大学毕业后,加入了某不知名游戏公司,在工作之余探索各类组件的集成与使用。此阶段使用混合云模式,使用腾讯云为主+其他云服务商的云服务器,在上海、江苏、浙江、香港、新加坡等地部署了多个服务和站点,包括自研AI-Agent,OpenWebUI,个人站点以及配套的Zitadel认证网关,1Panel面板集群,NapQQ/ZeroBot机器人应用,配套的Grafana+Prometheus+Loki+Cadvisor等观测组件,MinIO与Cloudreve文件存储组件,Gitea+Gitea Action Runner+Docker Registry的持续构建持续集成组件等
为什么要迁移
成本对比
此处针对 个人博客/小型站点/多组件站群 三个场景对应的服务器规格进行比较:
- 个人博客: 此类站点多数由一个数据库(如MySQL/PostgreSQL),一个网站应用(如Hexo/Wordpress),一个网站服务器(如Nginx/Apache),以及一个服务器面板(如1Panel/宝塔)构成
- 小型站点: 此类站点相较个人博客新增了一些组件,如非关系存储(Redis),对象存储(MinIO),多网站应用等
- 多组件站群: 此类网站在小型站点的组件基础上,增加了开发、运维使用的各类组件,如DevOps组件(Gitea/GitLab/Drone/Registry等),观测性组件(Prometheus/Grafana/ELK套件等),网关/认证组件(Apisix/Logto/Auth0等)
服务商 | 规格 | 带宽 | 流量 | 地域 | 购买价 | 备注 | 划分场景 | SLA |
---|---|---|---|---|---|---|---|---|
腾讯云 | 2核2G | 4M | 300G | 国内 | 99元/年 | 限购一个 | 个人博客 | 无 |
阿里云 | 2核2G | 3M | 不限 | 国内 | 99元/年 | 限购一个 | 个人博客 | 无 |
雨云 | 2核2G | 100M | 1024G | 国内 | 289.3/年 | 流量可叠加 | 个人博客 | 无 |
腾讯云 | 2核4G | 6M | 600G | 国内 | 199元/年 | 限购一个 | 小型站点 | 无 |
阿里云 | 2核4G | 1M | 不限 | 国内 | 531.79元/年 | 新人专享 | 小型站点 | 无 |
雨云 | 2核4G | 200M | 1024G | 国内 | 327.7/元年 | 流量可叠加 | 小型站点 | 无 |
腾讯云 | 4核8G | 10M | 1500G | 国内 | 630元/年 | 限购一个 | 多组件站群 | 无 |
阿里云 | 4核8G | 1M | 不限 | 国内 | 955.58元/年 | 新人专享 | 多组件站群 | 无 |
雨云 | 4核8G | 300M | 1024G | 国内 | 472.4元/年 | 流量可叠加 | 多组件站群 | 无 |
我们可以看到,腾讯云和雨云在不同的侧重点下是相对较优的服务商:
- 腾讯云:在各规格的服务器中均有较高的性价比,缺点是带宽较低
- 雨云:在带宽方面遥遥领先,且在高配置实例中具有较高的性价比,缺点是在配置较低时性价比不高(因为公网IP独立计费,且价格固定)
结合实际使用场景,最终选择雨云作为主要的云服务商。
资产盘点
在决定迁移前,作者计算了维护云服务的开销与云资源的使用率:
服务器标识 | 类型 | 提供商 | 规格 | 用途 | 成本 | 使用率 |
---|---|---|---|---|---|---|
浙江A | 云服务器 | 雨云 | 4核8G-200M | 应用网关、应用部署 | 58元/月 | <=20% |
浙江B | 云服务器 | 雨云 | 4核4G-100M | 基建支持(Loki/MinIO/Grafana等) | 39.2元/月 | <=30% |
香港 | 云服务器 | 雨云 | 2核2G-50M | 应用网关、无备案站点 | 16.1元/月 | <=60% |
上海A | 云服务器 | 腾讯云 | 4核4G-5M | 备案站点、跳板 | 199元/年 | <=10% |
上海B | 云数据库 | 腾讯云 | 1核1G | MySQL生产数据库 | 59元/年 | <=10% |
江苏 | 云服务器 | 樱花云 | 4核16G | 内存消耗服务(Java) | 50元/月 | <=40% |
广东 | 物理服务器 | N/A | 80核384G | 大模型推理 | 约80元/月 | =0% |
大部分情况下,服务器规格均过高,无需使用到如此高规格的实例。但是在部分极端情况下,如应用编译、镜像构建,大模型推理等场景,如果选择低规格实例,则这些应用根本就无法启动,直接CPU占满或者OOM导致服务器不可用。
前不久上线的 雨云云应用 则刚好解决了这一问题:
我们并不需要购买完整的服务器实例,并以服务器为单位进行SRE与应用部署,我们只需要购买集群中部分算力的使用权即可,按照我们使用集群的算力进行付费。在日常情况下,只需要让容器实例在最低可用配置下运行,大幅减少空载成本;在高负载情况下,对容器实例进行升级,应对少数情况下的突发压力。
经过规划与实践,最终决定将 浙江A
,浙江B
,上海B
,江苏
等服务器进行归还销毁,将其中的服务迁移到雨云云应用平台上。迁移后的云应用平均月支出约为24元,节约了128.1元/月,将这部分的服务成本压缩了84% 。
迁移过程
此部分内容较多,作者整理了云应用从入门到进阶的场景,分以下三篇文章分别叙述: