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
BIRのアーキテクチャと データ処理
Search
Jumpei Takiyasu
February 18, 2021
Technology
0
1.3k
BIRのアーキテクチャと データ処理
Jumpei Takiyasu
February 18, 2021
Tweet
Share
More Decks by Jumpei Takiyasu
See All by Jumpei Takiyasu
BIRのアーキテクチャと 技術選定
juntaki
0
790
ROSでSLAMラジコンをつくる
juntaki
0
3.6k
6足歩行ロボットをつくった
juntaki
0
740
GoでAPIサーバをはやくつくる
juntaki
26
13k
Undocumented!? firebase
juntaki
0
310
3Dプリンタと4足歩行プロトタイプ
juntaki
0
6.7k
アンケートの集計システムを作った
juntaki
0
3.7k
Goならわかる Linuxのメモリ管理
juntaki
13
6.2k
社内勉強会の管理ツール Sugoi Meetupをつくった
juntaki
0
830
Other Decks in Technology
See All in Technology
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
1
120
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
130
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
310
国井さんにPurview の話を聞く会
sophiakunii
1
300
Claude Codeを使った情報整理術
knishioka
19
11k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
9
3.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
150
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
210
I tried making a solo advent calendar!
zzzzico
0
130
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
160
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
New Earth Scene 8
popppiees
0
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
690
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
sira's awesome portfolio website redesign presentation
elsirapls
0
100
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Code Reviewing Like a Champion
maltzj
527
40k
Chasing Engaging Ingredients in Design
codingconduct
0
93
The World Runs on Bad Software
bkeepers
PRO
72
12k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
Transcript
BIRのアーキテクチャと データ処理 Jumpei Takiyasu @juntaki M3, Inc.
自己紹介 滝安純平(@juntaki) BIRエンジニアチームリーダー兼BIRカンパニー執行役員 バックエンドとWebフロントエンドエンジニア、兼プロダクトマ ネージャをやっています。 もともと組み込みLinuxのカーネル開発をしていました。最近 はFlutterでなにか作っています。 好きな言語はGoʕ◔ϖ◔ʔ 2
今日話すこと • BIRのビジネスとシステムアーキテクチャ(再) • 回答データの活用方法・Cloud Schedulerを使ったバッチ処理 3
BIRのビジネスと システムアーキテクチャ 4
BIR - ビジネスインテリジェンス&リサーチ 医療従事者の会員向けアンケート(国内最大の医師パネル)をベースに、製薬 会社へのマーケティング支援を提供する事業を行っています。 5
アンケートページ
アンケートビジネスの流れ 1. アンケートを作る 2. 配信・督促をがんばる 3. データを整理する 4. データを可視化する アンケートを集める
データを活用できるよ うにする 7
アンケートシステムのアーキテクチャ 8
アンケートシステムのアーキテクチャ 1.アンケートを作る 2.配信・督促をがんばる 3.データを整理する 4. データを可視化する 9
Tableauとは データ可視化ツール • BigQueryやPostgreSQL、 Excelまで色々なデータに接 続可能 • データ整形、集計、可視化ま で、やりたいことは何でもでき る※すごいツール
※使いこなせば…!
Tableauの活用方法 1. 社内向け指標の可視化 a. アンケートの回答状況 b. 各種配信チャネルの流入状況 c. クラウド環境の課金状況 2.
納品物作成 a. クライアント向けダッシュボード b. データダウンロードツール
アンケートで扱うデータと格納先(概要) 配信に使うデータ • 配信ユーザID • アンケートID • ステータス 回答データ •
ユーザID • アンケートID • 回答内容 M3トップページ並のアクセス量 → Cloud Spanner 各アンケートシステムの 性能要件は一般的なWebアプリ → Cloud SQL / Aurora
可視化したいもの 内部的には… • 回答状況 • 各種KPI 納品物では… • 回答&設問 •
会員属性 配信システムの Spannerにある アンケートシステ ムのDB M3会員基盤 各所にあるデータを集めて可視化しなくては使えない 直接参照すると、可視化による負荷を各々考慮する必要があり設計難度が上がる BigQueryへ集約
バッチ処理 BigQueryにデータを集約させるための処理を Webアプリとは非同期に動かしたい • cronジョブ / SpringBatchなどフレームワークの機能 ◦ バッチ専用インスタンスが必要 ◦
アプリごとに作るので統一した管理が難しい • ワークフローエンジン(Digdag, Airflow, etc..) ◦ 依存関係がほぼ無いのでオーバースペック +失敗したときの復旧が面倒(前日の日次バッチ処理など …)
Cloud Schedulerをつかったバッチ処理 BIR独自の バッチ起動処理 他チームがDigdagから 使っていた処理を流用
バッチ処理起動用サーバ(bir-batch) YAMLファイルでエンドポイントを生成する超シンプル独自フレームワーク (Digdagも検討したが、BIRは処理間の依存がなかったので採用せず) • 指定されたFargateにパラメータを渡して起動(現在日付はクエリパラメータ) • 失敗を検知してリトライ&リトライ失敗で通知 - endpoint: /ibis/update_answer
image: 'ibis-container:latest' cmd: /work/run.sh cpu: 256 memory: 512 env: BQ_KEY: 'credential' PASSWORD: 'password' retryable: true 処理ごとに こんな感じの YAMLを書くだけ
この構成のメリット&デメリット メリット Fargateで都度コンテナを立ち上げるので、リソースを食い合って共倒れない Web APIになっているので、再実行が簡単(?date=20210220とすれば過去分も)Cloud Schedulerのコンソールが優秀 • DBメンテナンスでバッチ全部止めたい→停止ボタンおすだけ • 全部のバッチ処理を俯瞰したい
→されてる! デメリット 複雑な依存関係を考慮できない 保守は自分でがんばる
まとめ • BIRのビジネスとシステムアーキテクチャ • 回答データの活用方法・Cloud Schedulerを使ったバッチ処理 18
タイムテーブル 時間 タイトル スピーカー 19:00 ~ 19:05 オープニング 司会 19:05
~ 19:20 BIRのアーキテクチャとデータ処理 滝安 純平 19:20 ~ 19:40 DatastoreからSpannerへのゼロダウンタイム移行 四方田 貫児 アンケートシステムのデータ可視化 木村 一統 19:40 ~ 19:50 質疑応答・クロージング
アンケートのご協力をお願いします ※BIRで作っているアンケートシステム( Tiger)です! 医療従事者でない方はめったに触る機会がないので、ぜひこの機会にどうぞ We’re hiring! エムスリーのエンジニア 採用サイトはこちら アンケートはこちら
※現在は終了 しています