スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

SRE

スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで

こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさか…

スタディサプリにおけるKarpenterの導入トラブル振り返り

スタディサプリにおけるKarpenterの導入トラブル振り返り こんにちは。スタディサプリ小中高SREの@aoi1です。 スタディサプリでは、Kubernetesを利用しているのですが、Nodeの運用自動化のために2023年3月から本番環境を含む全環境でKarpenterを導入していま…

SLI の計測のために Envoy や service mesh を選択しなかった理由

こんにちは。スタディサプリの小中高プロダクト開発部で主にコミュニケーション機能の開発をしている @snowfield702 です。 今回はスタディサプリで SLI の計測に Envoy と service mesh を使うのをやめて Datadog APM を利用することにしたという話をしたい…

【 RECRUIT Job for Student 2022 Autumn】Kubecostの検証をしてみました

EKS上でKubecostの検証 初めまして、今回 RECRUIT Job for Student 2022 Autumn Engineer に参加させていただいていた@masaki12-sです。 私は本アルバイトでスタディサプリ小中高のSREチームに配属され、Kubecostと呼ばれるツールの調査を行いました。本記事…

SLO の監視に Burn Rate Monitoring を導入してみた話

こんにちは。スタディサプリ小中高 / Quipper SREの@kyontanです。 この記事は Recruit Engineers Advent Calendar 2022 の1日目の記事です。 開発チームが事実に基づいて(= fact-basedな)意思決定をできるようにするための一助として、SREチームではSLO (Se…

Engineering Manager のしごと - スタディサプリ小中高 SRE チームの場合 -

こんにちは。SRE Team の @chaspy です。次の10月で Engineering Manager をつとめて1年になります。 本記事ではもしかするとメンバーからわかりづらい Engineering Manager のしごとについて、昨年10月からの約1年間を振り返りながら説明しようと思います。…

スムーズな開発体験を支えるデータベースリストアの仕組み

こんにちは。SRE の @int128 です。 背景 スタディサプリではいろいろな役割の人が協力してプロダクトを開発していくための文化と仕組みがあります。 例えば、Pull Request を作成すると自動的にプレビュー環境がデプロイされる仕組みや本番相当のデータで動…

Terraform Modules を Monorepo で versioning して管理

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform Modules を Monorepo で versioning して管理するようにした話を紹介します。 先日紹介したとおり、弊プロダクトではインフラを Terraform の Monorepo で管理しており、 CI は GitHub Actions + tfa…

「0回目のポストモーテム」としてのプレモーテムのすすめ

こんにちは。SREの@kyontanです。スタディサプリのSREチームにジョインしてから初のブログ記事となります。 つい先日、スタディサプリ 中学講座が大幅リニューアルされました。*1 今回は、そのリリースを自信を持ってユーザーの皆様へお届けするために実施し…

Renovate の大量の Pull Request を処理する技術

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform Monorepo に対する Renovate の大量の Pull Request を処理するための技術について紹介します。 背景 過去ブログで何度か紹介しているように、弊プロダクトでは Terraform の Monorepo を管理してい…

6社合同 SRE 勉強会で" SRE を実現するための組織マネジメント"という題で登壇します

こんにちは。SRE の @chaspy です。 タイトルの通り、以下のイベントで登壇します。 line.connpass.com 本記事では、当日の発表をより多くの人に見てもらえるよう、connpass に掲載されている発表概要について補足します。 登壇情報 Title: SRE を実現するた…

Terraform の CI を AWS CodeBuild から GitHub Actions + tfaction に移行しました

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform の CI を AWS CodeBuild (以下 CodeBuild) から GitHub Actions + tfaction に移行した話を紹介します。 これまでの Terraform Workflow (CodeBuild) 弊プロダクトの Terraform の CI に関しては過去…

AWS SSO を導入してセキュリティと利便性を改善した話

こんにちは。 SRE の @suzuki-shunsuke です。 AWS SSO を導入してセキュリティと利便性を改善した話を紹介します。 背景 これまで弊プロダクトチームでは各開発者に AWS IAM User を作成し、 IAM User の ID/Password で AWS にサインインし、 IAM User の …

GitHub Actions Self-hosted Runner と Gatling による負荷試験

こんにちは。SRE の @int128 です。 先日の「負荷試験、Gatling を使ってやってみた」で紹介したように、スタディサプリではユーザ体験の改善や本番障害の予防を目的に負荷試験を行っています。 本稿では、SRE と Product Team がどのようにして一緒に負荷試…

HashiTalks Japan 2021 で弊プロダクトの Terraform Platform について登壇しました

こんにちは。 SRE の @suzuki-shunsuke です。 HashiTalks Japan 2021 で登壇させていただきました。 HashiTalks Japan 2021 とは HashiCorp が主催するコミュニティ向けのイベントです。 Terraform や Vault など、 HashiCorp の様々なプロダクトに関して自…

大規模サービスにおけるMongoDBのインデックス運用

スタディサプリにおけるMongoDB運用のポイントを解説

スタディサプリ/Quipper オンラインミートアップ#3で How to measure "Site Reliability Engineering" というタイトルで登壇しました

こんにちは。SRE の chaspy です。先日オンラインイベントで登壇しました。 quipper.connpass.com 本記事では、その時の発表を完全にブログ化するのではなく、話した内容をベースに、あらためて今我々 SRE Team および開発組織・事業が抱えている課題とその…

自分たちのシステムを診断するために DX Criteria"システム"テーマを実施しました

はじめに こんにちは。SRE Team の @chaspy です。本日は 日本 CTO 協会が作成した DX Criteria を実施した話をします。 背景: 自己診断能力の獲得に向けて スタディサプリ小中高大のプロダクト開発部では、今年の4月より「技術戦略グループ」という組織を発…

SRE チームをよりサステナブルにするために Vision/Mission/Values を作った話

小中高 SRE チームで Engineering Manager をやっている @yuya-takeyama です。 Quipper にはスタディサプリ ENGLISH の SRE である ENGLISH SRE チームと合わせて 2 つの SRE チームがありますが、この記事では自分たち小中高 SRE チームについての話です。…

Terraform の CI に tfmigrate を導入した話

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform Monorepo の CI にtfmigrate を導入した話を紹介します。 なお、弊社の Terraform Monorepo に関しては過去の記事も参照してください。 Terraform リポジトリをマージして CI/CD を改善した話 - スタ…

AWS IAM の管理を miam から Terraform に移行した話

こんにちは。 SRE の @suzuki-shunsuke です。 AWS IAM の管理を miam から Terraform に移行した話を紹介します。 なお、 AWS や miam に限らず「Terraform で管理されていない大量のリソースを Terraform で管理する」ことを検討している方には参考になる…

SRE と Developer のコラボレーションを支える仕組み

こんにちは。SRE の @int128 です。 Quipper の SRE チームでは、Platform の安定運用や改善だけでなく、Platform を利用する Developer のサポートも重要な仕事と位置付けています。 SRE チームで工夫していることを紹介します。 Issue に記録を残す SRE チ…

AWS - GCP の ID 連携を使い、 AWS CodeBuild で Terraform を使って GCP を管理

こんにちは。 SRE の @suzuki-shunsuke です。 Google Cloud Platform (以下 GCP) を Terraform で管理するように CI/CD を整備した話を紹介します。 背景 何度か本ブログで紹介したように、弊社では Terraform を使い AWS を始めとする様々なリソースを管理…

AWS IAM User の初期パスワード通知を自動化

こんにちは。 SRE の @suzuki-shunsuke です。 AWS の IAM User 作成後に初期パスワードをユーザーに Slack の DM で通知する作業を自動化した話を紹介します。 背景 弊社では AWS を使っており、開発者は入社したらまず自分用の IAM User を作成します。 IA…

GitHub Actions Self-hosted Runner の導入と安定運用に向けた軌跡

こんにちは。SRE の @int128 です。 Quipper では GitHub Actions Self-hosted Runner を一部のジョブで導入しています。本稿ではその目的と具体例を紹介します。 背景と解決したい課題 Quipper では以下の CI サービスを用途に合わせて利用しています。 Cir…

Terraform リポジトリをマージして CI/CD を改善した話

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform のコードを管理する複数のリポジトリ (以下 Terraform リポジトリ) を一つにまとめて CI/CD の品質およびメンテナンス性を改善した話をします。 弊社のこれまでの CI/CD 改善の取り組み 弊社ではこれ…

SRE Team のオンボーディングのいま

こんにちは。SRE の @chaspy です。 Quipper の SRE Team ではじめて「オンボーディング」と呼ばれるものを行って約2年経ちました。 quipper.hatenablog.com その後、3人の仲間が入社し、そのたびにオンボーディングプロセスを改善してきました。 本記事では…

100 以上の Terraform 環境をいい感じに v0.14 に upgrade した方法

こんにちは。 SRE の @suzuki-shunsuke です。 100 個以上の Terraform state がある Monorepo で Terraform を v0.14 に upgrade しつつ Terraform Provider の自動 update を実現した方法を紹介したいと思います。 Terraform v0.14 の新機能とかにはあまり…

Pull Request の terraform plan の実行結果を S3 に保存して安全に apply

こんにちは。 SRE の @suzuki-shunsuke です。 Pull Request (以下PR) の CI の terraform plan (以下 plan) の実行結果(以下 plan file)を S3 に保存して、安全に terraform apply (以下 apply) 出来るようにしたとともに、 GitHub リポジトリの Require br…

ArgoCD と Renovate によるコンポーネントの継続的なデプロイ

こんにちは、SRE の @int128 です。 Quipper では日本やグローバル向けのサービスをそれぞれの Amazon EKS クラスタで提供しています。Service Level を保ちながらクラスタを運用していくには Cluster Autoscaler や Datadog Agent などのコンポーネントが必…