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
680
CA Tech JOB 成果発表
wafuwafu13
March 31, 2021
Tweet
Share
More Decks by wafuwafu13
See All by wafuwafu13
はてなサマーインターン成果報告 ~xyz記法とマイクロサービス~
wafuwafu13
0
1.3k
Other Decks in Programming
See All in Programming
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.1k
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
390
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
910
AIともっと楽するE2Eテスト
myohei
6
2.6k
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
150
おやつのお供はお決まりですか?@WWDC25 Recap -Japan-\(region).swift
shingangan
0
140
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
130
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Porting a visionOS App to Android XR
akkeylab
0
470
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
190
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
18k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
690
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Building an army of robots
kneath
306
45k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
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