見出し画像

【学びを止めるな】10万人以上の生徒の学習から大規模オンライン模試まで支えるチームの紹介

atama plusでSREチームのエンジニア兼プロダクトオーナーをしている塚本です。

atama plusは全国2600以上の塾教室を通じて学習を個別最適化するAI先生「atama+」を提供しています。2020年度には10万人以上の生徒に利用いただきました。また、2020年7月から高校生・既卒生を対象に、駿台と共同でオンライン模試も始めています。

採用を加速させるために、SREチームでの取り組みを何回かに分けて情報発信していこうと思います。初回は、SREチームがどんなメンバーで構成されているのか、どんなことを行っているのかを簡単に紹介します。

SREチームは「生徒が学習に集中できるプロダクト基盤を実現する」というミッションを持ってます。
ミッションの実現のために高い信頼性(壊れづらい・壊れてもすぐに復旧できる)を持ち、atama plusのサービスの成長に耐える基盤作りを行っています。

もう少し噛み砕いて言うとプロダクトのスケーラビリティや可用性そしてインフラレイヤーのセキュリティを中心に取り組みを行っています。

SREチームメンバー

チームには以下の4人のSREエンジニアが所属しています。
写真上から、

とってぃー
10年ほどベンチャー系のSIerで大小様々なサービスの新規開発や運用を経験され、2019年から2人目のSRE専任メンバーとしてatama plusで働いてくれています。

きったん
独立系SIerからネット企業に転職後、toC向けのアバターサービスや音楽配信サービスでオンプレ・AWSによる基盤構築からアプリケーションまで横断的な開発を経験され、2020年からatama plusで働いてくれています。

あきちゃん
7年ほどオンプレミス環境でのインフラエンジニア、Webサービスのバックエンドエンジニア、データ基盤の構築・運用などを経験され、2020年からatama plusで働いてくれています。

JJ (私)
セキュリティ製品の開発に7年程度、その後ヤフー株式会社に転職しサービスのインフラ運用を3年ほど経験し、2018年からatama plusで働いています。

atama plusのSREチームの特徴を以下の4つの観点から紹介していきます。
- 1つのSREチームが全てのatama plusのプロダクトを扱う
- インフラ構築からコード修正まで行う
- 個々のメンバーが担当するテーマのタスクを持ち取り組む
- アプリチームとのコミュニケーション


1つのSREチームが全てのatama plusのプロダクトを扱う

atama plusのSREは1チームです。現在提供しているatama+とオンライン模試の両方を取り扱っています。メンバーごとによく関わるプロダクトは異なりますが、専任という形にはなっていません。オンライン模試を扱うメンバーもatama+側のタスクをとったり、その逆もあります。

インフラはAWSを中心に構築していますが、FirebaseやHerokuなども活用しインフラを構築しています。データ分析の基盤としてbigquery, redash, trrocoなどを利用しており、これらの基盤や運用周りのタスクもこなしています。

インフラ構築からコード修正まで行う

atama plusのSREは、インフラ構築からプロダクトのコード修正まで幅広く行っています(もちろんアプリチームと協力して進めるものもあります)。

最近(と言っても一年前です)SREで行った大きなインフラ構築はオンライン模試サービスの構築です。(2020年7月に行われた初回では、約2.8万人が受験しました。)SREのエンジニアは新しいプロダクトのリリースに間に合わせるために模試チームの中に飛び込み、どういったプロダクトを作ろうとしているのかをリアルタイムに把握しながらそれに合わせてインフラ構成を考え構築や負荷テストの準備などしていました。

他にもプロダクトの一部のコンポーネントで特定のシャードに負荷が偏ってしまう現象に対応するため、偏りを減らすために構成を変更しつつ、シャードのためのロジックを修正するような対応を行いました。ここら辺についてはまた別の回で詳細を書きたいと思います(多分)。

個々のメンバーが担当するテーマのタスクを持ち取り組む

atama plusでは会社全体でOKRを採用しており、SREでも3ヶ月に一度OKRをチームで作成しています。SREチームのメンバーはOKRに関連するテーマ(大きめのインフラ移行やスケーラビリティーを向上させるための構成変更など)を担当し、それぞれが担当のテーマに関する進め方に責任を持つような形をとっています。1週間に1回チームでそれぞれのテーマの状況について共有しながら、チームとしてどこにリソースを集中するか話し合いながらこの先にやっていくタスクを決めています。

アプリチームとのコミュニケーション

アプリチームとのコミュニケーションの場は三つあります。1つ目はアプリチーム、アルゴリズムチーム及びSREチームのプロダクトオーナーが集まるMTGです。主に他チームに関係する可能性がある取り組みについて共有や相談を行います。このMTGの中でSREが関係ありそうな話があれば、それを担当しているエンジニアに詳細を確認しにいくなどのアクションを取ります。

2つ目はアプリチームのリファイメントです。SREが関係しそうなテーマに関するリファイメントが行われる場合は、SREのメンバーも含めたリファイメントが行われ、意見交換や進め方に関する議論等が行われます。

最後はSlackでのコミュニケーションです(これが一番多い気がします)。Slackで済むようなシンプルな話はエンジニア同士で直接Slack(必要に応じてハドルやMeets)でやりとりします。

おわりに

今回はSREチームを簡単に紹介してみました。SREチームがどのようなチームなのか、イメージが少しでもつかめていたら幸いです。
TwitterなどのSNSで、もしよかったら読んだ感想や「こんな話も聞きたい!」などを投稿いただけたら励みになります。

SREチームは、紹介させていただいたとおり、「生徒が学習に集中できるプロダクト基盤を実現する」ために動いているチームです。これからプロダクトも、そして組織も大きくなってくる中で、サービスを支える上で肝になる役割です。

今が一番おもしろいタイミングだと思うので、プロダクトが拡大していく中でそれを支える基盤インフラを一緒に整え、進化させていきませんか?

この記事を読んで「もう少し詳しく話を聞きたいかも?」と思っていただけた方は、ぜひお気軽に下記フォームからお申し込み下さい。

https://herp.careers/v1/atamaplus/H_etbzN0OiNU

この記事が気に入ったらサポートをしてみませんか?