Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
データ基盤で Four Keysを可視化した話 近藤宇智朗 / GMO PEPABO inc. 2022.02.07 datatech-jp Casual Talks #1 1
Slide 2
Slide 2 text
2 自己紹介 技術部 データ基盤チーム/技術基盤チーム シニアプリンシパル 2013年 入社 近藤宇智朗 Uchio Kondo (@udzura) 駆け出しデータ基盤エンジニア、シニアシレンジャー。 ● PythonよりRubyが得意... 最近はRustが好き ● GCP, BigQuery, Cloud Run ● 好きなYouTubeチャンネルはやんちゃクラブ ● 福岡三大うどんは資さんうどん過激派です 福岡在住
Slide 3
Slide 3 text
3 自己紹介 最近必死にやっていること
Slide 4
Slide 4 text
4 アジェンダ 1. ペパボのデータ基盤チームの紹介 2. Four Keysについて 3. 開発活動データのETL 4. Dashboard as CodeとStreamlit 5. まとめ
Slide 5
Slide 5 text
5 1. セクションタイトル ペパボのデータ基盤チーム
Slide 6
Slide 6 text
6 ペパボのデータ基盤チーム データ基盤チームのミッション ペパボ内のあらゆるデータに意味をつけ、そのデータによって 意思決定の支援を行えるプラットフォームを構築し ペパボの全パートナーに提供する。
Slide 7
Slide 7 text
7 ペパボのデータ基盤チーム ざっくりしたアーキテクチャ(2022年最新版)
Slide 8
Slide 8 text
8 1. セクションタイトル Four Keys
Slide 9
Slide 9 text
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 つの指標が > 確立されました。 生産性の計測
Slide 10
Slide 10 text
10 Four Keys とは Four Keysとは?
Slide 11
Slide 11 text
11 Four Keys とは 可視化してみた → どうやっていったか...? という話
Slide 12
Slide 12 text
12 1. セクションタイトル 開発活動データのETL
Slide 13
Slide 13 text
13 開発活動データのETL 生産性指標の収集・可視化システムの概要 https://tech.pepabo.com/2022/01/06/four-keys-dashboard/
Slide 14
Slide 14 text
14 開発活動データのETL GitHub (Enterprise Server) の活動データを軸にすることにした。 以下のようなデータが取得できます : ● Issue (P/R) の作成数、コメント、紐づいたイベント、クローズ時間 ● Commit の内容や回数 ● Release の作成数 ● GitHub Actions に関する情報(回数、成功失敗、経過時間) … 生産性指標のソースデータ
Slide 15
Slide 15 text
15 開発活動データのETL APIを経由したETL APIを叩いて CSVを作成する cli tool 前日分のみを ロード SQLでuniq
Slide 16
Slide 16 text
16 1. セクションタイトル Dashboard as Code
Slide 17
Slide 17 text
17 Dashboard as Code 皆さんもダッシュボードは作っているとは思いますが ... 問題1: ダッシュボードの内容を共有できない ● どういうSQLか、レイアウトは、などなど エクスポートしたりシェアするのが面倒なことが多い 問題2: ダッシュボードの変更履歴、構成などが管理できない ● うっかり壊した際の復元はどうすれば? 退職者が出たら? どのチームがどれくらいダッシュボードを作ってる? など一覧できない 「可視化」にまつわるダッシュボード問題
Slide 18
Slide 18 text
18 Dashboard as Code 問題の内容が、インフラの構成管理と似ているため、 コードで管理するというアプローチを取れないか? Streamlit のことを知る ● Streamlitとは: ○ 様々なグラフ描画ライブラリに対応した Webフレームワーク ○ 宣言的なコードを書くとダッシュボードが作れる ○ Python 製、類似したフレームワークにDashなどがある ● https://streamlit.io/ Dashboard as Code と Streamlit
Slide 19
Slide 19 text
19 Dashboard as Code ● 最大のポイントは、Google Colabでガチャガチャ可視化したコードを ダッシュボードに持っていきやすい点( Pandas/NumPyをそのまま使える) Streamlit のメリット
Slide 20
Slide 20 text
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によるダッシュボード基盤
Slide 21
Slide 21 text
21 Dashboard as Code ● ダッシュボードは全て Python + SQL でコードに残る ● コンテナに固めて、デプロイも GitHub Actions + Cloud Build で自動化 ダッシュボードのコード管理
Slide 22
Slide 22 text
22 まとめ
Slide 23
Slide 23 text
23 まとめ 生産性の可視化のためにやったこと GHESの活動のETL 開発者の活動が SaaSに集約された ことで、可視化を することができた Dashboard as Code ダッシュボードを コード管理することで 変更履歴管理や再利用 自動化ができた
Slide 24
Slide 24 text
24 まとめ 成果物
Slide 25
Slide 25 text
25 まとめ ● そもそもダッシュボードを有効活用してもらっているか? 必要なものか? ○ アクセス状況を分析し、実際の利用シーンを把握する ○ 各事業部のテックリードに継続的にインタビューしたい ● Four Keys の他に有効な指標がないか? → テスト周りの可視化を試作中 ○ ActionsのAPIを経由して CI実行時間などもわかる ○ k1LoW/octocov により カバレッジの変遷もわかる 今後の課題や展開
Slide 26
Slide 26 text
26 Thank You! Thank You! We’re hiring!! https://recruit.pepabo.com/