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

開発者生産性指標の可視化 / pepabo-four-keys

2cf373725ded741824c50fd571eda6e1?s=47 KONDO Uchio
February 07, 2022

開発者生産性指標の可視化 / pepabo-four-keys

2cf373725ded741824c50fd571eda6e1?s=128

KONDO Uchio

February 07, 2022
Tweet

More Decks by KONDO Uchio

Other Decks in Technology

Transcript

  1. データ基盤で Four Keysを可視化した話 近藤宇智朗 / GMO PEPABO inc. 2022.02.07 datatech-jp

    Casual Talks #1 1
  2. 2 自己紹介 技術部 データ基盤チーム/技術基盤チーム シニアプリンシパル 2013年 入社 近藤宇智朗 Uchio Kondo (@udzura) 駆け出しデータ基盤エンジニア、シニアシレンジャー。

    • PythonよりRubyが得意... 最近はRustが好き • GCP, BigQuery, Cloud Run • 好きなYouTubeチャンネルはやんちゃクラブ • 福岡三大うどんは資さんうどん過激派です 福岡在住
  3. 3 自己紹介 最近必死にやっていること

  4. 4 アジェンダ 1. ペパボのデータ基盤チームの紹介 2. Four Keysについて 3. 開発活動データのETL 4.

    Dashboard as CodeとStreamlit 5. まとめ
  5. 5 1. セクションタイトル ペパボのデータ基盤チーム

  6. 6 ペパボのデータ基盤チーム データ基盤チームのミッション ペパボ内のあらゆるデータに意味をつけ、そのデータによって 意思決定の支援を行えるプラットフォームを構築し ペパボの全パートナーに提供する。

  7. 7 ペパボのデータ基盤チーム ざっくりしたアーキテクチャ(2022年最新版)

  8. 8 1. セクションタイトル Four Keys

  9. 9 Four Keys とは SRE - トイルのトラッキング (https://cloud.google.com/blog/ja/products/gcp/identifying-and-tracking-toil-using-sre-principles) > トイルに割かれる

    SRE 1 人あたりの時間を 50% 未満に抑え、 > 残りの 50% をエンジニアリング プロジェクトの作業用に確保する リーンとDevOpsの科学 開発チームの生産性を測るための様々な指標の解説 Four Keys (https://cloud.google.com/blog/ja/products/gcp/using-the-four-keys-to-measure-your-devops-performance) > DevOps Research and Assessment(DORA)チームが実施した 6 年間の > 研究から、ソフトウェア開発チームのパフォーマンスを示す 4 つの指標が > 確立されました。 生産性の計測
  10. 10 Four Keys とは Four Keysとは?

  11. 11 Four Keys とは 可視化してみた → どうやっていったか...? という話

  12. 12 1. セクションタイトル 開発活動データのETL

  13. 13 開発活動データのETL 生産性指標の収集・可視化システムの概要 https://tech.pepabo.com/2022/01/06/four-keys-dashboard/

  14. 14 開発活動データのETL GitHub (Enterprise Server) の活動データを軸にすることにした。 以下のようなデータが取得できます : • Issue

    (P/R) の作成数、コメント、紐づいたイベント、クローズ時間 • Commit の内容や回数 • Release の作成数 • GitHub Actions に関する情報(回数、成功失敗、経過時間) … 生産性指標のソースデータ
  15. 15 開発活動データのETL APIを経由したETL APIを叩いて CSVを作成する cli tool 前日分のみを ロード SQLでuniq

  16. 16 1. セクションタイトル Dashboard as Code

  17. 17 Dashboard as Code 皆さんもダッシュボードは作っているとは思いますが ... 問題1: ダッシュボードの内容を共有できない • どういうSQLか、レイアウトは、などなど

    エクスポートしたりシェアするのが面倒なことが多い 問題2: ダッシュボードの変更履歴、構成などが管理できない • うっかり壊した際の復元はどうすれば? 退職者が出たら? どのチームがどれくらいダッシュボードを作ってる? など一覧できない 「可視化」にまつわるダッシュボード問題
  18. 18 Dashboard as Code 問題の内容が、インフラの構成管理と似ているため、 コードで管理するというアプローチを取れないか? Streamlit のことを知る • Streamlitとは:

    ◦ 様々なグラフ描画ライブラリに対応した Webフレームワーク ◦ 宣言的なコードを書くとダッシュボードが作れる ◦ Python 製、類似したフレームワークにDashなどがある • https://streamlit.io/ Dashboard as Code と Streamlit
  19. 19 Dashboard as Code • 最大のポイントは、Google Colabでガチャガチャ可視化したコードを ダッシュボードに持っていきやすい点( Pandas/NumPyをそのまま使える) Streamlit

    のメリット
  20. 20 Dashboard as Code • ほぼ @tosh2230 の記事の通りの構成: ◦ https://ts223.hatenablog.com/entry/gcp/cloudrun-streamlit

    • アクセス制限 … Identity Aware Proxy ◦ Google CLBを前段に • バックエンドはCloud Runを並べる ◦ 複数のダッシュボードを 同じドメインの配下にマウント可能 ◦ GCPのSAと容易に紐づけ • 費用面も優しい Cloud Run+IAP+Streamlitによるダッシュボード基盤
  21. 21 Dashboard as Code • ダッシュボードは全て Python + SQL でコードに残る

    • コンテナに固めて、デプロイも GitHub Actions + Cloud Build で自動化 ダッシュボードのコード管理
  22. 22 まとめ

  23. 23 まとめ 生産性の可視化のためにやったこと GHESの活動のETL 開発者の活動が SaaSに集約された ことで、可視化を することができた Dashboard as

    Code ダッシュボードを コード管理することで 変更履歴管理や再利用 自動化ができた
  24. 24 まとめ 成果物

  25. 25 まとめ • そもそもダッシュボードを有効活用してもらっているか? 必要なものか? ◦ アクセス状況を分析し、実際の利用シーンを把握する ◦ 各事業部のテックリードに継続的にインタビューしたい •

    Four Keys の他に有効な指標がないか? → テスト周りの可視化を試作中 ◦ ActionsのAPIを経由して CI実行時間などもわかる ◦ k1LoW/octocov により カバレッジの変遷もわかる 今後の課題や展開
  26. 26 Thank You! Thank You! We’re hiring!! https://recruit.pepabo.com/