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
What is DRE? - Road to SRE NEXT@広島
Search
chanyou0311
July 20, 2024
Technology
3
1.1k
What is DRE? - Road to SRE NEXT@広島
Road to SRE NEXT@広島 での登壇資料です。
https://sre-lounge.connpass.com/event/320488/
chanyou0311
July 20, 2024
Tweet
Share
More Decks by chanyou0311
See All by chanyou0311
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
10
3.6k
5分でわかるDuckDB
chanyou0311
11
4.1k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
4
1.5k
データの信頼性を支える仕組みと技術
chanyou0311
6
2.2k
Pulumi に入門してみた
chanyou0311
1
320
release-please で実現する手軽で不変な Docker イメージタグ付け方法
chanyou0311
0
430
データ基盤を支える技術
chanyou0311
9
4.4k
おうちk8s入門 - すごい広島 IT初心者の会 [84]
chanyou0311
1
380
オンラインコミュニケーションの課題と、その乗り越え方
chanyou0311
0
550
Other Decks in Technology
See All in Technology
LLMでAI-OCR、実際どうなの? / llm_ai_ocr_layerx_bet_ai_day_lt
sbrf248
0
420
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
280
バクラクによるコーポレート業務の自動運転 #BetAIDay
layerx
PRO
1
810
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
200
多様なニーズに応える Movable Type ラインナップ 全紹介
masakah
0
120
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
3
250
帳票構造化タスクにおけるLLMファインチューニングの性能評価
yosukeyoshida
1
230
AI コードレビューが面倒すぎるのでテスト駆動開発で解決しようとして読んだら、根本的に俺の勘違いだった
mutsumix
0
160
大規模イベントに向けた ABEMA アーキテクチャの遍歴 ~ Platform Strategy 詳細解説 ~
nagapad
0
180
Kiroから考える AIコーディングツールの潮流
s4yuba
4
640
OPENLOGI Company Profile for engineer
hr01
1
37k
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
400
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How to train your dragon (web standard)
notwaldorf
96
6.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Producing Creativity
orderedlist
PRO
346
40k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
2024/07/20 Yu Nakamura - chanyou What is DRE? @chanyou0311
Yu Nakamura - chanyou • スタートアップでデータエンジニアとして交通データ分析基盤 の構築‧運⽤を経験 • その後2024年3⽉に株式会社タイミーの DRE
チームにジョイン • モデリング済みのデータを各種ツールに送出する Reverse ETL の実装などを担当 • 広島在住。趣味はおうち Kubernetes クラスタ • YAPC::Hiroshima 2024 のスタッフなども
タイミーとは 3 「働きたい時間」と「働いてほしい時間」を マッチングするスキマバイトサービス 従来の「求⼈サイト」でも「派遣」でもない
タイミーの特徴 4
タイミーの実績 スキマ バイト No.1 ※1 ※2 [調査⽅法]インターネット調査 [調査期間]2024 年 2
⽉ 9 ⽇~11 ⽇ [調査概要]スキマバイトアプリサービスの実態調査 [調査委託先]株式会社マクロミル 利⽤率 ‧リピート率 ※1 ※2 導⼊事業者数 98,000企業 ワーカー数 700万⼈
DRE とはなにか?
DRE とは • Data Reliability Engineering の略 ◦ データの信頼性を確保する新しいアプローチのこと •
SRE のプラクティスをデータに適⽤する試み
目次 • DRE チームが担う役割 • データの信頼性とは • DRE チームで実践しているプラクティス
1 DRE チームが担う役割
DRE チームのミッション “私たちDREは、DataOpsによる、パイプライン構築、⾃動化、監視、デプロイメントの迅速化、 データ品質の向上などの取り組みにより、信頼性(スピード、品質‧安定、ユーザビリティ)の⾼ いデータ基盤プロダクトをユーザに提供します。”
タイミーにおけるデータのライフサイクル
ワークフロー管理‧Extract / Load
データクレンジング
Reverse ETL
モニタリング
リソース管理‧IAM
DRE が連携する社内関係者 • データを扱うチーム ◦ アナリティクスエンジニア ◦ データアナリスト ◦ データサイエンティスト
• プロダクト‧エンジニアリング本部 ◦ Dev Platform Squad ◦ その他 Squad
DRE が連携する社内関係者 • マーケティング部⾨ ◦ toC toB の両⽅にアプローチ ▪ ユーザーマーケティング
▪ クライアントマーケティング • 営業部⾨ ◦ 600名を超える営業組織 ◦ セールスシステム • コーポレート部⾨ ◦ 法務 ◦ セキュリティ
社内の全⽅位と向き合う必要がある • 部署で使うデータはどこから供給されるのか? ◦ 外部SaaSなのか、当社プロダクトなのか ◦ いつ、どのように供給されるのか • 供給されたデータは、いつどのように使われるのか? ◦
毎⽇参照されるのか、⽉次で参照されるのか ◦ システム連携したいのか、意思決定を伴うのか データの理解も重要だが、組織と業務プロセスの理解がより重要
2 データの信頼性とは
信頼性が低下すると • Webアプリケーションにおいて信頼性が低下すると ◦ 「アクセスできないよ…」 → リクエストの可⽤性 ◦ 「サイト重くない?」 →
リクエストのレイテンシ • ⼀⽅、データ基盤において信頼性が低下すると ◦ 「昨⽇まで⾒れてたダッシュボードが今朝から表⽰できなくなったよ…」 ◦ 「前⽇分のデータがまだダッシュボードに反映されてないよ…」 ◦ 「なんかデータ、ダブってない?」
DMBOK を拠り所にデータの信頼性を紐解く • データマネジメント知識体系ガイド 第⼆版 [⽇経BP社] ◦ 様々なデータ品質の評価軸が紹介されている
タイミーで重視しているデータ品質の評価軸 特性 定義 完全性 ⽋損したデータの割合 適時性 データ参照時と現実のデータとの時間差 ⼀意性 重複したデータの割合 ⼀貫性
型、タイムゾーン、表記揺れなどの値の書式が統⼀されていない割合
その他のデータ品質 • メタデータ ◦ テーブルやカラムの意味や制約などの補⾜情報 • データガバナンス ◦ 最⼩権限の原則 •
データダウンタイム ◦ データが⽋落したり不正確な状態の期間
(参考)データ品質がテーマの発表資料 https://speakerdeck.com/ttccddtoki/dmbokwocan-kao-nisitadetamanezimentonoqu-rizu-mi
3 DRE チームで実践している プラクティス
DRE チームで実践しているプラクティス • ワークフローのステータス監視 • データの外形監視 • dbt によるメタデータ整備とテスト
ワークフローのステータス監視 • ワークフローが失敗した場合にアラートを受け取る ◦ 原因の切り分け、影響範囲の調査などの対応
データの外形監視 • 定期的に転送前後のデータセットの⽐較を⾏う ◦ テーブルごとに完全性、適時性、⼀意性が満たされているか検査する ▪ 満たさない場合はアラートを受け取る ◦ データソースの新規テーブルやカラムの検知も⾏う •
具体例 ◦ 転送元: プロダクトの RDB ◦ 転送先: BigQuery ◦ 検査内容: ⾏数が⼀致するか / MAX(updated_at) が条件を満たすか
dbt によるメタデータ整備とテスト • dbt で宣⾔的に BigQuery 内のデータの変換を⾏う ◦ タイミーでは変換内容に応じて、下図のようにレイヤリングしている ◦
各レイヤーでモデル(テーブルやビュー)が実体化される https://tech.timee.co.jp/entry/2023/10/23/143322
dbt によるメタデータ整備とテスト • モデルは Jinja で拡張された SQL で定義される • モデルごとにメタデータを
YAML で定義できる ◦ カラムの型や説明 ◦ ⾃動テスト https://docs.getdbt.com/docs/build/documentation
dbt によるメタデータ整備とテスト • データテスト ◦ 実データに対して汎⽤的な テストを実施できる ▪ unique ▪
not_null ▪ … • ユニットテスト ◦ ⽤意したテストデータに 対して期待する出⼒となるか https://docs.getdbt.com/docs/build/data-tests
4 今後の展望
タイミーのデータ基盤が抱える課題 • データソースの変更による下流への影響 • ⼿⼊⼒データの品質保証 • ストリーミングデータにおける完全性の担保
データソースの変更による下流への影響
知らない間に転送元のテーブルの列が削除されたら • 途中のデータ変換で列指定されていたら? ◦ ワークフローが停⽌してしまい、適時性が損なわれる • downstream でダッシュボードの表⽰に使われていたら? ◦ 古いデータのまま表⽰したり、そもそも表⽰できなかったりする
◦ 適切な意思決定ができない • 機械学習で使われていたら? ◦ 古いデータをそのまま利⽤したり、機械学習パイプラインが停⽌したりする ◦ 予測精度の低下、機会損失を招く
データソースの意図しない変更をどう防ぐか • モニタリングやテストにより、ある程度対処できている ◦ ただし対処であって、予防ではない • データコントラクトによって事前に防げないか模索中
データコントラクトとは • 契約プログラミングの概念をデータに持ち込んだもの ◦ データ版 OpenAPI のようなもの ◦ 破壊的な変更を避けて改善活動が実施できる https://datacontract.com/
データコントラクトとは • データがどのような形式で供給されるかを定義した⽂書 • いくつかの標準がある ◦ Open Data Contract Standard
(ODCS) ◦ Data Contract CLI • データの所有者、形式などの記載ができる • データ品質、サービスレベルの記載も⾏える • YAML でマシンリーダブルに表現される ◦ CLI で実データを参照して、 データ品質の検証ができる https://datacontract.com/
データコントラクトの運⽤を⽬指す • データ供給元と利⽤先のチーム間で、データの形式について合意を取るようにしたい ◦ いくつかのプロジェクトで試験的に導⼊ • プロダクトの CI に組み込むと? ◦
「このテーブルの型を変えようとしているけど、社内のダッシュボードで使われているのでダメです⚠」 https://datacontract.com/
5 まとめ
まとめ • DRE とは SRE のプラクティスをデータに適⽤する試みのこと • 社内の多様なチームと連携しながら、データの供給から活⽤までを⽀えている • 扱うデータの理解は重要だが、組織とその業務プロセスへの理解も不可⽋である
• DRE のプラクティスとして、ワークフローやデータそのもののモニタリングを通し て、信頼性の低下にいち早く対処している • データ基盤と組織に新しい概念を持ち込むことで、信頼性の向上を⽬指している
https://hrmos.co/pages/timee/jobs/1682251404118319115 積極的に採⽤中です!! データ基盤を通して、プロダクトと組織の成⻑を⼀緒に⽀えましょう!