株式会社AbemaTV / 開発事業本部
ABEMAの動画コンテンツ配信サービスのリプレイスPJ
<担当業務> ・コンテンツ配信を責務とする大規模なマイクロサービス(約30万行ほどの規模)を新規作成しリプレイスを行った。 <業務内容> ・新規マイクロサービスの技術選定(インフラを含む) ・各クライアント(アプリ・Web)とのIFの仕様策定・要件定義 ・Goの新規マイクロサービスの設計・実装 ・API IF設計 ・DB設計 ・古いミドルウェアの最新・最適化 ・キャッシュ戦略構築 ・Terraform, K8sインフラ設計・構築 ・QA ・負荷試験の実施 <取り組み> ・大規模なマイクロサービス(約30万行ほどの規模)のリプレイスを実行。 ・マスタデータ取得部分をrestrettoという高速のオンメモリキャッシュとRedisを導入 ・拡張性・保守性の高くデータサイズの小さいAPIレスポンスのモデリングを行った。 ・既存のコードや仕様がかなり複雑で動作確認も非常に大変だったが実際のユースケースをログから調査して本番ではどのような使われ方をしているのかを洗い出し、開発環境のテストデータの入稿も本番と同じようなデータを使って検証することで旧マイクロサービスとの機能差分に差が出ないように工夫した。入稿もやったことがなかったがビジネスやクライアントのメンバーに協力してもらいやり遂げた。 ・usecase層にビジネスロジックを集約していたためusecaseの実装が極めて複雑になってしまう構造になっておりメンテナンスコストが高い課題があったのでentity(model)層にロジックを集約することでテスタブルかつ保守性、可読性の高いコードに変更した。