スタディサプリ Product Team Blog

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

AWS Dev Day 2023 Tokyo で スタディサプリのDarklaunch について発表してきました

こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。

今回は、先日開催された、AWS Dev Day 2023 Tokyo にて、チームメンバーで Senior Product Platform Engineerの@ujihisaとともに
[スタディサプリ]
Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)を
Goアプリケーションとしてフルスクラッチでマイクロサービス化した話

という発表を行ってきたので、そのことについてお話できればと思います。

発表の簡単なまとめ

スライドは公開していますが、このブログで簡単なまとめを改めてご紹介できればと思います。

アジェンダ

発表のアジェンダは以下になります。

  1. Darklaunchとスタディサプリの歴史
  2. WebAPIとして作り直した2つの理由
  3. Go言語でのアプリケーション開発
  4. 6週間で初期APIを公開した開発プロセス
  5. アプリケーションの性能要件

1. Darklaunchとスタディサプリの歴史

@ujihisaが前半パートを担当し、まず第1章で、Darklaunchとスタディサプリの歴史についてご紹介しました。
@ujihisaはカナダ、バンクーバーからZoomを用いてのオンライン登壇でした*1@ujihisaは過去数年にわたりこの問題と向き合っており*2スタディサプリという枠を超え、Feature Togglesという設計パターンそのもののについてのエキスパートでもあります。
そんな@ujihisaから、Darklaunchという仕組みが、プロダクト開発においてなぜ便利なのかを解説させていただきました。

ujihisa発表の様子

2. WebAPIとして作り直した2つの理由

続いて第2章では、元々Rubyモジュールとして存在していたDarklaunchを、WebAPIとして再設計した背景を紹介しました。
ビジネスアプリケーションと同じく、社内向けのプロダクトにおいても、

  • 小さく初めて需要を確認する
  • 最初からやりすぎない

という基本原則は同じです。
スタディサプリというプロダクトの成長とともに、Darklaunchに対する新たな需要が生まれていきました。

3. Go言語でのアプリケーション開発

第3章では、

  • Railsのアプリケーション開発をメインとしているチームが、なぜGo言語でのアプリケーション開発を選択したか
  • Railsを書き慣れているプログラマが、Go言語でのアプリケーション開発にスムーズに入るために知っておくと便利なテクニック

などのお話をしました。
小中高プロダクト基盤開発グループのカルチャー、技術選択の際に大事にしている考え方などにも注目していただければと思います。

4. 6週間で初期APIを公開した開発プロセス

第4章からは私@tooooooooomyから、Darklaunch WebAPI(以下Darklaunch V2)の開発プロセスについてお話しさせていただきました。

今振り返ると、6週間の中で何をしたかというよりも、6週間で開発〜デプロイをするために何をしたかという内容が中心で、タイトル詐欺だった気もしていますが気にせず行きます。
開発期間がどれほどのものであれ、開発計画を遅らせる一番の原因は「迷い」なのではないでしょうか。

「なぜ」このプロダクトが必要なのか
「どうやって」実現させるのか

迷いの原因となるものを最初に明らかにし、チームが合意することで、如何に迷わずに開発するか。またその手段としてのプロトタイプ開発についてご紹介しました。
おまけとして、スタディサプリでは、チームの課題のみにフォーカスするための便利なインフラ基盤が整っているのでそのご紹介もさせていただきました。*3

スタサプのインフラ基盤、便利です*4

5. アプリケーションの性能要件

最後に、Darklaunch V2の性能要件をどのように定義し、検証していったかについてご紹介しました。

  • Read Heavyなアプリケーションであれば必ずCache層は必要なのか?DBのみでは本当に負荷に耐えられないのか?
  • 性能要件はどうやって決めるのか?
  • 負荷試験で想定負荷をどうやって表現するのか?

などのお話が、特に興味を持っていただけたかなと思います。

小中高プロダクト基盤開発グループが目指すものについて

以上、AWS Dev Dayで行ったDarklaunch V2の発表について簡単にご紹介させていただきました。
@ujihisaにとっては数年温めていたアイディアの集大成であり、また我々小中高プロダクト基盤開発グループとして正式にリリースした最初のプロダクトであったため、カンファレンスにお越しいただいた方々にお話を聞いてもらえて感無量でした。
小中高プロダクト基盤開発グループは、今回ご紹介したDarklaunch V2の様に、社内のユーザー(プロダクトチーム)の問題を解決し、事業開発を促進するプロダクトを今後とも作っていきたいと考えています。
これから開発予定のプロダクトも、ビジネスから一歩下がった抽象的なレイヤーになることが多く、技術的にもチャレンジングなものになりえます。そしてそれを今回のように外部に向けて発表する機会も多くあります。
もしそんな小中高プロダクト基盤開発グループで開発することにもしご興味がありましたら、是非こちらのリンクをご活用いただければと思います。よろしくお願いします!

終わりに

来る2023-07-27 に開催されるDevelopers Summit 2023 Summer にて、小中高プロダクト基盤開発グループの@highwide日々の意思決定の積み重ねを記録するアーキテクチャ・デシジョン・レコードというタイトルで 17:50 ~ 18:30の枠で発表予定です。
こちらもご興味ありましたら是非観に行ってみてください。
それでは!

*1:AWS Dev Day運用事務局の皆様、ご協力ありがとうございました

*2:https://blog.studysapuri.jp/entry/2022/12/19/darklaunch-ujihisa

*3:本当に便利です。最高の開発体験をお求めの方はぜひスタディサプリ開発チームへ!

*4:https://twitter.com/chaspy_/status/1672143398105673729?s=20