Studyplus Engineering Blog

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

サーバーサイド

少人数で複数のマイクロサービスの開発を行うための弊社の開発事情

こんにちは、サーバーサイドエンジニアの山田です。 昨年の11月に入社して以降、Studyplusアプリのバックエンドとそれに付随するいくつかのマイクロサービスの開発に関わってきました。今回はその中で感じたサーバーサイドチームの開発環境のいいところや改…

CircleCIのPerformance Planでテスト時間を半減させた

こんにちはスタディプラスCTOの島田です。 今回はスタディプラスでCircleCIのPerformance Planを導入し、テストの実行時間を半分以下にした内容を書きます。 Performance Planについて CircleCIのPerformance Planとは、処理能力を最適化しパォーマンスを最…

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

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

スタディプラスを支えるインフラ技術

はじめに スタディプラスには学習管理SNS「Studyplus」と教育機関向け学習管理サービス「Studyplus for School」の2つのサービスがあります。 今回は、社内では「本体」と呼ばれている「Studyplus」のAPIシステムである、コードネーム「steak」を中心にした…

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…

pt-query-digestによるパフォーマンス測定

筋トレっていいですよね。 BIG3の総重量が280kg(5RM)になりました。サーバーサイドエンジニアの花井(id:hiroyuki-hanai)です。 弊チームではサービスのコアになるAPIをRailsとMySQLをベースに開発しております。 インフラにはAWSを利用しています。 スタデ…