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
970
BIRのアーキテクチャと データ処理
Jumpei Takiyasu
February 18, 2021
Tweet
Share
More Decks by Jumpei Takiyasu
See All by Jumpei Takiyasu
BIRのアーキテクチャと 技術選定
juntaki
0
690
ROSでSLAMラジコンをつくる
juntaki
0
3.3k
6足歩行ロボットをつくった
juntaki
0
620
GoでAPIサーバをはやくつくる
juntaki
26
12k
Undocumented!? firebase
juntaki
0
230
3Dプリンタと4足歩行プロトタイプ
juntaki
0
6.5k
アンケートの集計システムを作った
juntaki
0
3.3k
Goならわかる Linuxのメモリ管理
juntaki
13
6.1k
社内勉強会の管理ツール Sugoi Meetupをつくった
juntaki
0
750
Other Decks in Technology
See All in Technology
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
860
TSのコードをRustで書き直した話
askua
2
180
新卒1年目、はじめてのアプリケーションサーバー【IBM WebSphere Liberty】
ktgrryt
0
130
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
150
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
12k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
My small contributions - Fujiwara Tech Conference 2025
ijin
0
1.4k
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
130
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
470
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Become a Pro
speakerdeck
PRO
26
5.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
Code Reviewing Like a Champion
maltzj
521
39k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Gamification - CAS2011
davidbonilla
80
5.1k
How STYLIGHT went responsive
nonsquared
96
5.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
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! エムスリーのエンジニア 採用サイトはこちら アンケートはこちら
※現在は終了 しています