跳到主要内容

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

railway官方地址: https://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,因为自己选择镜像部署的是可以选择新加坡的机器的。

提示

后续发现 Hobby Plan 也可以更改服务部署的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号前都有效:http://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的服务器其实可以部署很多的应用。

8. 深度体验后记

在我深度体验半年之后,Railway 给我的感觉仍然是不如买传统的VPS。

其中给我强烈想要迁出 Railway 的有下面几个:

8.1 最难受的一点莫过于容量限制

那5GB的限制就像是达摩克利斯之剑,总是会让你觉得很快就填满了,而一想到明明官方说好的100GB容量,那么愤满感就涌上来,你只会觉得自己是个大冤种。

8.2 不容忽视网络流量费用

在昨天下午的时候,产生了非常巨大的数据库出口流量,你可以看到甚至高达了5GB。

那么这个出口流量是怎么来的呢?

仅仅只是因为下面这个查询SQL, 有个定时任务,每2分钟查询一次,而那张表只有7967 条记录,当晚上我检查到这个流量时,觉得很不可思议,就这么点数据,出口带宽这么高??

而也因为这段时间的流量,直接就产生了1美元多的费用。如果你还记得 Hobby Plan 每个月的额外只有5美元,也就意味着如果我没有发现这个流量产生的费用, 那么到明天早上这5美元可能就已经用了一半了。而那个月我所有的服务只有1台redis,一台postgresql

8.3 延迟感人

即便我用的是最近的新加坡节点,香港服务器连接 railway redis 节点,最低的耗时也要70ms,这对本地部署一个redis来说实在是翻了十几倍,甚至不止。而要是你部署在railway 美国节点,那么时间更是达到了秒级。

如果是数据库postgresql呢?那很抱歉,数据库速度还不如把数据库用 Cloudflare Hyperdrive 再套一层,使用Cloudflare Hyperdrive再提供restful接口大概300ms+

而香港服务器直连新加坡postgresql节点,延迟来到了600ms ~ 1300ms

8.4 食之无味,弃之可惜

那 Hobby Plan 5美元的额度真的是会让你用的束手束脚,总是会让我担心多部署一个服务是不是很快就会超出5美元,即便我知道他们有着详细的费用清单。 但是你知道吧,心里那种没底的感觉,会让你畏首畏尾,毕竟要是费用起飞,那么等到账单的时候,那种心脏骤停的感觉可不是闹着玩的。

Railway 的云服务给我的感觉,就像是一台外观漂亮、操作流畅的跑车,可是油箱极小,油价又贵,你不敢随便踩油门——明明引擎能飙到200码,你却只能小心翼翼地开在50码以下。

功能上它确实“该有的都有”,部署、日志、监控、变量管理都很顺手,甚至 UI 做得比很多老牌云服务都干净。但一旦你真想把它当主力生产环境来跑,就会发现延迟、带宽和计费模型共同构成了一个“隐形天花板”。

你会犹豫着:是该在这里多开一个实例,还是干脆把任务挪回本地?是该用它的数据库,还是老老实实自己买台便宜 VPS 搭? 这种体验就像餐桌上的那盘菜——闻着香,尝一口也还行,但吃多了就腻,扔掉又觉得浪费。最终它更像是一个“用来试验新想法的游乐场”,而不是“长时间托付业务的可靠工厂”。