Looker BEACON 2021 / Looker組み込みアナリティクスによるScalebase分析機能の展開
Looker組み込みアナリティクスによるScalebase分析機能の展開BEACON Japan 2021Naoki Ainoya / Alp, Inc.
View Slide
自己紹介● Naoki Ainoya● SRE @ Alp, Inc.● Scalebaseの開発・運用
本日お話することScalebaseに分析機能を実装するにあたり…● Looker選定に至った背景● 組み込みAnalyticsの実装方式と構成● 実運用・開発フロー● 導入後の成果・反響
サブスクリプションビジネス効率化・収益最大化プラットフォーム
Scalebaseが対象とするビジネスモデル
契約・請求・分析のオペレーションを一気通貫で管理SFAや会計システムと連携し、シームレスなオペレーションを実現
Scalebaseの分析機能● Scalebase内のデータをリアルタイムに可視化する分析ダッシュボードを提供● Looker組み込みアナリティクス(Embed SSO)でScalebaseサービス内に埋め込み顧客に展開
Lookerを採用した理由サービスに組み込み可能なBIソリューションをいくつか検証し、Lookerを採用検討時の要件:● 人・時間のリソースが限られている状況で、素早く立ち上げること● 急激なサービスの成長にも耐えられる作りになっていること
Lookerを採用した理由検討時の要件:● 人・時間のリソースが限られている状況で、MVP(Minimum Viable Product)を素早く立ち上げ、改善できること● Developer Experienceが重要→LookMLの高い表現力・開発のしやすさ 定義のGit管理ができ、変更管理・レビュー・リリース管理がしやすい→Embed SSOによる組み込みとダッシュボード開発の容易さ
Lookerを採用した理由検討時の要件:● 急激なサービスの成長にも耐えられる作りになっていること→Looker自体がパフォーマンスのボトルネックになりづらいアーキテクチャ→負荷に応じてデータウェアハウスのアーキテクチャを将来変更して捌ける(小さく始められ、かつ処理が重くなってもこちらで対応でき、手詰まりとならない)
他BIツールの検討時に問題になったこと● 自社サービスへの組み込み方法● ユーザーアカウントのプロビジョニング方法
組み込みのしやすさ● シンプルな機構で実装が容易だった
組み込みのしやすさ①組み込みURL生成リクエスト
組み込みのしやすさ①ダッシュボードURL生成リクエスト②サーバサイドでダッシュボードURL生成、APIキーで署名(事前にLookerからAPIキーを取得)
組み込みのしやすさ②サーバサイドでダッシュボードURL生成、APIキーで署名(事前にLookerからAPIキーを取得)● URL生成時に、Lookerへのアクセス権限やLookerダッシュボードで使用するユーザ属性(ユーザIDなど)をパラメータとして付与して生成● 生成URLをAPIキーで署名するため第三者が不正に生成・改ざんすることは困難● APIキーは事前に取得して使用するため、URL生成の都度Lookerに問い合わせる必要が無いので楽
組み込みのしやすさ①ダッシュボードURL生成リクエスト②サーバサイドでダッシュボードURL生成、APIキーで署名(事前にLookerからAPIキーを取得)③生成されたURLでLookerダッシュボードをiframe呼び出し
ユーザアカウントのプロビジョニング方法● アカウントの発行● BIサービス側と自社サービス側のアカウントの同期
ユーザアカウントのプロビジョニング方法③生成されたURLでLookerダッシュボードをiframe呼び出しこのとき、Looker側にユーザーアカウントが自動作成されるScalebaseサーバからLookerに対して都度アカウント発行処理等は必要無い
ユーザアカウントのプロビジョニング方法③生成されたURLでLookerダッシュボードをiframe呼び出しこのとき、Looker側にユーザーアカウントが自動作成されるScalebaseサーバからLookerに対して都度アカウント発行処理等は必要無い事前のアカウント払い出し処理が不要
まとめ:Lookerを組込み分析で使用するメリット● スケーラビリティのあるアーキテクチャ● LookMLによるダッシュボード、データモデルのメンテナンス容易性● 組込み実装のしやすさ● ユーザアカウントのプロビジョニングが楽その結果・・・
結果として:リリースまでのタイムラインおかげさまで機能検討開始からリリースまで半年程度で完了● PRD・要件定義: 1~2ヶ月● BIソリューション選定: 1~2ヶ月● Looker社リードのもとPoC: 1ヶ月● 実装: 2~3ヶ月 (Lookerのプロフェショナルサービス利用)PoC、実装はLookerチームの支援でスピード感持って進められた。感謝!
メンバー構成全員兼務あり、限られたメンバー構成で無理なく進行● PM: 1名● デザイン: 1名● フロント: 1名● バックエンド: 1名● SRE: 1名
全体構成・開発フロー● Lookerと接続するデータインフラの構成● LookMLダッシュボード・データモデルの開発フロー
全体構成● データ基盤無い状態から最小構成で始める● データ規模に応じアーキテクチャを変更していく方針● LookerからAurora MySQLを直接参照する構成○ リアルタイム性を重視
重い集計の逃し方● MySQLでは重すぎる処理が出てきたら、S3とAthenaで集計する処理で補助
重い集計の逃し方● LookerのPersistent Derived Table(PDT)機能を使って重い集計処理は一時テーブルにキャッシュ可能● 簡単なETLならLookerだけで実現可能
データ規模に応じたなめらかな拡張● データ規模に応じアーキテクチャを変更● LookerからMySQLへの参照をやめる● AWS Athena + Federated Queryによってデータ同期の遅延を損なうことなく切り替え● LookMLに大規模な変更をせずに無停止で変更を実現
LookML開発フロー● Lookerのエディタ上で編集し、Lookerインスタンスに反映するフロー● 素早く開発できるようにする● かつ、安全なリリースを行えるようにする必要がある→Git連携を生かしてGitHub上でCI/CDを構築して開発・運用
LookML開発フロー● Looker本番・開発インスタンス用に2リポジトリ構成
LookML開発フロー● GitHub Actionsを活用して運用自動化、安全にリリース● gitリポジトリでダッシュボード定義を管理できる利点が活躍※Looker 7.20からデプロイ元ブランチを選択可能になったため、現在は1リポジトリで実現可能
補足: デザイン面ダッシュボードのデザインをLooker上でどう表現するか● LookerのビルトインのVisualizationを利用する場合は、見た目のカスタマイズある程度できるが、妥協は必要● ただ、拡張の余地は多いにある
デザイン面: 独自Visualizationによる拡張● Custom Visualizationを使用してタイル部分を自前で実装可能● 実際にmultiple_valueのコードをフォークしてデザインを少し変えて使用している
デザイン面: API・SDKによる拡張● API/SDKを使用してiframe呼び出しをやめて完全に自前デザインにすることも可能● 実際にフィルタ部分をiframe外で自前実装しているiframeiframe外の実装
リリース後の反響● 多くのフィードバックをいただいた● 可視化に対するニーズは多様● 様々な可視化の切り口がある(経理担当者・事業企画者・経営者etc..)● まだまだこれからだが、要望に応える分析機能を提供していく○ 入金状況・コホート・レイヤーケーキチャートなど続々と対応している● 一般的なSaaS開発と同様、顧客の声に耳を傾けひたすら改善あるのみ
まとめ● Looker採用によってScalebaseの分析機能を素早く立ち上げることができた● スタートアップにおいて人・時間の制約がある状況でも無理なく実現● LookMLのおかげでダッシュボード定義もブラックボックス化しにくく運用面の不安が少ない● Lookerが機能で対応していない設定部分もCIでの定義自動生成などである程度カバーしてしまえるのもConfiguration as Codeの良さ● Lookerは社内BIだけでなく、プロダクトで顧客向けの分析機能を提供したい場合にもおすすめです
We’re hiring!● データの力でサブスクリプションビジネスの世界を変えましょう● https://thealp.co.jp● https://herp.careers/v1/alpinc