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

データ駆動のFinOpsを実現するための社内横断データ基盤

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for kesompochy kesompochy
November 07, 2024
270

 データ駆動のFinOpsを実現するための社内横断データ基盤

2024.11.07開催 CloudNative Days Winter 2024 プレイベント(ハイブリッド開催)の登壇資料

Avatar for kesompochy

kesompochy

November 07, 2024
Tweet

More Decks by kesompochy

Transcript

  1. FinOpsについて 11 > “FinOps is an operational framework and cultural

    practice which maximizes the business value of cloud, enables timely data-driven decision making, and creates financial accountability through collaboration between engineering, finance, and business teams.” https://www.finops.org/introduction/what-is-finops/ • クラウドのビジネス価値を最⼤化するための運⽤枠組みと⽂化的実践 • データ駆動の意思決定を可能にする • エンジニアリング、財務、ビジネスチームの協働によって財務的な説 明責任を創出する FinOps
  2. FinOpsについて 12 FinOps FoundationはFinOpsのフェーズを次の3つに分類している • Inform ◦ データの収集とレポーティング • Optimize

    ◦ コスト最適化 • Operate ◦ 継続的運⽤ FinOps Phases   https://www.finops.org/framework/phases/
  3. FinOpsについて 13 informは、レポーティングの段階である • データソースを特定する ◦ コストデータはどこから来る? • コストデータから配分処理を正確に⾏う ◦

    複数のチームが⼀つのクラウドアカウントを共有していたらどう やって按分する? • それらをリアルタイムに可視化する FinOps Phases -inform-
  4. FinOpsについて 15 operateは、継続的運⽤の段階である • 組織的な変更を実装する ◦ ガバナンスポリシーの確⽴ ◦ コンプライアンスモニタリング ◦

    トレーニングプログラムの開発 • 説明責任の⽂化を構築する • 反復的に発展させる ◦ inform、optimizeフェーズに戻って成熟度を⾼める FinOps Phases -operate-
  5. FinOpsについて 16 • Inform ◦ データの収集とレポーティング • Optimize ◦ コスト最適化

    • Operate ◦ 継続的運⽤ FinOps Phases(再掲)   https://www.finops.org/framework/phases/
  6. 19 ⾃⼰紹介 GMOペパボ 技術部 データ基盤チーム 2022年 新卒⼊社 染⽮ 健⼈ Someya

    Kento • インフラエンジニア • データ基盤の信頼性向上や機能開発をやっています • 好きなアザラシはワモンアザラシです • Twitter : @kesompochy • GitHub: @kesompochy
  7. 20 アジェンダ 1. 導⼊ - クラウドコストあるあるとFinOpsについて- 2. ペパボのFinOps課題 3. ペパボのデータ基盤”Bigfoot”について

    4. ペパボのFinOps inform基盤”Billingfoot”の誕⽣ 4.1. データ抽出 4.1.1. Google Cloud 4.1.2. AWS 4.1.3. Datadog 4.2. データ変換 5. 今後の展望 -効果的なoptimize, operateを⽬指して-
  8. GMOペパボについて GMOペパボのサービス 金融支援 事業 ホスティン グ 事業 ハンドメイド 事業 EC支援

    事業 表現したい人を支援するためのサービスを複数運営している
  9. GMOペパボについて 25 • IaaS, PaaS ◦ AWS ◦ Google Cloud

    ◦ Heroku • SaaS ◦ Datadog ◦ Mackerel • etc… 主に使⽤しているクラウドサービス ※太字のもののコストが支配的でかつ変動しやすい
  10. Bigfootについて 28 • ペパボのデータ駆動化を実現するために⽣まれた • 複数のデータが社内から集まっている ◦ アプリケーションDBから抽出したデータ ◦ サービスユーザーの⾏動ログデータ

    ◦ SaaSから抽出したデータ • Bigfootを活⽤することで FinOps課題の解決を⽬指す ペパボのデータ基盤 “Bigfoot” 「Bigfootくん」と社内で 親しまれているキャラクター
  11. 29 Bigfoot 概略図 logs metrics GitHub issues databases tbls BigQuery

    bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow
  12. Billingfoot 32 • Inform ◦ 任意のクラウドサービスのコストデータを抽出する ◦ 抽出したコストデータを変換し、 標準形式のコスト情報として提供する ◦

    他のデータと合わせて、ビジネス価値を⽰すコスト情報を提供する ▪ Unit Economics • 収益最⼤化のために限界費⽤‧限界収益を扱う • 「単位収容ユーザーごとのクラウドコスト」など Billingfootの機能
  13. 35

  14. Billingfoot • 詰まりポイント ◦ Data Exportによって1⽇に複数回のコストデータが 配置されるが、そのオブジェクトには 「その⽉のすべてのコストデータ」が含まれる ▪ つまり、当⽉のファイルをすべて保持して転送する必

    要はない • すべてのファイルを外部テーブルとして参照すると ⼤量の重複が発⽣する(⼀敗) ▪ 「M⽉のファイル」で毎回上書きするのがよい データ抽出 -AWS- 39
  15. Billingfoot • Usage MeteringのWeb APIが提供されている ◦ https://docs.datadoghq.com/api/latest/usage-metering/ • Usage Metering

    APIからAirbyteで抽出する ◦ Airbyteは異なるデータソース間でデータを同期できるツール ◦ セルフホストのAirbyteを運⽤している ◦ Cloud Funcitonなどで定期的にリクエストを投げるでもよいが、 せっかくAirbyteが運⽤されているので使いたかった データ抽出 -Datadog- 40
  16. 41 Bigfoot 概略図(再掲) logs metrics GitHub issues databases tbls BigQuery

    bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow
  17. Billingfoot • Airbyte Connector ◦ Airbyteではさまざまな”Connector”を使って抽出元や抽出先を設定する ◦ Datadog Connectorもあった ▪

    https://docs.airbyte.com/integrations/sources/datadog ◦ しかしこのコネクタはUsage Metering APIからの抽出はサポートしていない? データ抽出 -Datadog- 42
  18. Billingfoot • Custom Connectorを作った ◦ いったん、Billingfootに必要な特定APIのみを対応した ▪ 特定⽉の推定コスト ▪ 時間ごと‧product

    familyごとの使⽤量 ▪ Usage Metering APIは他にもAPIエンドポイントがある データ抽出 -Datadog- 45
  19. Billingfoot • コストデータを他のデータと⼀緒にBigQueryに⼊れる • Google Cloud ◦ BigQueryへのエクスポート機能 • AWS

    ◦ S3へのエクスポート機能 • Datadog ◦ Web APIを叩くAirbyte Custom Connectorを作った データ抽出 まとめ 46
  20. Billingfoot • Cloud Composer ◦ Apache Airflowベースのマネージドサービス ◦ DAG(有向⾮巡回グラフ)の実⾏ができる •

    dbt ◦ Airflowの中でデータ変換処理ツールとして dbt(data build tool)を採⽤している ◦ yamlとSQLでデータ変換処理を定義できる ◦ Airflowの中でdbtを実⾏するためにCosmosというツールを採⽤している データ変換 47
  21. 48 Bigfoot 概略図(再再掲) logs metrics GitHub issues databases tbls BigQuery

    bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow
  22. Billingfoot • BIツールからセルフサービスでダッシュボード化して もらう ◦ Redash ◦ Looker Studio ◦

    Verne ▪ PythonのフレームワークであるStreamlitを利⽤したアプリケーションの社内呼称 ▪ Dashboard as CodeとしてダッシュボードにしたいSQLコードをバージョン管理している 可視化 50
  23. Billingfoot 52 • Optimize ◦ コストデータの異常検知 ▪ 各クラウドサービスにあったりするが社として標準的に実施できると嬉しい ◦ 各サービスの特性を考慮したコスト最適化実施

    • Operate ◦ インフラコストのバジェット管理 ◦ マネージャーを秘伝スプレッドシートから引き剥がす 今後Billingfootで実現されたいこと