Ruby云实例能否处理与节点实例相同的流量?

Ruby云实例能否处理与节点实例相同的流量?,ruby,node.js,content-management-system,scalability,Ruby,Node.js,Content Management System,Scalability,我们将致力于为一个电视频道改造一个基于cms的网站,我们希望该频道每月至少能服务1000多万个独立用户,约4亿多个请求,平均每月40 TB的带宽,这是他们旧网站的CloudFlare统计数据,他们期望的甚至更多 团队堆栈主要是ruby/rails,前端使用react,因此我们计划将后端构建为rest API,为cms管理面板提供前端react和另一个react应用程序,我们在ruby和node之间争论,有人说node更快,在资源消耗方面更便宜,Ruby会比node高效吗?Ruby云实例能否处理与

我们将致力于为一个电视频道改造一个基于cms的网站,我们希望该频道每月至少能服务1000多万个独立用户,约4亿多个请求,平均每月40 TB的带宽,这是他们旧网站的CloudFlare统计数据,他们期望的甚至更多


团队堆栈主要是ruby/rails,前端使用react,因此我们计划将后端构建为rest API,为cms管理面板提供前端react和另一个react应用程序,我们在ruby和node之间争论,有人说node更快,在资源消耗方面更便宜,Ruby会比node高效吗?Ruby云实例能否处理与node实例相同的流量?关于转移到node是否值得,有什么建议吗?

node之所以能够处理如此高的吞吐量,是因为它具有高度并行的特性,而且JS JIT经过了难以置信的优化,可以做一些ruby无法增加的性能提升,想要更高的性能吗?只需让它运行更多线程。 您可以使用Puma这样的Web服务器进行同样的操作,并将其配置为使用更多线程运行,但最终它仍然是基于ruby的

您可以使用更小的框架,比如前端使用sinatra,后端使用grape,更小意味着更轻,因此负载更少。 也可以使用apache进行静态资产分发或完全卸载到静态资产服务器。此外,如果你能够用较低级别的语言编写性能关键组件,如C、C++、Rust等。 最后,你可以尝试具体的ruby优化,我不知道我的头脑,但我肯定他们存在,尽管我不能说你会从他们那里得到多少


至少在Ruby 3.0出现之前,Ruby本身的速度不会很快,我不确定它什么时候会出现。

通常CMS应用程序大量使用缓存,我的意思是,99.999%的请求必须由Apache/Nginx或专用缓存服务器缓存和服务。因此,web框架的性能并不重要


如果不在中等硬件上缓存该级别的负载,则会给Node和Rails带来很多麻烦。对于Rails来说,这种负载(400M/mo=150rps,平均+10–100x峰值)需要相当多的专用服务器。节点的速度应该快2-5倍,这取决于您的请求的SQL负载量。

因此,一般来说,Ruby需要的服务器或云实例数量至少是节点所需数量的两倍,以防它们都被正确调整?当然,可能会超过两倍。