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
期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2022年版
AWS
2022-07-20 21:35
AWSに最適化された「Amazon Linux 2023」正式リリース。カーネルライブパッチなど新機能、今後は5年間無償サポート、2年ごとにメジャーバージョンアップ
AWS
2023-03-17 02:48
Vリーグ機構、NECと共同で「競技情報のAR表示」の実証実験
IT関連
2021-04-15 16:30
「禰豆子の口かせ」でバーチャルな味覚を楽しむ 動画に映る食品の味を再現し味わえる装置、明大教授が開発 :Innovative Tech(1/2 ページ)
アプリ・Web
2021-01-28 22:45
半導体売上高、世界的なチップ不足続く中で2021年は過去最高水準–米半導体工業会
IT関連
2022-02-18 15:40
AWSが「IE 11」のサポート終了を告知–新しいブラウザーへの移行を促す
IT関連
2021-08-03 00:54
アップルのプライバシー対策にフランスのスタートアップのロビー団体が苦情
ソフトウェア
2021-03-11 13:10
NTT Com、ゼロトラスト対応の統合ネットワークサービスと液冷方式対応のDCサービスを発表
IT関連
2023-10-06 23:11
東芝テックで情報流出 欧州の現地法人がランサムウェアの被害に
企業・業界動向
2021-06-12 21:52
NECソリューションイノベータと倉敷中央病院、生活習慣病発症リスクを予測するAIモデル開発
IT関連
2024-01-24 08:26
核融合技術開発企業General Fusionの支援にShopifyとアマゾンの創設者が参加
VC / エンジェル
2021-01-17 15:02
マネーフォワード、インボイス制度対応の請求書受領システムを提供
IT関連
2022-08-26 09:40
「Gmail」の概要カードで請求書を直接支払い可能に
IT関連
2025-02-20 23:35
「Personalization 2.0」の実現に向けたCXM基盤の在り方
IT関連
2021-02-08 05:49