对于 Rails 来说,没有 PaaS 真的是个好主意吗?

主要观点: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 未完全取代平台的价值。
阅读 5
0 条评论