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
710
CA Tech JOB 成果発表
wafuwafu13
March 31, 2021
Tweet
Share
More Decks by wafuwafu13
See All by wafuwafu13
はてなサマーインターン成果報告 ~xyz記法とマイクロサービス~
wafuwafu13
0
1.4k
Other Decks in Programming
See All in Programming
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.4k
クラウドに依存しないS3を使った開発術
simesaba80
0
230
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
470
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
340
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
120
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
170
これならできる!個人開発のすゝめ
tinykitten
PRO
0
150
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
230
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
170
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
250
ゆくKotlin くるRust
exoego
1
200
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
310
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
420
Mobile First: as difficult as doing things right
swwweet
225
10k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
75
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
380
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
200
The Invisible Side of Design
smashingmag
302
51k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
210
Designing for Timeless Needs
cassininazir
0
120
Building Applications with DynamoDB
mza
96
6.9k
The Curse of the Amulet
leimatthew05
0
7.3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
890
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