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

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

KONDO Uchio
February 07, 2022

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

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

    View Slide

  2. 2
    自己紹介
    技術部 データ基盤チーム/技術基盤チーム シニアプリンシパル
    2013年 入社
    近藤宇智朗 Uchio Kondo (@udzura)
    駆け出しデータ基盤エンジニア、シニアシレンジャー。
    ● PythonよりRubyが得意... 最近はRustが好き
    ● GCP, BigQuery, Cloud Run
    ● 好きなYouTubeチャンネルはやんちゃクラブ
    ● 福岡三大うどんは資さんうどん過激派です
    福岡在住

    View Slide

  3. 3
    自己紹介
    最近必死にやっていること

    View Slide

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

    View Slide

  5. 5
    1. セクションタイトル
    ペパボのデータ基盤チーム

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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 つの指標が
    > 確立されました。
    生産性の計測

    View Slide

  10. 10
    Four Keys とは
    Four Keysとは?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 14
    開発活動データのETL
    GitHub (Enterprise Server) の活動データを軸にすることにした。
    以下のようなデータが取得できます
    :
    ● Issue (P/R) の作成数、コメント、紐づいたイベント、クローズ時間
    ● Commit の内容や回数
    ● Release の作成数
    ● GitHub Actions に関する情報(回数、成功失敗、経過時間) …
    生産性指標のソースデータ

    View Slide

  15. 15
    開発活動データのETL
    APIを経由したETL
    APIを叩いて
    CSVを作成する
    cli tool
    前日分のみを
    ロード
    SQLでuniq

    View Slide

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

    View Slide

  17. 17
    Dashboard as Code
    皆さんもダッシュボードは作っているとは思いますが
    ...
    問題1: ダッシュボードの内容を共有できない
    ● どういうSQLか、レイアウトは、などなど
    エクスポートしたりシェアするのが面倒なことが多い
    問題2: ダッシュボードの変更履歴、構成などが管理できない
    ● うっかり壊した際の復元はどうすれば? 退職者が出たら?
    どのチームがどれくらいダッシュボードを作ってる? など一覧できない
    「可視化」にまつわるダッシュボード問題

    View Slide

  18. 18
    Dashboard as Code
    問題の内容が、インフラの構成管理と似ているため、
    コードで管理するというアプローチを取れないか?
    Streamlit のことを知る
    ● Streamlitとは:
    ○ 様々なグラフ描画ライブラリに対応した
    Webフレームワーク
    ○ 宣言的なコードを書くとダッシュボードが作れる
    ○ Python 製、類似したフレームワークにDashなどがある
    ● https://streamlit.io/
    Dashboard as Code と Streamlit

    View Slide

  19. 19
    Dashboard as Code
    ● 最大のポイントは、Google Colabでガチャガチャ可視化したコードを
    ダッシュボードに持っていきやすい点(
    Pandas/NumPyをそのまま使える)
    Streamlit のメリット

    View Slide

  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によるダッシュボード基盤

    View Slide

  21. 21
    Dashboard as Code
    ● ダッシュボードは全て Python + SQL でコードに残る
    ● コンテナに固めて、デプロイも GitHub Actions + Cloud Build で自動化
    ダッシュボードのコード管理

    View Slide

  22. 22
    まとめ

    View Slide

  23. 23
    まとめ
    生産性の可視化のためにやったこと
    GHESの活動のETL
    開発者の活動が
    SaaSに集約された
    ことで、可視化を
    することができた
    Dashboard as Code
    ダッシュボードを
    コード管理することで
    変更履歴管理や再利用
    自動化ができた

    View Slide

  24. 24
    まとめ
    成果物

    View Slide

  25. 25
    まとめ
    ● そもそもダッシュボードを有効活用してもらっているか? 必要なものか?
    ○ アクセス状況を分析し、実際の利用シーンを把握する
    ○ 各事業部のテックリードに継続的にインタビューしたい
    ● Four Keys の他に有効な指標がないか? → テスト周りの可視化を試作中
    ○ ActionsのAPIを経由して
    CI実行時間などもわかる
    ○ k1LoW/octocov により
    カバレッジの変遷もわかる
    今後の課題や展開

    View Slide

  26. 26
    Thank You!
    Thank You!
    We’re hiring!! https://recruit.pepabo.com/

    View Slide