主要观点:Rails 8 提出“无需 PaaS”的大胆前提,通过一系列改进减少外部基础设施依赖,可让开发者用更少服务依赖部署和运行应用。
关键信息:
- 传统部署 Rails 应用需配置数据库服务器等,Rails 8 希望用应用数据库解决缓存、任务队列和实时 WebSockets 等问题。
- 新增 Solid Cache 可替代 Redis 或 Memcached,利用数据库存储缓存数据,节省内存且空间大、成本低,默认使用 SQLite 作为缓存。
- Solid Queue 是新的 Active Job 后端,无需 Redis 或 Sidekiq 等依赖,将任务队列集成到数据库中。
- Solid Cable 是新的 Action Cable 适配器,利用数据库实现实时 WebSocket 功能,无需 Redis 服务器。
- 移除对 Redis 的依赖有诸多好处,如减少复杂度、降低成本等,Rails 8 也拥抱 SQLite 作为生产数据库。
- Kamal 2 是部署工具,可将应用部署到 Linux 服务器,简化部署流程。
- “无需 PaaS”并非绝对,对于小型团队,可能更适合专注于产品而将基础设施交给平台。
重要细节: - 在 37signals 中,从 Redis 切换到 Solid Cache 使缓存扩展到 10 + 泰字节,渲染时间降低 50%。
- Solid Queue 将任务存储为数据库表中的记录,可嵌入 Rails 网络进程或单独的工作进程。
- 部署应用时,配置 Kamal 后只需一个命令即可完成部署,实现零停机部署。
- 作者部署 hobby 项目时,虽部署过程相对顺利,但初始设置仍较繁琐,认为 Rails 8 未完全取代平台的价值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。