Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CA Tech JOB 成果発表
Search
wafuwafu13
March 31, 2021
Programming
1
600
CA Tech JOB 成果発表
wafuwafu13
March 31, 2021
Tweet
Share
More Decks by wafuwafu13
See All by wafuwafu13
はてなサマーインターン成果報告 ~xyz記法とマイクロサービス~
wafuwafu13
0
1.2k
Other Decks in Programming
See All in Programming
TDDと今まで
kanayannet
0
110
GitHub Copilot Tips and Tricks
yuichielectric
2
240
sbt-assemblyにハマってDB接続できず時間が溶けた話
wakye5815
1
660
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
460
Sementic Kernelのネイティブ関数について
tomokusaba
0
780
before_rails_girls_after_rails_girls
maimux2x
0
300
20240301_cocone_EMゆるミートアップvol6_LT資料
cocone
0
250
PHPカンファレンス関西2024でLTとスタッフした
ohmori_yusuke
2
120
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
22
12k
C#でのPlaywrightを使ったE2Eテストの実際
tomokusaba
0
210
Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
840
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
280
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
58
4.9k
Documentation Writing (for coders)
carmenintech
59
3.7k
Scaling GitHub
holman
456
140k
Designing the Hi-DPI Web
ddemaree
275
33k
The Brand Is Dead. Long Live the Brand.
mthomps
48
19k
Navigating Team Friction
lara
177
13k
Infographics Made Easy
chrislema
237
17k
Practical Orchestrator
shlominoach
180
9.6k
Agile that works and the tools we love
rasmusluckow
323
20k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
Transcript
自己紹介 氏名: 田川裕隆(たがわひろたか) 大学: 同志社大学社会学部社会学科 2回 配属: 23卒実践就業型インターン@AWA 得意技術: JS/TS
興味: 大規模サービス/テスト自動化/自然言語処理 マイブーム: 音楽(YOASOBI/ヨルシカ/ずとまよ)/読書(エッセイ集)/OSS活動(any潰し/テスト追加) リンク集: https://wafuwafu13.hateblo.jp/
配属先紹介 配属先: AWA株式会社 (1) サブスクリプション型(定額制)音楽ストリーミングサービスを提供 ユーザー同士がリアルタイムに、同じ空間で同じ音楽を楽しみながらチャットができるオンライン空間 『LOUNGE(ラウンジ)』をリリース (2) メンター: 山下さん/佐々木さん
(1) https://www.cyberagent.co.jp/corporate/overview/awa/ (2) https://news.awa.fm/jpn/2021/3/9/lounge-launch
やったこと • Terraform のバージョンアップ (v0.12 => v0.13) • 本番LOUNGEサーバーのリソース増強 (Terraform/Datadog)
• LOUNGE検索の追加 (MongoDB/Mongo Connector/Elasticsearch/Jenkins/Ansible) • ドキュメント作成 (DocBase) • LOUNGEの検索処理 (Go/gRPC/grpc-gateway)
背景と用語 用語 MySQL MongoDB Elasticsearch database database index table collection
mapping raw (record) document document column field field 背景 LOUNGEを将来的に検索できるようにしておきたい 検索周辺のコードやツールは 1年以上触られていない コード、ドキュメント、過去の issueを参考に実装 LOUNGE = Room
アーキテクチャ Mongo Connector admin admin user rooms searchRooms search Elasticsearch
Head grpc-gateway terminal rooms
MongoDB admin rooms searchRooms • LOUNGE検索用collectionであるsearchRoomsのスキーマをGo で定義 • 定義からアクセス用コードを Goで自動生成
(I/Oの型安全) • roomsのCRUDに合わせてsearchRoomsもCRUD
Jenkins/Elasticsearch/Elasticsearch Head • LOUNGE検索用のindexをJenkinsのJobで作成 • Elasticsearch Head で index等を可視化 Elasticsearch
Head
Ansible/Mongo Connector/papertrail Mongo Connector searchRooms • MongoDBのデータをElasticsearchに同期 • ECSを使う以前の歴史的経緯 •
JenkinsのJobとしてAnsibleのsshがうまくい かなかったのでローカルで実行 • papertrailでログ監視
gRPC/grpc-gateway admin user search • LOUNGE検索用のproto定義、コード生成 • マイクロサービス間の通信 • grpc-gatewayでデバッグ
• クリーンアーキテクチャ • admin画面作る時間は足りなかった grpc-gateway terminal rooms
感想 Mongo Connector Elasticsearch Head • 夕会すごい • Go読みやすい •
インフラ周り楽しい • 触るレポジトリ多かった • サービスの歴史の理解が重要 • 意外と自走できる部分はあった grpc-gateway