Ruby on Rails 8.0 发布,引入 Kamal 2 以改进部署。

最近,Ruby on Rails 推出了版本 8,引入了旨在简化部署、增强性能和减少依赖性的更新。

Ruby on Rails 的创建者、37signals 的共同所有者兼首席技术官David Heinemeier Hansson在一篇博客文章中宣布了这些重大增强功能。 Rails 8 包括 Kamal 2,这是一种部署工具,允许开发人员轻松地将应用程序部署到云虚拟机或本地服务器。只需一个kamal setup命令,开发人员就可以快速配置生产服务器。此功能使用 Dockerfile来生成生产就绪的容器映像,从而无需使用 Nginx 等额外的 Web 服务器。

Dockerfile 包括Thruster,这是一个用于 X-Sendfile 加速、资产缓存和压缩的新代理。这进一步使得 Rails 容器开箱即用,可以连接互联网。

Kamal 2 还引入了 Kamal Proxy,取代 Traefik 作为默认代理。它支持零停机部署、通过 Let's Encrypt 实现的自动化 SSL 证书以及在单个服务器上托管多应用程序 - 所有这些都无需复杂的配置。此外,Kamal 2 还提供与 1Password 和 Bitwarden 等密码管理器的内置集成,以实现安全的秘密管理,并包含用于远程命令执行的别名。

为了简化部署所需的辅助服务,Rails 8 引入了三个基于 SQLite 的适配器。  Solid Cable取代 Redis 进行 WebSocket 消息中继,提供数据库内消息存储以实现高效调试。  Solid Cache利用磁盘存储来提供经济高效且可扩展的缓存解决方案。它支持更大的数据集和加密和保留策略等高级功能。  Solid Queue将作业队列直接集成到 SQLite 或其他数据库中,从而无需使用 Sidekiq 等单独的作业运行框架。它支持并发控制、失败重试和作业调度等强大功能。

Rails 8 取代了旧的 Sprockets 系统,并引入 Propshaft 作为新的默认资产管道。 Propshaft 通过将资产管理简化为两个核心功能,与 Rails 的 #NOBUILD 理念保持一致:为资产提供加载路径,并用摘要标记它们以实现缓存友好的过期。这种方法灌输现代 Web 开发实践,同时保持与现有应用程序的 Sprockets 的向后兼容性。

技术社区对 Rails 8 表示欢迎,因为我们在 LinkedIn 和 Hacker News 上看到了引人入胜的对话。 Hansson 在 LinkedIn 上发布的公告获得了 1,308 条反应,社区称赞 Rails 8 是游戏规则的改变者,并且 不依赖定制托管

对于不是 Ruby 开发人员的人,Hacker News 社区成员之一 faizshah建议 观看 Hansson 的 Rails World 演讲的前半个小时关于 Rails 8 的内容,并进一步指出,

Rails 8 的想法是摆脱趋势跟踪,并尝试拒绝一些在行业中流行的想法(例如害怕接触 Linux 服务器或实现自己的身份验证)。真是发人深省的东西。

从身份验证方面来看,Rails 8 将身份验证工具整合到一个生成器中,该生成器创建一个具有密码重置功能的完整的基于会话的系统。通过运行bin/rails generate authentication,开发人员可以快速设置基本模型(例如,,UserSession,控制器(例如,SessionsController)和邮件程序(例如,PasswordsMailer)。此功能简化了安全身份验证实施,无需依赖第三方解决方案。

Rails 8 删除了其组件中已弃用的功能。已弃用的配置(例如config.read_encrypted_secretsActive Record 中的旧方法,例如对未注册数据库适配器的支持)现在已被消除。此外,操作视图中已弃用的行为(例如传递nilto form_with)也被删除。

Rails 8 还通过为正则表达式设置默认超时Regexp.timeout来降低拒绝服务风险,从而提高了安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值