以编程语言Ruby编写的网页应用框架Rails 8即将发布,官方先在Rails World大会公开多项新版本亮点。Rails 8的新功能包括简化部署流程、减少外部服务依赖,以及强化SQLite在生产环境中的使用。Rails 8的更新重点在于通过Kamal 2、Solid Adapters以及内置工具的改进,降低应用部署门槛,使开发者能够更快速地将应用程序推向生产环境。
Rails 8通过集成Kamal 2和Thruster,提供开发者更加简单且高效的部署解决方案。传统应用程序部署过程通常牵涉多个外部服务和复杂配置,而借由使用Kamal 2,开发者只需要运行单一指令,就可以将全新的Linux主机快速配置成应用服务器,官方指出,整体部署时间可缩短至两分钟以内。
Rails 8内置的Docker支持和经过改进的Dockerfile,让开发者可以简单地将应用程序打包成容器,以符合生产环境的需求。新的Dockerfile采用Thruster代理,可直接在Puma前端提供加速和资源管理,用户不再需要在网页服务器前架设Nginx等代理服务器,默认的Rails 8容器已准备立即接受来自网络的流量。
Kamal 2专属代理服务Kamal Proxy则实现了多应用支持、零停机部署和Let’s Encrypt自动化SSL凭证配置,减少开发者在应用部署过程中的繁琐工作。Kamal 2也调整了机密信息管理策略,内置集成1Password、Bitwarden和LastPass。而这些新功能让Rails 8能够提供完整解决方案,处理应用程序在生产环境中的部署和营运。
Rails 8还加入了Solid Cable、Solid Cache和Solid Queue三个全新Solid Adapters,取代外部服务相依性。Solid Cable取代Redis作为WebSocket消息中继服务器,主要负责WebSocket的信息传递,通过轮询方式将应用消息传递给不同的客户端。
而Solid Cache则是取代Redis或Memcached缓存HTML片段,借由使用磁盘而非内存进行存储,提供更大且成本更低的缓存空间。Solid Queue不仅取代了Redis,也取代Resque、Delayed Job或Sidekiq等开发者常用任务运行框架,支持高性能任务调度,不只是PostgreSQL、MySQL,现在也可运行于SQLite之上,降低部署的复杂性。
Rails 8的三个Solid Adapters可减少应用对外部服务的相依性,让部署变得更简单。借由使用SQLite作为后端存储,开发者便不再需要使用Redis、Memcached等服务,这让小型应用或是刚起步的项目,可以快速部署到生产环境,而不用考虑复杂的服务器架构。
虽然Rails 8.0仍在Beta 1的阶段,但是已经在Shopify、GitHub等大型应用中经过广泛测试,此外,新的部署工具、Solid Cache和Solid Queue也已在37signals的Basecamp和HEY等应用中运行超过18个月,足以证明其稳定性。



2024-10-01
