1データの価値を失わないためのData Reliability Engineering前向きデータ整備人 #2 / 2020-02-06
View Slide
2● 自己紹介 / 会社紹介● Data Reliability Engineeringとは何か● Data Reliability Engineeringのはじめかた● eurekaでのData Reliability Engineeringの取り組み今日話すこと
3Sotaro Tanaka @__sotaron__Data Engineer @ SRE Team, eureka Inc.● データ基盤の設計 / 構築 / 運用● SRE● Data Reliability Engineering● 好き: BigQuery / Docker / k8s / Go / Python● 趣味: アニメ / ゲーム自己紹介
4Key Takeaways(先出し)● データの価値を失わないためには、データの整備だけでなく、品質やReliabilityについても目を向ける必要がある● データのReliabilityは、エンジニアだけで考えるものではない● Data Reliability Engineeringは、理論も実践もこれからな分野。仲間求ム。
5Data Reliability Engineeringとは何か?
6前提● 「Data Reliability Engineering」には、どこかの機関が定めている定義はありません (たぶん)● eurekaが実務上課題にぶち当たり、必要にかられて発生したムーブです● ある程度一般化することで、他の人に資するのでは?と思い、話をします
7Why ?Data Reliability Engineering
8[Why?] Data Reliability Engineeringソフトウェアに品質があるように、データにも品質がある※ DMBOK本の「データ品質」のセクションおすすめ
9case1: A/Bテストとデータ欠損● ある施策で、セグメントを2つに分けて、新機能のA/Bテストを実施した● 新機能の実装において、特定条件でログが発火しないバグがあった→ 新機能に対して否定的なアクションのログが欠損していたら?→ 間違った意思決定をする可能性は高い
10データの完全性、一貫性の問題● ある施策で、セグメントを2つに分けて、新機能のA/Bテストを実施した● 新機能の実装において、特定条件でログが発火しないバグがあった→ 新機能に対して否定的なアクションのログが欠損していたら?→ 間違った意思決定をする可能性は高い
11case2: 「これ、本当に最新のデータ?」● 毎朝8:00に更新されるKPIレポート、PMはみんな朝このレポートを見て、サービスのヘルスチェックをしている● ある施策のリリース後、関連バッチタスクのリソース圧迫により、ログが遅延していた→ アクション率の計算が不当に低くなり、切り戻し判断をしてしまうかも→ 遅延が常態化すれば、PMにとって意思決定に使えないデータになる
12データの適時性 Timelinessの問題● 毎朝8:00に更新されるKPIレポート、PMはみんな朝このレポートを見て、サービスのヘルスチェックをしている● ある施策のリリース後、関連バッチタスクのリソース圧迫により、ログが遅延していた→ アクション率の計算が不当に低くなり、切り戻し判断をしてしまうかも→ 遅延が常態化すれば、PMにとって意思決定に使えないデータになる
13case3: データ基盤 AM3:00インフラエンジニアAM3:00「なんかバッチタスクこけてる!急いで直さなきゃ!」AM5:00「ふう…なんとか直った。寝よう。明日起きれるかな…」アナリスト翌朝「あー、そのタスクたまに失敗するやつだからほっといていいよ」
14サービスレベルがない問題つらい
15DREはデータの価値を失わないためにある以下のような指標を監視することで、高品質なデータを提供し続ける● データがどれくらい欠損しているか => Integrity● あるデータが他のデータと一貫しているか => Consistency● レポートは見る人にとって適切な新鮮さで更新されているか? => Timeliness● etc...
16What ?Data Reliability Engineering
17[What?] Data Reliability EngineeringWhat is データ信頼性エンジニアリング = Data Reliability Engineering(DRE) ??
18DRE = SRE, DBRE ?似ているが、全く同じものではない
19DRE impl Reliability EngineeringReliability Engineering 信頼性エンジニアリングDataReliabilityEngineeringReliability Engineeringの具象としてのSRE, DBRE, DRE
20DRE impl Reliability Engineeringw/ DevOpsReliability Engineering 信頼性エンジニアリングDataReliabilityEngineering
21ソフトウェアの不確実性やリスクと向き合い続ける営みReliability Engineering
22価値のデリバリーに関わる各チームの協力体制とそれを可能にするメソッド● CI/CD、自動化● Dev ⇄ Opsのフィードバック● etc..DevOps, DataOps, etc...
23Who ?Data Reliability Engineering
24[Who?] Data Reliability Engineeringベースは、GoogleのSREチームの簡潔な定義をそのまま引用できそうMy explanation is simple: SRE is what happens when you ask a software engineerto design an operations team. ( 『Site Reliability Engineering』より)
25AnalyzeとOps, DataとOpsとはいえ、アナリストとエンジニアではスキルセットが大きく違う場合もある● サービスレベルを軸に、AnalyzeとOpsの関心ごとを接続しよう
26Data Reliability Engineeringのはじめかた
27DREのロードマップ、サイクルまずは、モニタリングを始めるところまで。その先はサイクルを回す。
28サービスレベルの設計からユーザーにとっての「使える/使えない」からサービスレベルに落とし込む
29効果的なモニタリングを継続的におこなうには、それに適したシステムが必要Observable, Configurableなシステムに監視Saasの活用 Infrastructure as Code
30eurekaでのDREの取り組み
31Observableなシステムへの移行検証重要レポートを対象に、システムをredash×GASから徐々に移行検証したりCurrent Future
32BI / DREの定例MTGBIチームとDREで、データ品質や利便性を向上するための定例MTGを開催みんなで議論したり 主要レポートの更新チェックしたり
33仲間がほしい。事例が聞きたい。● DREには聖典がまだない● 英語のブログとかは、まあまあ見かけるけど● みんなどうしてるの?● 懇親会とかでいろんなお話聞かせてください!
34Key Takeaways● データの価値を失わないためには、データの整備だけでなく、品質やReliabilityについても目を向ける必要がある● データのReliabilityは、エンジニアだけで考えるものではない● Data Reliability Engineeringは、理論も実践もこれからな分野。仲間求ム。
35