Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データの価値を失わないためのData Reliability

Sotaro Tanaka
February 06, 2020

データの価値を失わないためのData Reliability

Sotaro Tanaka

February 06, 2020
Tweet

More Decks by Sotaro Tanaka

Other Decks in Technology

Transcript

  1. 1
    データの価値を失わないための
    Data Reliability Engineering
    前向きデータ整備人 #2 / 2020-02-06

    View full-size slide

  2. 2
    ● 自己紹介 / 会社紹介
    ● Data Reliability Engineeringとは何か
    ● Data Reliability Engineeringのはじめかた
    ● eurekaでのData Reliability Engineeringの取り組み
    今日話すこと

    View full-size slide

  3. 3
    Sotaro Tanaka @__sotaron__
    Data Engineer @ SRE Team, eureka Inc.
    ● データ基盤の設計 / 構築 / 運用
    ● SRE
    ● Data Reliability Engineering
    ● 好き: BigQuery / Docker / k8s / Go / Python
    ● 趣味: アニメ / ゲーム
    自己紹介

    View full-size slide

  4. 4
    Key Takeaways(先出し)
    ● データの価値を失わないためには、データの整備だけでなく、品質やReliabilityに
    ついても目を向ける必要がある
    ● データのReliabilityは、エンジニアだけで考えるものではない
    ● Data Reliability Engineeringは、理論も実践もこれからな分野。仲間求ム。

    View full-size slide

  5. 5
    Data Reliability Engineering
    とは何か?

    View full-size slide

  6. 6
    前提
    ● 「Data Reliability Engineering」には、
    どこかの機関が定めている定義はありません (たぶん)
    ● eurekaが実務上課題にぶち当たり、必要にかられて発生したムーブです
    ● ある程度一般化することで、他の人に資するのでは?と思い、話をします

    View full-size slide

  7. 7
    Why ?
    Data Reliability Engineering

    View full-size slide

  8. 8
    [Why?] Data Reliability Engineering
    ソフトウェアに品質があるように、データにも品質がある
    ※ DMBOK本の「データ品質」のセクションおすすめ

    View full-size slide

  9. 9
    case1: A/Bテストとデータ欠損
    ● ある施策で、セグメントを2つに分けて、新機能のA/Bテストを実施した
    ● 新機能の実装において、特定条件でログが発火しないバグがあった
    → 新機能に対して否定的なアクションのログが欠損していたら?
    → 間違った意思決定をする可能性は高い

    View full-size slide

  10. 10
    データの完全性、一貫性の問題
    ● ある施策で、セグメントを2つに分けて、新機能のA/Bテストを実施した
    ● 新機能の実装において、特定条件でログが発火しないバグがあった
    → 新機能に対して否定的なアクションのログが欠損していたら?
    → 間違った意思決定をする可能性は高い

    View full-size slide

  11. 11
    case2: 「これ、本当に最新のデータ?」
    ● 毎朝8:00に更新されるKPIレポート、
    PMはみんな朝このレポートを見て、サービスのヘルスチェックをしている
    ● ある施策のリリース後、関連バッチタスクのリソース圧迫により、ログが遅延してい

    → アクション率の計算が不当に低くなり、切り戻し判断をしてしまうかも
    → 遅延が常態化すれば、PMにとって意思決定に使えないデータになる

    View full-size slide

  12. 12
    データの適時性 Timelinessの問題
    ● 毎朝8:00に更新されるKPIレポート、
    PMはみんな朝このレポートを見て、サービスのヘルスチェックをしている
    ● ある施策のリリース後、関連バッチタスクのリソース圧迫により、ログが遅延してい

    → アクション率の計算が不当に低くなり、切り戻し判断をしてしまうかも
    → 遅延が常態化すれば、PMにとって意思決定に使えないデータになる

    View full-size slide

  13. 13
    case3: データ基盤 AM3:00
    インフラエンジニア
    AM3:00「なんかバッチタスクこけてる!急いで直さなきゃ!」
    AM5:00「ふう…なんとか直った。寝よう。明日起きれるかな…」
    アナリスト
    翌朝「あー、そのタスクたまに失敗するやつだからほっといていいよ」

    View full-size slide

  14. 14
    サービスレベルがない問題
    つらい

    View full-size slide

  15. 15
    DREはデータの価値を失わないためにある
    以下のような指標を監視することで、高品質なデータを提供し続ける
    ● データがどれくらい欠損しているか => Integrity
    ● あるデータが他のデータと一貫しているか => Consistency
    ● レポートは見る人にとって適切な新鮮さで更新されているか? => Timeliness
    ● etc...

    View full-size slide

  16. 16
    What ?
    Data Reliability Engineering

    View full-size slide

  17. 17
    [What?] Data Reliability Engineering
    What is データ信頼性エンジニアリング = Data Reliability Engineering(DRE) ??

    View full-size slide

  18. 18
    DRE = SRE, DBRE ?
    似ているが、全く同じものではない

    View full-size slide

  19. 19
    DRE impl Reliability Engineering
    Reliability Engineering 信頼性エンジニアリング
    Data
    Reliability
    Engineering
    Reliability Engineeringの具象としてのSRE, DBRE, DRE

    View full-size slide

  20. 20
    DRE impl Reliability Engineering
    w/ DevOps
    Reliability Engineering 信頼性エンジニアリング
    Data
    Reliability
    Engineering

    View full-size slide

  21. 21
    ソフトウェアの不確実性やリスクと向き合い続ける営み
    Reliability Engineering

    View full-size slide

  22. 22
    価値のデリバリーに関わる各チームの協力体制とそれを可能にするメソッド
    ● CI/CD、自動化
    ● Dev ⇄ Opsのフィードバック
    ● etc..
    DevOps, DataOps, etc...

    View full-size slide

  23. 23
    Who ?
    Data Reliability Engineering

    View full-size slide

  24. 24
    [Who?] Data Reliability Engineering
    ベースは、GoogleのSREチームの簡潔な定義をそのまま引用できそう
    My explanation is simple: SRE is what happens when you ask a software engineer
    to design an operations team. ( 『Site Reliability Engineering』より)

    View full-size slide

  25. 25
    AnalyzeとOps, DataとOps
    とはいえ、アナリストとエンジニアではスキルセットが大きく違う場合もある
    ● サービスレベルを軸に、AnalyzeとOpsの関心ごとを接続しよう

    View full-size slide

  26. 26
    Data Reliability Engineering
    のはじめかた

    View full-size slide

  27. 27
    DREのロードマップ、サイクル
    まずは、モニタリングを始めるところまで。その先はサイクルを回す。

    View full-size slide

  28. 28
    サービスレベルの設計から
    ユーザーにとっての「使える/使えない」からサービスレベルに落とし込む

    View full-size slide

  29. 29
    効果的なモニタリングを継続的におこなうには、それに適したシステムが必要
    Observable, Configurableなシステムに
    監視Saasの活用 Infrastructure as Code

    View full-size slide

  30. 30
    eurekaでのDREの取り組み

    View full-size slide

  31. 31
    Observableなシステムへの移行検証
    重要レポートを対象に、システムをredash×GASから徐々に移行検証したり
    Current Future

    View full-size slide

  32. 32
    BI / DREの定例MTG
    BIチームとDREで、データ品質や利便性を向上するための定例MTGを開催
    みんなで議論したり 主要レポートの更新チェック
    したり

    View full-size slide

  33. 33
    仲間がほしい。事例が聞きたい。
    ● DREには聖典がまだない
    ● 英語のブログとかは、まあまあ見かけるけど
    ● みんなどうしてるの?
    ● 懇親会とかでいろんなお話聞かせてください!

    View full-size slide

  34. 34
    Key Takeaways
    ● データの価値を失わないためには、データの整備だけでなく、品質やReliabilityに
    ついても目を向ける必要がある
    ● データのReliabilityは、エンジニアだけで考えるものではない
    ● Data Reliability Engineeringは、理論も実践もこれからな分野。仲間求ム。

    View full-size slide