Rails 7.1正式リリース。本番デプロイ用のDockerfile自動生成、遅いクエリの非同期化など新機能

今回は「Rails 7.1正式リリース。本番デプロイ用のDockerfile自動生成、遅いクエリの非同期化など新機能」についてご紹介します。

関連ワード (柔軟性、正式、設計等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Ruby言語によるWebアプリケーションフレームワークの最新版となる「Rails 7.1」正式版がリリースされました。

Rails 7.1: Dockerfiles, BYO Authentication, More Async Queries, and more!https://t.co/c32MdUifNs

— Ruby on Rails (@rails) October 5, 2023

メジャーバージョンアップとなったRails 7の登場が2021年12月。

Rails 7は、フロントエンド開発環境が刷新されてNode.jsを用いない構成がデフォルトとなり、TurboとStimulusという2つのフレームワークを搭載したHotwireなどが搭載されるなど、大型のアップデートでした。

そこから約2年が経過し、今回のRails 7.1正式リリースとなりました。以下に主な新機能を紹介しましょう。

Dockerfileの自動生成で簡単にDockerでデプロイ可能に

新規アプリケーションを作成すると関連するDockerfileが自動作成され、Dockerのビルドやデプロイが簡単にできるようになりました。

生成されるDockerfileは、適切なキャッシュレイヤー、イメージサイズを最小化するための多段階ビルド、そしてJavaScriptのビルド環境の有無にかかわらず必要なすべての依存関係などを含んでおり、本番環境で利用するためにチューニングされています。

集計を伴うような遅いクエリの非同期化

Active Record APIにおいて非同期クエリのサポートが拡張され、件数を数えるcountや結果を合計するsumなどの集計を伴うような遅いクエリを非同期化できるようになりました。

これによりクエリ処理のパフォーマンスを大幅に効率化できるようになりました。

対象となる主な集計クエリは、count、sum、minimum、maximum、averageなどです。

新しいデータベースアダプタ「trilogy」搭載

Ralis 7.1では、データベースに接続するためのデータベースアダプタとしてGitHubが開発した「Trilogy」を搭載するようになりました。

Railsは現在、データベースアダプタとして「mysql2」を採用していますが、TrilogyはRuby VM環境に組み込んだときに効率的に動作するように特別に設計されたデータベースアダプタとして、ブロック中のシステムコールに対する特別な処理や、動的メモリ割り当ての意識的な利用などの機能を備えています。

同時にmysql2よりも性能、柔軟性、アプリケーションへの組み込みやすさが向上しており、すでにGitHubとShopifyの本番環境で使われています。

Railsの次のメジャーバージョンからは、おそらくTrilogyがデフォルトのデータベースアダプタになるだろうと説明されています。

アクティブレコードで複合プライマリキーをサポート

アクティブレコードで複合プライマリキーがサポートされるようになりました。

Shopifyは複合プライマリキーを利用することで一般的なクエリのパフォーマンスを最大で5~6倍向上させ、低速なクエリの数を80%削減したと説明されており、それがRails 7.1でのアクティブレコードの複合プライマリキー採用につながったと説明されています。

ただし複合プライマリキーを採用することで、インデックスの作成が複雑になることから対応するテーブルへのデータ挿入が遅くなるという副作用があることには気をつけなくてはなりません。

複合プライマリキーは、データの挿入より読み取り処理が多い大規模なテーブルでは非常に効果的だとされています。

JavaScriptランタイムとしてBunをサポート

そのほか、JavaScriptランタイムとしてBunのサポート、独自の認証システム開発を容易にする新機能など、多くの新機能が追加されています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
米国防総省、クラウド構築事業でAWSなど大手4社と契約–90億ドル規模
IT関連
2022-12-10 09:14
マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も
Java
2021-05-27 09:42
“はたらく”に寄り添い、お客さまの生み出す力を支えるデジタルサービスの会社へ–リコー・大山社長
IT関連
2024-01-10 14:36
ドキュサイン、SaaS型契約管理システムを国内提供–全工程をデジタル化
IT関連
2024-10-22 22:05
陽子線がん治療装置の小型化・低価格化開発を手がけるビードットメディカルが7億円を調達
ヘルステック
2021-02-03 10:34
滋賀県、全県立高と中学校での採点業務をデジタル化–教員の負担軽減へ
IT関連
2023-03-10 13:05
RedisとKafkaのためのサーバーレスデータプラットフォーム構築のためにUpstashが約2.3億円のシード資金獲得
IT関連
2022-03-20 11:05
アマゾン傘下Ringが警察に映像を取得されたユーザー数についての情報開示を拒否
セキュリティ
2021-06-10 16:34
脱炭素化は分散するバリューチェーンの接続が必要–AIを展開するアスペンテック
IT関連
2024-06-18 06:49
ロボットが昼食のサラダボウルを調理してくれるようになる日は近い
IT関連
2022-02-20 20:25
Uberがドライバーの顔認識チェックの利用で圧力を受ける
パブリック / ダイバーシティ
2021-04-05 22:05
重要インフラ保護とサイバーレジリエンスの向上–不可欠な「指標」
IT関連
2024-09-10 15:39
ロケット打ち上げ用OSを元SpaceXエンジニアの企業Epsilon3が開発
宇宙
2021-03-21 00:23
Ubuntuが10年間のメンテナンスを約束/Webpackの後継「Turbopack」が登場/PostgreSQLをWebブラウザ上で動かす、ほか。2022年10月の人気記事
編集後記
2022-11-07 23:15