文章发布在:真的是良心云服务吗?Railway容器托管平台体验 | Asher的博客,欢迎使用RSS订阅最新更新
railway官方地址: railway.com/
1. 写在前面
当你看到只要每个月5美元,就能给每个服务提供8 GB RAM / 8 vCPU的环境,是不是很激动?更别说这5美元按照官方的说法,还有100GB的存储空间。
这是我在开通他们服务之后显示拥有的权利
我说停停,事情真没有你想的这么美好。
2. 快捷的数据库部署
当你想要部署一个数据库服务时,真的非常简单。直接在工作空间中右键就能部署
而且可选择竟然还有redis, MongoDB
第一次体验时确实感觉不错,只需要简单几步就能完成部署。而对应的密码则显示在Variables
3. 数据库部署的国家只能是USA
这是在开通了Hobby Plan后也是如此,只有Pro计划以上才能更改。
而国内连接USA的数据库速度延迟基本都在170ms以上了,除非你的服务器也在香港,延迟大概在40ms左右。
而这就引出后面这个问题,你会想自己建一个postgresql 服务,然后指定region,因为自己选择镜像部署的是可以选择新加坡的机器的。
4. 很难自定义部署一个期望的数据库服务
在使用docker部署数据库非常简单,以postgresql为例子。命令如下:
docker run -d \
--name postgres \
--restart=always \
-e POSTGRES_USER=xxx \
-e POSTGRES_PASSWORD=xxx \
-v ~/postgresql/data:/var/lib/postgresql/data \
-v ~/postgresql/config:/etc/postgresql \
-p 5003:5432 \
postgres:16.0
而当你看到Railway上有docker image的选项, 会以为能自己部署一个足够自定义的postgresql,然后配置一下变量就行,但是实际搞不了。
实际的操作中,服务能够起来,但是我发现的就有两点就很容易被忽略:
- 你要创建一个Volume挂载到postgres
- 你要在postgres指定对应的Volume
- 配置的变量不止docker run运行时仅需的
POSTGRES_USER,POSTGRES_PASSWORD那么简单
以及你会发现完全无从下手去连接这个服务,在设置界面配置了端口:
但是实际连接不了,而服务是已经启动的状态,因为配置的变量还需要这些:
那么即便配置了这些变量就能连接吗?这是个未知数,因为下面这个问题更让人难受
5. 数据库挂载卷最多只能5GB
这一点就很拉胯,明明官方说明有100GB的共享磁盘,但是数据库实际只能挂载5GB??
如图右下角限制了挂载磁盘容量不能超过5GB
这就像是老板答应给你发5个月的年终奖,结果年底到手一看,嘿怎么只有一个月的。你猜怎么着,老板说:另外4个月的替你存起来。
搜了一下之后发现,原来别人也发现了这个问题。 5 GB or 100 GB disk on the HOBBY plan ?
对此他们的解释是:
卷的容量限制为 5GB,卷是用于持久存储的。你所说的 100GB 是用于 empherial 存储的。数据库需要在重新部署之间持久保存数据,因此需要使用卷。
这很明显就是故意为了让用户选择pro套餐而设置的门槛,让人真的非常膈应。
另外redis、mongo也是如此:
6. 竟然还能部署SpringBoot服务
Railway除了数据库,也提供了很多已经做好的模版服务,那么作为Java程序员,一搜SpringBoot就发现了。
实测确实是可以启动的,日志如图:
当然嘛,请求速度感人。你可以使用这个接口测试,在2025年4月1号前都有效:javaspringboot-develop.up.railway.app/
其他的template也有各种各样的服务,甚至还有kali Linux
7. 8H8G可能会更快烧光你的钱钱
倒不是说Hobby Plan给到用户8H8G是个错误的方案,毕竟用户可以自己对每个服务设置使用的资源。
但是Hobby Plan每个月只有5美元的额度,确实还是有点捉襟见肘,稍微部署多点服务就容易超过这个限额。
我在只部署了postgresql和一些测试服务的场景下,3月10号到3月15的计费用量:
预计到月底使用的费用大概是1.74美元。
那么5美元大概能部署两个半的postgresql,而如果不考虑费用限额,8H8G的服务器其实可以部署很多的应用。