Patron - ライブ配信プラットフォームデータ管理システム
大規模ライブ配信プラットフォーム「Muevo」のデータ基盤を支えるデータ管理システムを開発しました。配信者、視聴者、コンテンツの膨大なデータを効率的に管理し、プラットフォーム全体の運営を支えます。
プロジェクト概要
- ライブ配信プラットフォームのデータ管理基盤
- マルチデータベース構成
- 大規模データ処理
- リアルタイムデータ同期
依頼者の目指した目標と解決したい課題
ライブ配信プラットフォーム「Muevo」の成長に伴い、ユーザー数、配信数、視聴データが爆発的に増加しました。既存のシステムではデータ管理が複雑化し、パフォーマンスの低下やメンテナンスの困難さが課題となっていました。プラットフォーム全体のデータを統合的に管理し、各種サービスにデータを提供する基盤システムが必要でした。
開発したシステムの特徴
Patronは、Muevoエコシステムの中核となるデータ管理システムです。主な機能として:
- マルチデータベース管理:
- patronデータベース(システムデータ)
- muevoデータベース(配信データ)
- データベース間の同期処理
- データ統合・処理:
- 配信者プロフィール管理
- 配信コンテンツメタデータ
- 視聴履歴・統計データ
- 収益データ管理
- APIサービス:
- RESTful API提供
- 各マイクロサービスへのデータ提供
- リアルタイムデータアクセス
- バッチ処理:
- 日次・月次の集計処理
- データクリーニング
- レポート生成
- データバックアップ
技術的背景
Ruby on Railsで構築され、複数のMySQLデータベースを統合的に管理しています。Docker Composeによるコンテナ化により、開発環境と本番環境の一貫性を保ち、スケーラビリティを確保しています。
データベース設計では、正規化とパフォーマンスのバランスを考慮し、適切なインデックス設計により高速なクエリ実行を実現しています。大量のデータを扱うため、パーティショニングやアーカイブ戦略も導入しています。
データ同期には、トランザクション管理とエラーハンドリングを徹底し、データ整合性を保証しています。また、非同期ジョブ処理により、重い処理がユーザー体験に影響を与えないよう設計されています。
解決された問題
Patronの導入により、Muevoプラットフォーム全体のデータ管理が一元化され、各サービス間のデータ連携がスムーズになりました。データの一貫性が保たれ、レポート生成や分析作業が効率化されました。また、システムの保守性が向上し、新機能追加や改善が迅速に行えるようになりました。
チーム構成
- (KW) プロジェクトマネージャー
- (KW) バックエンドエンジニア×3
- (KW) データベースエンジニア
- インフラエンジニア
- QAエンジニア
(KW) はKaito Wingsが担当
プロジェクト期間
- 要件定義・データベース設計 - 3ヶ月
- 開発・データマイグレーション - 6ヶ月
- テスト・性能チューニング - 2ヶ月
- 段階的リリース - 2ヶ月
システム構成
- Ruby on Rails / MySQL
- Docker / Docker Compose
- Sidekiq(非同期処理)
- Redis(キャッシュ)
- RSpec