Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CA Tech JOB 成果発表

CA Tech JOB 成果発表

C44d9ff0fb47045ae04e3183694c7d68?s=128

wafuwafu13

March 31, 2021
Tweet

Transcript

  1. 自己紹介 氏名: 田川裕隆(たがわひろたか) 大学: 同志社大学社会学部社会学科 2回 配属: 23卒実践就業型インターン@AWA 得意技術: JS/TS

    興味: 大規模サービス/テスト自動化/自然言語処理 マイブーム: 音楽(YOASOBI/ヨルシカ/ずとまよ)/読書(エッセイ集)/OSS活動(any潰し/テスト追加) リンク集: https://wafuwafu13.hateblo.jp/
  2. 配属先紹介 配属先: AWA株式会社 (1)  サブスクリプション型(定額制)音楽ストリーミングサービスを提供  ユーザー同士がリアルタイムに、同じ空間で同じ音楽を楽しみながらチャットができるオンライン空間  『LOUNGE(ラウンジ)』をリリース (2) メンター: 山下さん/佐々木さん

    (1) https://www.cyberagent.co.jp/corporate/overview/awa/ (2) https://news.awa.fm/jpn/2021/3/9/lounge-launch
  3. やったこと • Terraform のバージョンアップ (v0.12 => v0.13) • 本番LOUNGEサーバーのリソース増強 (Terraform/Datadog)

    • LOUNGE検索の追加 (MongoDB/Mongo Connector/Elasticsearch/Jenkins/Ansible) • ドキュメント作成 (DocBase) • LOUNGEの検索処理 (Go/gRPC/grpc-gateway)
  4. 背景と用語 用語 MySQL MongoDB Elasticsearch database database index table collection

    mapping raw (record) document document column field field 背景 LOUNGEを将来的に検索できるようにしておきたい 検索周辺のコードやツールは 1年以上触られていない コード、ドキュメント、過去の issueを参考に実装 LOUNGE = Room
  5. アーキテクチャ Mongo Connector admin admin user rooms searchRooms search Elasticsearch

    Head grpc-gateway terminal rooms
  6. MongoDB admin rooms searchRooms • LOUNGE検索用collectionであるsearchRoomsのスキーマをGo で定義 • 定義からアクセス用コードを Goで自動生成

    (I/Oの型安全) • roomsのCRUDに合わせてsearchRoomsもCRUD
  7. Jenkins/Elasticsearch/Elasticsearch Head • LOUNGE検索用のindexをJenkinsのJobで作成 • Elasticsearch Head で index等を可視化 Elasticsearch

    Head
  8. Ansible/Mongo Connector/papertrail Mongo Connector searchRooms • MongoDBのデータをElasticsearchに同期 • ECSを使う以前の歴史的経緯 •

    JenkinsのJobとしてAnsibleのsshがうまくい かなかったのでローカルで実行 • papertrailでログ監視
  9. gRPC/grpc-gateway admin user search • LOUNGE検索用のproto定義、コード生成 • マイクロサービス間の通信 • grpc-gatewayでデバッグ

    • クリーンアーキテクチャ • admin画面作る時間は足りなかった grpc-gateway terminal rooms
  10. 感想 Mongo Connector Elasticsearch Head • 夕会すごい • Go読みやすい •

    インフラ周り楽しい • 触るレポジトリ多かった • サービスの歴史の理解が重要 • 意外と自走できる部分はあった grpc-gateway