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

GCPでNoAdmした話

A18ed97d2d534b1d55fbbbd86c9c6fa7?s=47 chidakiyo
November 29, 2017

 GCPでNoAdmした話

A18ed97d2d534b1d55fbbbd86c9c6fa7?s=128

chidakiyo

November 29, 2017
Tweet

More Decks by chidakiyo

Other Decks in Technology

Transcript

  1. copyright Fringe81 Co.,Ltd. 2017/11/28 author @chidakiyo GCPでNoAdmした話 酔いどれGCPUG

  2. copyright Fringe81 Co.,Ltd. まずは自己紹介

  3. copyright Fringe81 Co.,Ltd. 自己紹介 • @chidakiyo • Fringe81という会社で働いています。 • 普段はR&Dをしていたり、新規事業のプロト作ったり

    している人です。 • 筋トレ好きです。 • Appengine 昔から触ってました。 よいどれ
  4. copyright Fringe81 Co.,Ltd. NoAdmとは? • 管理系の画面を「開発せずに作る」 • アプリケーションの運用に必要なダッシュボードなど の機能をアプリケーション側で作り込まず、かつ、フ ルマネージドに実現したいという思いつきからの造語

    です。
  5. copyright Fringe81 Co.,Ltd. 今日話すこと/話さないこと • NoAdmを実現した流れを話します • あまり細かい技術の話はしません

  6. copyright Fringe81 Co.,Ltd. [前提情報] Uniposというサービスをやってま す

  7. copyright Fringe81 Co.,Ltd. [前提情報] Uniposの構成

  8. copyright Fringe81 Co.,Ltd. 運用にあたってこんなオーダーが... 1. Datastore内のデータで顧客へのレポートを作りたい 2. カスタマーサクセスチームの非エンジニアでも手軽に 利用状況などを分析したい

  9. copyright Fringe81 Co.,Ltd. ちなみに、Datastoreって、 • エンティティのJoinができない • 集約関数がない(sum, count, etc.)

    • 全文検索できない 「うーん、 SQLで書きたい・・・」 みたいな気持ちに
  10. copyright Fringe81 Co.,Ltd. 考えたこと • DatastoreのデータをBigQueryに同期す ることで、SQLをつかって色々見れそう!

  11. copyright Fringe81 Co.,Ltd. ではやってみることにした

  12. copyright Fringe81 Co.,Ltd. DatastoreをBigQueryに同期するステップ 1. DatastoreをGCSへバックアップする 2. バックアップファイルをBQに投入する

  13. copyright Fringe81 Co.,Ltd. 1) DatastoreをGCSへバックアップする • 自作の chidakiyo/datastore-backup を利用して各 kindをGCS上にバックアップ

    Qiitaも書いてます : https://qiita.com/chidakiyo/items/bb2e49c6f99b7210fa0f
  14. copyright Fringe81 Co.,Ltd. 2) バックアップファイルをBQに投入する • favclip/ds2bqを利用 • GCSに書き込まれたバックアップのOCN (Object

    Change Notification)をトリガにds2bqで バックアップファイルをBQに投入
  15. copyright Fringe81 Co.,Ltd. これで SQLを利用し、データへ柔軟にアクセス できるようになった!

  16. copyright Fringe81 Co.,Ltd. SQLを実行できることで実現できたコト • 日毎の企業別の投稿数の推移 • 日毎の貰ったポイント、送ったポイント • アカウントごとの投稿数/送った貰ったポイント

    • などなど、、、 SQLで好きなように分析できる! かなりいい感じ!
  17. copyright Fringe81 Co.,Ltd. 悲しいお知らせ

  18. copyright Fringe81 Co.,Ltd. 昨日判明した衝撃の事実・・・ • 今日紹介したDatastoreのバックアップ手法は古代の 手法となりつつあるようで、トレンディーなエンジニア のみなさまにおかれましては、gcloud beta datastore

    exportのご利用を検討してみてください! (涙 • 昨日、GCPUGのSlackで気づきました・・・ 参考 : https://cloud.google.com/datastore/docs/export-import-entities
  19. copyright Fringe81 Co.,Ltd. ここからNoAdm的な話

  20. copyright Fringe81 Co.,Ltd. SRE本でいう Toil を撲滅する • 顧客向けのレポート作成のためにExcelポチポチ • 利用状況の分析のための情報をDatastoreからの

    データ取得ポチポチ Toilとは「苦労」や「長く続く骨折り仕事」のような意味があり、 SRE本では、手作業である、繰り返される、自動化可能である、戦術的である、長期的な 価値を持たない、サービスの成長に対し O(n)である、の1つ以上に当てはまれば Toilであ る可能性が高いと書かれています。
  21. copyright Fringe81 Co.,Ltd. SRE本でいう Toil を撲滅する • 顧客向けのレポート作成のためにExcelポチポチ • 利用状況の分析のための情報をDatastoreからの

    データ取得ポチポチ こんな苦労は撲滅!!
  22. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(1) • 顧客向けのレポートはDatastudioで

  23. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(1) • 構成

  24. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(1) • Datastudioを新規作成する

  25. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(1) • BigQueryのテーブルを選択して接続を作成する

  26. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(1) • グラフを配置するとすぐに見える!

  27. copyright Fringe81 Co.,Ltd. やばい、簡単!!

  28. copyright Fringe81 Co.,Ltd. Datastudio、何と接続できる? • BQだけではなく、色々なデータに簡単に接続できる (CloudSQL, AdWords, MySQL, PostgreSQL,

    GoogleSpreadSheet, etc..) • コミュニティコネクタと言うものがありさらにいろいろな データソースに接続できます
  29. copyright Fringe81 Co.,Ltd. Datastudioを利用して嬉しいこと • 顧客ごとに見たい指標をカスタマイズしたレポートの 提供が容易にできる • サーバコスト不要 •

    SQL書けなくてもグラフが作れる • G Suiteの権限で共有ができるので管理しやすい
  30. copyright Fringe81 Co.,Ltd. Datastudioでハマった/困ったこと • データソースの編集権限がシェアできないので、複数 人での編集が出来ない。

  31. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(2) • アプリケーションの毎日確認したい情報のグラフを Slackに通知。

  32. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(2) • 構成

  33. copyright Fringe81 Co.,Ltd. NoAdmとして実現したこと(2) 細かい内容は今年の Advent Calendarで。

  34. copyright Fringe81 Co.,Ltd. Slackへのグラフ通知で嬉しいこと • グラフが毎朝決まった形でSlackに投稿され、Slack 上ですぐに議論が始められる • コミュニケーションツール上にレポートされるので、 チーム内の意識のすり合わせの時間が減らせる

  35. copyright Fringe81 Co.,Ltd. GASのSlack通知でハマったこと/困ったこと • GASのリソース使いすぎるとCPU時間が長すぎます メールがGoogleから来て、止められることがある。 • GASの処理は6分以内に終わらせる必要がある。

  36. copyright Fringe81 Co.,Ltd. 実現するためにその他にやったこと。 • 非エンジニアがSQLを実行するのが容易な環境をつ くり、非エンジニアもSQLを書けるように。(社内で非 エンジニア向けSQL教室を毎日行った)

  37. copyright Fringe81 Co.,Ltd. 実現して個人的に嬉しいこと • 「こんな情報が欲しいのでデータベースから情報取得 してもらえますか?」とお願いされることがないので、 早く家に帰って筋トレができるw

  38. copyright Fringe81 Co.,Ltd. BQ連携構成で良かった点 • Datastoreのバックアップを起点にNoAdm側は構成 されているため、疎結合でアプリケーション側に影響 を与えない • アプリケーション側への影響が少ないため、運用の便

    利ツールを比較的容易に作りやすい • 初期の開発の工数を減らすことができた
  39. copyright Fringe81 Co.,Ltd. さいごに • GCPはいろいろ便利に使えるツールがたくさんある ので便利に使ってラクしましょう!

  40. copyright Fringe81 Co.,Ltd. 一緒にGCPの話でわいわいできる 仲間を募集しています!

  41. copyright Fringe81 Co.,Ltd. 一緒にGCPの話でわいわいできる 仲間を募集しています! 筋トレ好きな人 も!

  42. copyright Fringe81 Co.,Ltd. ご清聴ありがとうございました。

  43. copyright Fringe81 Co.,Ltd. 参考: [まだBIツールで消耗してるの? ~ サーバレス・KPI分析ダッシュボードをGAS + Slackで] http://blog.yamotty.com/entry/20161114/1479079800

    [BigQueryを簡単にグラフにするGoogle Apps Script] http://toreta.blog.jp/archives/20649904.html