Kamal 2 部署 Rails app 初步体验
hugo
23 Oct 2024
一直想测试一下 Kamal 部署 Rails app 的方式,刚好 10 月初 Kamal 更新了 2.0 版本,就抽了时间体验了一下 kamal 部署 Rails app,看看有哪些优点和缺点。
部署的网站
production: https://kamal-demo.beansmile-dev.com/
staging: https://kamal-staging.beansmile-dev.com/
部署用的服务器只够买了一个月,所以后面就会停止访问。
目前缺点
- Kamal 2 版本是10月初才更新的,官方文档的说明比较笼统,遇到部署问题,搜出来的网上资料,全是 kamal 1 版本的文章,2.0 新版参考资料很少。
- Kamal 构建镜像推送到 Docker Hub,Docker Hub 免费版只支持 1 个 private repo。个人付费版本需要 7 美元每月,Team 版年付是 9 美元每人每月。如果后续一些新项目使用 kamal 部署,则需要再额外维护一个 self hosted Docker Hub 服务,以托管 docker 镜像。
- 新旧项目不同的部署方式,会增加运维负担。
- 额外引入了 docker,增加了学习成本。并且 Docker Hub 在中国大陆地区访问受限,拉取镜像不方便。
优点
- 不需要手动配置裸机服务器,只需要更新 deploy.yml 文件,对应的底层依赖在部署时就会安装。
- 依赖全部集中在 docker 里,环境一致性好,能避免 macOS 的 Intel 和 Arm 架构差异导致的配置灾难。
- 方便横向扩展,新增机器只需要购买服务器,然后在 deploy.yml 里添加新的 IP 地址,再执行 setup 命令即可。免去了很多配置新服务器的时间。