真的是良心云服务吗?Railway容器托管平台体验

551 阅读4分钟

文章发布在:真的是良心云服务吗?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的服务器其实可以部署很多的应用。