906 字
5 分钟
迁移上云,4202年个人部署

缘起#

本博客自16年开站以来,已有8年历史。这期间技术日新月异,云计算大有发展,当年先进的部署方法已渐渐过时。决定按照如今最新潮方法迁移上云。

历史部署#

现时点在一台 VPS 上 docker 部署各服务。

回顾再早的传统部署方法:在 VPS 上直接安装各种应用,会在机器产生大量依赖,若想删除就十分不便。而 docker 封装了各应用,启动删除十分轻松亦不影响宿主机,相较传统部署更为先进。这样安装新应用时只需处理端口转发,因此使用至今。

因为部署容易就没管宿主机,导致宿主系统版本停留在当年版本,一些新 docker 镜像已不支援,不得不寻找方案。若要升级系统,🐦了这么久,想必是要出问题,不如全新安装。

现今方案#

活用运维经验想到 k8s 可以方便在各节点迁移部署,若要更新节点系统就只需驱逐到新节点,更新旧节点即可。观察各家☁️服务大抵是为商业服务,k8s 价格对个人十分不友好。联想到 heroku 这种部署服务,一看近年新出许多家,如 fly.io(2017年)、 railway.app(2020年)、 pikapods (2021年)等。另有数据库服务 supabaseneon tech 等。这种 PaaS 平台价格倒是适合个人,两两组合可以启动一个应用了。

选型#

部署服务#

先考察部署服务,pikapods 最为简单,railway 次之,fly.io 有学习成本。

pikapods 官方选取一些应用封装,低至1刀/月一键部署,适合小白不懂运维配置又想自部署。但自由度低,官方不支援的应用就没得。

railway 可以自选部署,亦有web界面创建应用,而 fly.io 需要使用命令行工具。但 railway 支援区域较少,只有🇺🇸🇸🇬,而 fly.io 区域广泛,有临近的🇯🇵,适宜使用。

数据库#

考察数据库,supabase 与 neon tech 对免费用户都有提供 500MB 空间,但 supabase 2 Core shared CPU • 1 GB RAM 高于 neon tech 0.25 vCPU, 1 GB RAM,亦有提供🇯🇵区,这样恰好与 fly.io 同区降低延迟。

迁移 miniflux#

miniflux 是一个 RSS 阅读器服务,使用 go 编写,需要一个 postgres 数据库。go 应用资源消耗低适合 fly.io 免费用户启 256 MB 机器。

这篇讲解部署,安装命令行工具生成 toml 配置,后 deploy 上去。乍看命令行复杂,细看命令与 docker 命令接近,可以运用 docker 经验难度降低。

上文直接使用 fly.io postgres 服务,这里使用 supabase 数据库,就不按数据库一段,自行在 secret 中写入 DATABASE_URL。若要使用自己域名,在 BASE_URL 写入自己域名,部署后得到 IP 配置 DNS 后用 flyctl certs add YOUR_DOMAIN 配置证书即可访问。

结语#

按步骤部署没遇到大问题,应用启动迅速,主要用在学习命令。部署之后亦不需管宿主系统升级,配置端口转发等,相比 docker 部署更加省事。

考察云服务发展历史,在17年 k8s 开始火爆,后来又结合 CI/CD 管道部署的 GitOps。特别是微软开放 github action 给免费用户后,免费用户亦可享受自动化部署。不巧建站时没赶上这段发展,现今直追亦不晚。其他一些网页、应用将在近期陆续迁移至其他服务,最终达成全部上☁️。

迁移上云,4202年个人部署
https://blog.ckyol.moe/2024/04/02/moveToPaaS/
作者
ckyOL
发布于
2024-04-02
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...

最后更新于 ,距今已过 892

部分内容可能已过时