Slide 1

Slide 1 text

1 堤 利史 / GMO Pepabo, inc. Date: 2021-02-25 Event: Pepabo Tech Conference #14 データ基盤チームの設立と 直近の取り組み

Slide 2

Slide 2 text

2 堤 利史 Twitter: @tosh2230 データエンジニア GMO Pepabo, inc. 技術部 データ基盤チーム (2020/12~) 2

Slide 3

Slide 3 text

3 3 本日お話しすること Section 1: データ基盤チームの設立 Section 2: 直近の取り組み - チーム運営・基盤改善 - SUZURI KPIダッシュボード Section 3: データ基盤チームのこれから

Slide 4

Slide 4 text

4 データ基盤チームの設立 Section 1 4 ログ活用基盤 “Bigfoot” と実現するデータ駆動

Slide 5

Slide 5 text

5 5 ログ活用基盤 “Bigfoot” - ウェブサービスに関する様々なデータを扱う基盤 - ペパボ研究所 と 技術部 技術基盤チーム が中心となって開発 - 2020年に Google Cloud Platform をベースに再構成 - BigQuery, Cloud Composer が中心 https://rand.pepabo.com/article/2020/06/16/bigfoot-migration/

Slide 6

Slide 6 text

6 6 ログ活用基盤 “Bigfoot” datasource datasets logs metrics GitHub issues databases BigQuery Data Studio tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls kura.gem data catalog Update metadata & commit Collect datasets Apply metadata Generate & commit Collect data tbls Generate schema.json & commit lint bigfoot/data-catalog bigfoot/platform Cloud Storage - permissions - datasets - buckets bigfoot/cloud-composer Cloud Composer dags/

Slide 7

Slide 7 text

7 7 - 日本CTO協会が監修・編纂している企業のデジタル化と ソフトウェア活用のためのガイドライン - テーマのひとつである ”データ駆動” を全社的に注力 - Bigfoot にデータを集積し、活用していく機運の高まり DX Criteriaの実践 https://tech.pepabo.com/2020/02/19/dx-criteria/

Slide 8

Slide 8 text

8 8 最近の事例 1 https://speakerdeck.com/osamtimizer/suzuri-data-driven-2020 https://tech.pepabo.com/2021/01/21/pepabo-tech-conference-13/

Slide 9

Slide 9 text

9 9 最近の事例 2 https://tech.pepabo.com/2021/02/10/zendesk-data-visualization-with-bigfoot/

Slide 10

Slide 10 text

10 需要 > 供給 10

Slide 11

Slide 11 text

11 11 2021-01-21 データ基盤チーム 設立 🎉 Vision “データ駆動” の実現を担う 事業部横断組織 Mission 1. 社内のあらゆるデータへの意味付け 2. データによる意思決定を支援するプラットフォームの構築・ 全てのパートナーへの提供

Slide 12

Slide 12 text

12 直近の取り組み Section 2 12 一部を抜粋してご紹介

Slide 13

Slide 13 text

13 1. チーム運営・基盤の改善 13

Slide 14

Slide 14 text

14 14 チーム始動!と同時に発生した課題 - 開発者の増加 → 手数増える → CI渋滞 - 連携元システム・サービスの増加 - データやETL処理の依存関係の複雑化 - 新規 / 既存メンバーのナレッジギャップ チーム運営&基盤の改善が急務に ...!

Slide 15

Slide 15 text

15 15 2021年の2ヶ月間でやったこと - CI環境の移行 (Drone * → GitHub Actions) - Cloud Composer テスト環境増設 (1→3) - マルチクラウド化 (AWSのチーム利用開始) - Sentry によるエラーマネジメント開始 - エラー通知 → エラー情報確認 → Issue起票 がスムーズに - アーキテクチャ共有会 の定期開催 - ドキュメント拡充 - Airflow DAG 依存関係の整理 - ソースコードコメントや Metadataの追加 * OSS CIプラットフォーム。 https://www.drone.io/

Slide 16

Slide 16 text

16 16 各種対応によって状況は改善へ💪 - 開発者の増加 → 手数増える → CI渋滞 - 解消 - 連携元システム・サービスの増加 - チームとして対応できる状態に - データやETL処理の依存関係の複雑化 - 現状把握・注意喚起する仕組みを構築中 - 新規 / 既存メンバーのナレッジギャップ - 技術的・歴史的なナレッジ共有の継続実施 (共有会, GHE, Notion など) - 対応手順をGitHub Issueに残して資産化

Slide 17

Slide 17 text

17 2. KPIダッシュボード 17

Slide 18

Slide 18 text

18 18 画像を1枚アップ するだけ 自動的に商品が できます 販売まで行えます 自分買いも可能 画 像 をアップすると、 Tシャツやトートバッグ、マ グカップなど、あらゆるグッズを作ることができま す。グッズは41種類。 好きな価格で販売できます。注文を受けてか ら作成するので在庫を気にする必要もありま せん。 自分で作ったイラストや写真を 1枚アップロード します。 (ファイル形式はJPGまたはPNG) オリジナルアイテムが作れる、売れる、買える。

