ウォンテッドリー株式会社 / Visit プロダクトチーム Webエンジニア
Ruby で作るデータ分析基盤 - Rails Developer Meetup 2018
メインの Rails アプリケーションにデータ分析などのバッチが付属していたことに起因するいろいろな構造的な問題を、シンプルな DSL ベースのリポジトリを作成することで一括して解決しました。 単純にコードベースを分けたことで CI/CD を大幅に高速化する意義もありましたが、他にも以下のようなことを実現することで、社内で全体的に使われる基盤になりました。 1) ジョブの品質の向上:シンプルな DSL を提供することで冪等性などを担保 2) ワークフローの統一:それまでデータウェアハウス付属の Web コンソールなどでも行いがちだったデータ解析ジョブを GitHub のリポジトリに乗せることで、コードレビュー・追跡可能性などを実現 3) アーキテクチャの強制:キャッシュの thundering herd などを起こしにくくなるようなアーキテクチャを自然と選択する設計 足回りについては折良く同時期に Kubernetes に CronJob (当時: ScheduledJob) が入ったので、DSL をそこにマッピングしてリソースアロケーションなどの諸々のことを上手く任せることができました。