Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[スタディサプリ]Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 #36

Open
2 tasks done
tooooooooomy opened this issue Apr 12, 2023 · 0 comments
Assignees
Labels

Comments

@tooooooooomy
Copy link

tooooooooomy commented Apr 12, 2023

セッションタイトル (必須)

  • セッションのタイトルをイシュー件名に最大40文字程度で入力しました

連絡先の登録 (必須)

セッションのアブストラクト (最大250文字) (必須)

  • Darklaunch(FeatureToggles)コンポーネントの社内公開API化
  • Web APIとして作った2つの理由:
    • web frontendから直接利用可能
    • 共有dbのデータを消し、データはDarklaunchサービス内で完結 (独立してaurora serverless postgres)
  • 6週間で初期APIを公開した開発プロセス
  • アプリケーションの性能要件
    • はじめにやったことと、やっていないこと
  • Goの開発
    • なぜGoを選んだか
    • Rails使いがGoの開発する上で開発速度向上に貢献したもの

セッションについての補足情報 (最大800文字) (任意)

  • スタディサプリとは
  • “世界の果てまで、最高のまなびを届けよう”がコンセプトの『スタディサプリ』は、実力派講師陣による小学校高学年から大学受験生まで4万本以上の講義動画を利用することができるオンライン学習サービスです。個人の利用者の他、高校を中心に自治体や学校単位でも活用いただいています。
  • 全体構成
    開発チームは全体で100名弱くらいの規模感で、各チームがオーナーシップを持ったサービスを運用しています。
  • スタディサプリのインフラストラクチャ
    • 社内共通kubernetes基盤(EKS)で動作
    • 中心にRailsで書かれた巨大な分断されたモノリスがあり、レガシーなMongo DBを共有DBとして使っている。加えて新しく作られたマイクロサービスがあり、それは様々な言語とDBで構成されている。
  • 本セッションで話さない話
    • なぜ既存の代替サービスを選択しなかったのか
      • 質問は受け付けますが、本題ではないので発表内容には盛り込みません。
  • システム概要
    DarklaunchV2とはスタディサプリのWebアプリやネイティブアプリから使える、新機能のリリースなどの粒度を司るシステムであり、公開APIを提供し、スタディサプリの開発をより安全かつ高速に行えるようにすることを目的として開発しています。これは、特定のユーザーに対して特定の新機能がリリースされているか、またはされていないかをtrue/falseで返すAPIを提供します。補足情報として、すでにDarklaunchV1が既存のシステムで運用されているが、これは、インターネットフェイシングなサービスではなく、社内のシステム上のRubyモジュールであり、外部からは一切アクセスできませんでした。DarklaunchV2はWebフロントエンドからの利用を想定しており、ゆえに外部からアクセスできるようにWebAPIとして設計したものです。
    image (2)

No response

セッション時間

20分

想定受講者の知識レベル(必須)

中級 - セッションの中心となるトピックを触ったことがある、現在勉強中である方向け

想定受講者の開発対象やロール・役割 (複数選択可) (必須)

Web バックエンド / サーバーサイド開発

想定受講者の業種・業界・業態 (複数選択可) (任意)

No response

セッションのトピック (複数選択可) (必須)

Web バックエンド / サーバーサイド開発, DevOps / Infrastructure as Code, プログラミング, アプリケーションアーキテクチャー, エンジニアリングプロセス

セッションの技術カテゴリー (複数選択可) (必須)

サーバーレス, コンテナ, データベース

セッション内で登場する主な AWS サービス (任意)

Amazon Aurora Serverless(postgres)

@tooooooooomy tooooooooomy changed the title [WIP] Railsアプリケーションのモジュールとして存在していたdarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 [スタディサプリ] Railsアプリケーションのモジュールとして存在していたdarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 Apr 18, 2023
@tooooooooomy tooooooooomy changed the title [スタディサプリ] Railsアプリケーションのモジュールとして存在していたdarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 [スタディサプリ] Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 Apr 18, 2023
@tooooooooomy tooooooooomy changed the title [スタディサプリ] Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 [WIP] Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 Apr 18, 2023
@tooooooooomy tooooooooomy changed the title [WIP] Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 [スタディサプリ]Railsアプリケーションのモジュールとして存在していたDarklaunch(FeatureToggles)をGoアプリケーションとしてフルスクラッチでマイクロサービス化した話 Apr 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants