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
9
3.1k
5分でわかるDuckDB
chanyou0311
11
3.9k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
1.4k
データの信頼性を支える仕組みと技術
chanyou0311
6
2.1k
Pulumi に入門してみた
chanyou0311
1
280
release-please で実現する手軽で不変な Docker イメージタグ付け方法
chanyou0311
0
370
データ基盤を支える技術
chanyou0311
9
4.2k
おうちk8s入門 - すごい広島 IT初心者の会 [84]
chanyou0311
1
350
オンラインコミュニケーションの課題と、その乗り越え方
chanyou0311
0
520
Other Decks in Technology
See All in Technology
はじめてのSDET / My first challenge as a SDET
bun913
1
260
Writing Ruby Scripts with TypeProf
mame
0
170
Classmethod AI Talks(CATs) #21 司会進行スライド(2025.04.17) / classmethod-ai-talks-aka-cats_moderator-slides_vol21_2025-04-17
shinyaa31
0
600
バックオフィス向け toB SaaS バクラクにおけるレコメンド技術活用 / recommender-systems-in-layerx-bakuraku
yuya4
6
550
技術者はかっこいいものだ!!~キルラキルから学んだエンジニアの生き方~
masakiokuda
2
270
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
200
地味にいろいろあった! 2025春のAmazon Bedrockアップデートおさらい
minorun365
PRO
1
270
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
11
3k
4/16/25 - SFJug - Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
2
120
バクラクの認証基盤の成長と現在地 / bakuraku-authn-platform
convto
1
620
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
2
420
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
240
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
680
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
Thoughts on Productivity
jonyablonski
69
4.6k
Facilitating Awesome Meetings
lara
54
6.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
550
For a Future-Friendly Web
brad_frost
176
9.7k
Unsuck your backbone
ammeep
670
57k
Rails Girls Zürich Keynote
gr2m
94
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.6k
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 積極的に採⽤中です!! データ基盤を通して、プロダクトと組織の成⻑を⼀緒に⽀えましょう!