Slide 19

Slide 19 text

19 19 ダッシュボードの目的 データによってサービスの状態を把握して、施策のPDCAに貢献 - 複数のデータソースを収集 - 多量・多種のデータを加工・蓄積 - KPI * を即座に抽出して可視化 - サマリーを定期的に通知 * Key Performance Indicator: 重要業績評価指標

Slide 20

Slide 20 text

20 Google BigQuery Cloud Composer Data Lake 20 今回のデータパイプラインの全体像 Data Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Bigfoot

Slide 21

Slide 21 text

21 どのように構築したか 21

Slide 22

Slide 22 text

22 Bigfoot Google BigQuery Cloud Composer Data Lake 22 Data Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step1: SUZURIを理解(しようと努力)する 後ろは、ぼんやり考える程度に

Slide 23

Slide 23 text

23 23 Step1: SUZURIを理解(しようと努力)する - 事業そのものを知る - ビジネスモデルを学ぶ - サービスのユーザーになる - KPIへの理解を深める - 使われている用語の定義を確認 - 用語に紐づくデータの整理 - Google Colabでざっくり加工して、認識齟齬が無いか確認 - サービスのデータ構造を学ぶ - テーブルやER図を眺める - ひたすらSELECTを投げてデータ構造を感じる

Slide 24

Slide 24 text

24 Bigfoot Google BigQuery Cloud Composer Data Lake 24 Data Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step2: Data Studioでドラフト版を作成する カスタムクエリで直接参照!

Slide 25

Slide 25 text

25 25 Step2: Data Studioでドラフト版を作成する - Data Studio(データポータル) - Googleが提供するBIツール - BigQueryと簡単にデータ連携ができる - “実際に動くもの”を見ながら、ビジネス要件を再確認 - カスタムクエリ(データソースをSQLで直接指定するモード )にハードコード - DataMartが完成したら接続先を切り替える - アウトプットが固まってきたら、プロセスの最適化を検討

Slide 26

Slide 26 text

26 Bigfoot Google BigQuery Cloud Composer Data Lake 26 Data Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users 通知は最後 Step3: Cloud Composer でワークフローを構築する

Slide 27

Slide 27 text

27 27 Step3: Cloud Composer でワークフローを構築する - Cloud Composer - Google が提供するフルマネージド Airflow - 多様なOperator* を駆使してワークフローを構築 - (独特なスケジューリングの概念に苦戦 ...) - Airflow を初めてさわった - execution_date, start_date, end_date, schedule_interval… - ELT(Extract/Load/Transform) 処理の実施 - DataLake → DataWarehouse → DataMart の方向にデータを加工 * ワークフロータスクのテンプレート。これを組み合わせてワークフローを定義する。

Slide 28

Slide 28 text

28 Bigfoot Google BigQuery Cloud Composer Data Lake 28 Data Warehouse Data Mart Cloud Storage Embulk PostgreSQL Data Studio Slack Summary & Dashboard URL Users Step3でリリース済 Step4: Slackにサマリーを通知する

Slide 29

Slide 29 text

29 29 - DataMart 作成完了に合わせて、Slackへサマリーを通知 - Slack App の Incomming Webhook を使用 - ”SELECT 結果を加工して Slack に通知” をしてくれる Operator はない - そこで Custom Operator を実装 - 渡すパラメータは、Airflow Connection と mention, header, body の4つ - Base Operator を継承して、BigQueryHook を内部で実行 Step4: Slackにサマリーを通知する

Slide 30

Slide 30 text

30 30 - サマリーやダッシュボードを 見ながらSlackで議論できる - 社内共有も簡単! - ダッシュボードはユーザ編集可 このあたりにKPIのサマリーを 列挙して通知しています Step4: Slackにサマリーを通知する

Slide 31

Slide 31 text

31 データ基盤チームの これから Section 3 31

Slide 32

Slide 32 text

32 32 再掲: データ基盤チームのVision & Mission Vision “データ駆動” の実現を担う 事業部横断組織 Mission 1. 社内のあらゆるデータへの意味付け 2. データによる意思決定を支援するプラットフォームの構築・ 全てのパートナーへの提供

Slide 33

Slide 33 text

33 33 - Bigfoot をもっと活用してもらう - データや基盤は活用するためにある - 活用するにはどのような方法があるのか、選択肢を提示する - チームの認知度を上げる - Bigfoot を知っていても、データ基盤チームは知られていない - どんなひとがいるのか、なにをしているのか → 相談のしやすさ⏫ - 社内・社外への情報発信 - 至高のデータ基盤を目指して - 技術的なチャレンジも忘れない やっていくこと