Kaigi on Rails 2025 Day2 https://kaigionrails.org/2025/talks/naro143/#day2

Kaigi on Rails 2024 に参加しました こんにちは、クラウドハウス採用でエンジニアインターンをしている Higashiji です。 10 月の 25・26 日、Ruby on Rails についてのカンファレンス、 Kaigi on Rails 2024 が開催されました。 弊社からは新卒エンジニアの @izumitomo が「デプロイを任されたので、教わった通りにデプロイしたら障害になった件 ~俺のやらかしを越えてゆけ~ 」というセッションで登壇しました。 スライドがアップロードされているので、興味を持っていただけた方はぜひご覧になってください。 私はこれまでカンファレンスに参加したことがなかったのですが、カンファレンス参加費補助制度を使って初めて参加させていただきました。 本記事では、Shinichi Maeshima (@willnet) さんによるセッション Sid
rails newでRailsアプリケーションを作成したときのデフォルトWebサーバーは、Pumaになります。PumaがHTTPリクエストをどのように処理するかを説明しましょう。 🔗 Pumaがリクエストを処理するしくみ Pumaは受信リクエストをTCPソケットでリッスンします。 リクエストが到着すると、そのリクエストはそのTCPソケットのキューに入れられます。次に、そのリクエストがPumaのプロセスによって取得されます。Pumaのプロセスとは、Railsアプリケーションのインスタンスを実行する、独立したOSプロセスです。 それでは、Pumaがリクエストをどのように処理するかを、順を追って見てみましょう。 Pumaの内部構造 すべての受信コネクションは、ソケットバックログ(socket backlog)に追加されます。ソケットバックログは、保留中のコネクションを保持するOSレベルのキュー
タイトルに書きたいことが長いとタイトル付けに困りますね。 今日は、「Ruby on Rails の ActiveRecord の insert_all で MySQL向けに発行されるSQLに ON DUPLICATE KEY UPDATE foo = foo が含まれている理由」について、知っておこう。(調べました) TL;DR Ruby on Rails の insert_all で発行されるSQLには ON DUPLICATE KEY UPDATE foo = foo が末尾に指定されている foo はどうやら INSERT INTO で登録先として指定している列の1番目 upsert_all に ON DUPLICATE KEY UPDATE が指定されているならまだしも、insert_all にこの指定があるのは感覚的に気持ち悪い 該当の実装部分はここ https://github
はじめに Next.jsにServer Actionが新しく導入されました。サーバ上の関数をブラウザから直接呼び出すようなコードの書き味を提供するもので、非常に魅力のあるコンセプトだと私は思っています。ただしサーバ上で実行されるコードとブラウザで実行されるコードの境界が曖昧で、"use server"のセキュリティ上の懸念もよく議論されています。 一方で、私の先日の記事Next.jsで簡単なCRUDアプリを作りながら気になったセキュリティ: Railsの視点からで、私はこの"use server"問題には言及しませんでした。まだ非常に新しい話題でかつNext.js側の対応も進行中だというのもありますが、実は個人的にあまり気にならないのが最大の理由です。 気にならなくなったきっかけは、Server ActionをRuby on Railsのコントローラと同じように考え始めたことです。こうする
The first Rails 8 beta has officially been released, bringing an exciting set of features, bug fixes, and improvements. This version builds on the foundation of Rails 7.2, while introducing new features and optimizations to make Rails development even more productive and enjoyable. Key highlights include an integration with Kamal 2 for hassle-free deployments, the introduction of Propshaft as the
静岡市でWeb開発しているkazuomatzです。 以前、こちらの記事で、Rails + MySQL で位置情報を扱う時に標準だったライブラリ activerecord-mysql2spatial-adapterについて書きました。 ライブラリの開発が止まってしまい、新しいRailsのバージョンに更新しようとすると対応されていないので、リポジトリをforkして、Rails6.0で何とか動かした話です。 今年、AWSのRDSのMySQL5.7系のサポートの終了がアナウンスされました。2024年2月以降、RDSでMySQL5.7を利用し続けるには、有償の延長サポートに入る必要があります。 というわけで今年は、MySQL5.7で稼働しているシステムをMySQL8に更新するお仕事が数件ありました(2023年12月現在、まだまだ絶賛実施中です)。 当然、MySQL5.7とMySQL8.0に移行するに
この記事は、hacomono Advent Calender 2023の20日目の記事です。 はじめに こんにちは、プラットフォームチーム所属のまこたすです。 この記事は主にMySQL5.7,MySQL8.0のcollation周りの挙動の違いについて書いています。AWS RDS MySQL5.7がEOLを迎える今、一番話したい内容はRails x MySQL5.7環境からRails x MySQL8.0環境へ移行する際にハマった話とそこからみる気をつけるべき観点という話題ではあるのですが、前提の話が長いので記事を2つに分けてお伝えします。今回はRailsの話は触れず、MySQLのcollation周りの話のみをします。 この記事で書くこと MySQL5.7, MySQL8.0でのサーバー, データベース, テーブルのcollationの決まり方とSHOW CREATE (TABLE|DA
railsが参照しているrdsをmysql5.7から8.0にアップグレードした時の注意点メモ utf8mb4を指定した場合は以下のパラメーターグループをutf8mb4にする必要がある character_set_database データベースの文字セットを定義します。文字セットは、文字を数値で表現する方法を定義するデータエンコーディングの一種です。 この設定は、新しく作成されるテーブルとそのカラムに使用されるデフォルトの文字セットを指定します。特定のテーブルやカラムに対して異なる文字セットを設定することも可能ですが、character_set_databaseはデフォルトの設定で、特定でない指定がない場合はこれが適用されます。 character_set_client ユーザーからのSQLステートメントがエンコードされている方法を定義します。クライアントからデータベースサーバーに送信される
GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる GitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby on Railsで構築されており、同社はつねにRubyとRuby on Railsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上のMySQL 5.7を、GitHub.comのサービスレベルを維持したまま1年以上かけてMySQL 8.0にアップグレードしたことをブログで明らかにしました。 Up
こんにちは、電話自動応答サービスIVRyでエンジニアをしている小瀬です! 実は先月、ユーザーさんには伝わらない形で大幅な「作り直し」を行っておりました。 余談ですが、このブログを書いている時にちょうどこのツイートがバズっているのを見かけました。 過去のコードを作り直したいけど、作り直せない、みたいなことってあるあるなんだなと改めて思いました笑 今回僕らは勇気を出して作り直す決断をして、過去のコードはレポジトリ単位で捨てて、新規でAPIを100本弱、2-3ヶ月ほどかけて粛々と実装しました。 完全な作り替えだったので、リスクの高めのリリースでしたが、無事に障害なく乗り越えることができました。 今回は、作り直しの動機や、失敗しないために気をつけたことなどをブログにまとめていきたいと思います。 さらなる飛躍のために、一時停止 IVRyは、初めからリッチな構成で作ったわけではなく、どちらかと言うとプ
こんにちは!SmartHRで基本機能の開発を担当している、エンジニアのwakasaです。2023年の1月から半年かけて、自チームのテストフロー見直しを行い、実装時間を大幅に増やすことができました。今回はその取り組みをご紹介します。 見直し前のチームの状態 私の所属するEチームは、SmartHRの基本機能の中でも、従業員情報やマスターデータの履歴データ管理周りの機能開発を主に担当しています。2023年8月現在、エンジニアが6名、プロダクトマネージャーが1名、プロダクトデザイナーが1名所属しており、QAエンジニアは所属していません。以前はQAエンジニアがチームに所属していましたが、2022年10月にチームを離れました。QAエンジニアがチームを離れたあとはエンジニアがテスト業務を兼務しています。 今回の取り組みを始めるきっかけとなったのは、2022年の年末に実装にどのくらい時間を使えているのか計
I just started using New Relic RPM with my rails app, and one of the metrics they provide is "Throughput RPM". I have googled everywhere and thoroughly combed the New Relic docs, and I cannot find ANY written explanation of the RPM throughput metric. Is it "requests per minute" or "requests per millisecond" or something else? ** combustion engines and revolutions per minute make this impossible to
【天才の育て方】三橋優希 ~アプリ開発を行う15歳の若きクリエータ KIDSNA編集部の連載企画『天才の育て方』。#09は三橋優希にインタビュー。未踏ジュニアスーパークリエータに選ばれた彼女は、15歳にしてスマホ向けアプリを開発。プロ顔負けのアイデアとプログラミング技術が育まれた背景に迫る。
こんにちは、最近野菜が高いのでもやしばかり食べているWebエンジニアの本間です。 そろそろレタスが食べたい...。 さて、ここ1、2年、ユニファではAmazon ECS+AWS Fargateを使用して、Railsアプリケーションを本番運用することが増えてきました。 stagingでテストしたDockerイメージがそのまま本番で使えて安心だったり、オートスケールが簡単だったりとメリットが多く、大変便利だと感じています。 ただ、そのような環境を構築する中で、vCPU数やメモリ量、およびPumaの並行性に関するパラメーターをどうしようか毎回悩んでいたため、この辺で自分の中で整理しておこうと思います。 前提 下記を使用したWebアプリケーションを前提にします。 Amazon ECS AWS Fargate Puma Ruby on Rails MRI(CRuby) このようなシステム構成において
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く