Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Ruby on Rails

スタディプラス主催イベント「基礎から振り返る Kaigi on Rails 2025」を開催しました!

こんにちは!25新卒で入社したWebアプリケーショングループの田嶋です! スタディプラスがKaigi on Rails 2025の事後勉強会を開催しましたので、勉強会での登壇・運営をした私からテックブログをお送りします! 基礎から振り返るKaigi on Rails 2025 connpas…

Kaigi on Rails2025に参加してきました!

はじめに こんにちは!Webアプリケーショングループの羽鳥です。 Kaigi on Rails 2025に参加してきましたので、参加メンバーによるレポートをお送りします! 羽鳥 去年のKaigi on Railsにも参加しましたが、そのときはRailsを触って半年ちょっとだったので、…

スタディプラスはKaigi on Rails 2025にシルバースポンサーとして協賛します

こんにちは、Webアプリケーショングループの羽鳥です。 スタディプラスは、Kaigi on Rails 2025にシルバースポンサーとして協賛いたします。 kaigionrails.org Kaigi on Rails 2025とは? Kaigi on Railsのコアコンセプトは「初学者から上級者までが楽しめる…

Kaigi on Rails 2024に参加してきました!!

はじめに こんにちは!技術カンファレンスが大好きなWebアプリケーショングループの羽鳥です。 10月のVue Fes Japan、Kaigi on Rails、そして来週にはFlutterKaigiとJSConf JPを控えており、充実したカンファレンスライフを送っております。 少し時間が経っ…

スタディプラスはKaigi on Rails 2024にシルバースポンサーとして協賛します

こんにちは、SREグループの 水口 です。 スタディプラスは、2024年10月25日・26日に有明セントラルタワーホール & カンファレンスおよびオンラインでハイブリッド開催される「Kaigi on Rails 2024」にシルバースポンサーとして協賛いたします。 kaigionrails…

サービス停止を伴わずにテーブル名変更した話

サービスを停止せずにテーブル名を変更するための具体的な手法と、そのメリットについて詳しく説明します。 別テーブルを作成してデータをコピーし、最後に切り替える方法を採用しています。この手法により、既存のサービスに大きな影響を与えずに作業を進め…

Ruby3.3 YJITによるパフォーマンス改善

こんにちは。サーバーサイドグループの山田です。 先日StudyplusのRailsアプリケーションのRubyを3.3にアップデートしました。 Ruby3.3ではYJITによるパフォーマンス改善が目玉の1つですが、弊社のアプリケーションでどのような変化があったかを報告します。…

Rails7.1へのアップグレードで発生した暗号化のエラーとその対応

こんにちは。サーバーグループ エンジニアの山田です。 今回はRails7.0からRails7.1へのアップグレードを行なった際に、ActiveRecord Encryptionで発生したエラーとその対応について紹介します。 同様のエラーに遭遇した方の参考になれば幸いです。 ActiveRe…

Kaigi on Rails 2023 参加レポート

こんにちは、サーバーグループの山田です。10/27(金)、28(土)開催のKaigi on Rails 2023に参加しました。その感想などをレポートします。 Kaigi on Railsとは? Kaigi on Railsのコアコンセプトは 「初学者から上級者までが楽しめるWeb系の技術カンファレンス…

Rails製APIとReact製画面の並行開発をする際の進め方

こんにちは。開発部エンジニアの石上です。会社のブログ記事を書くのが久しぶりすぎて、ここにいつも書いていたちょっとした日常エピソードも何を書いたらいいのかわからなくなっています。ここに悩んでも仕方ないので、本題に入ります! 今回は、 Studyplus…

Amazon EKSクラスタ上で動作するSidekiqをGraceful Shutdownさせる

SidekiqをKubernetes(Amazon EKS)で動作させる際、Graceful ShutdownとRolling Restartをさせるために必要な前提知識を整理します。

スタディプラスはKaigi on Rails 2022にゴールドスポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年10月21日・22日にオンラインで開催されるKaigi on Rails 2022にゴールドスポンサーとして協賛します。 kaigionrails.org Kaigi on Rails …

RubyMineを使い始めました

こんにちは。サーバーチームの森長です! 今年の1月にサーバーサイドエンジニアとして入社しました。 趣味は、スポーツ、旅行、音楽フェス参戦ですが、昨今のコロナ禍の影響もありインドアな趣味を探し続けております。 今回は、3ヶ月ほど前から弊社の一部…

コンテナビルドを速くするためのテクニック

こんにちは! SREの栗山です。 最近観て良かった映画は「コーダ あいのうた」です。 今回は弊社で使っているコンテナビルドを速くするためのテクニックを紹介します。 以下のような一般的なテクニックに関しては他でよく紹介されているので今回は割愛します…

MinIOを使ってローカル環境でファイルストレージを利用してみる

こんにちは。ForSchool事業部サーバーサイドエンジニアのましばです。 今回はDocker + Rails + MinIOを利用して、開発環境でもS3のようなファイルアップロードを行うことができる環境を構築します。 同様の内容を取り扱った記事は複数存在しますが、少し古い…

突撃!隣のRubyGems

こんにちは、スタディプラスの島田です。好きな漫画は「葬送のフリーレン」です。 はじめに スタディプラスでは、Railsで開発しているプロダクトが2つあります。 Studyplus Studyplus for School それぞれのプロダクトはサービスの性質や歴史が異なり、別な…

Rubyアプリケーションのメモリ使用量上昇問題をjemallocを使うことで解決しました

こんにちは、スタディプラスの栗山(id:shepherdMaster)です。 今回はRubyアプリケーションのメモリ使用量上昇問題をjemallocを使うことで解決した話です。 Rubyアプリケーションのメモリ使用量上昇問題 弊社ではRuby on Railsをメインで使っていますが、Ruby…

MySQLの0000-00-00 00:00:00という負債とridgepoleの限界

こんにちは、CTOの島田です。 今回は、StudyplusのDBのmigrationで発生した問題とその解決ステップを説明したいと思います。 前提 schema.rbでの運用 ridgepoleの導入 "0000-00-00 00:00:00" 問題 問題の原因は? 暫定対応 問題の解消 あるべき姿 まとめ 前…

Sidekiq Enterpriseを使う

お久しぶりです。サーバーサイドエンジニアの花井です。 みなさんは非同期処理に何をお使いですか? ActiveJobでしょうか? Resqueでしょうか? Sidekiqでしょうか? 弊社では歴史的経緯から、上記全てのgemをプロダクトで使っていますが、 この度Sidekiq En…