GO/GAE + Pub/Subで 非同期タスクシステム作った

2b2add9e3015b44a405350d778043424?s=47 munaita_
October 24, 2017
600

GO/GAE + Pub/Subで 非同期タスクシステム作った

2b2add9e3015b44a405350d778043424?s=128

munaita_

October 24, 2017
Tweet

Transcript

  1. GO/GAE + Pub/Subで 非同期タスクシステム作った GoビギナーズLT大会 2017/10/24 Suzuki Shogo(@munaita_)

  2. 自己紹介: 鈴木省吾 - 所属: フリーランス - 仕事: アドテク(サーバーサイド、インフラ) - Ruby,

    GCP - 渋谷 -> 市ヶ谷 - 特技: 筋トレ、重いクエリは筋力で通す - twitter, qiita: @munaita_ - GOとの出会い: ログ収集基盤 - 保守メンテでちょっと触る程度
  3. ※なんだかGCPの話が多くなってしまいました。 申し訳ありません。

  4. GAE Task Queue GAE request GCS Dataflow Pub Sub GAE

    Big Query send request 動機: ログ収集基盤をざっくりと New!! GAE Pub Sub request Dataflow GAE Big Query send request こう変えたい
  5. 実現したいこと - 突然のピークに耐えきる - 5000qpsくらい - メッセージをPublishし、複数のサブスク リプションで受け取る - 非同期タスク成功したらキューから消す

    - タスク失敗したら再実行
  6. 作ったもの GAE Pub/ Sub GAE GAE Slack msg1 msg2 request

    CH2 CH1
  7. デモ https://github.com/shogo807/go-gae-pubsub

  8. 苦労したこと - パッケージ管理 - Vendor管理(Dep, Glide)でGAEデプロイコケる - 同じパッケージを複数ファイル分割にした場合 - 独自パッケージを作った場合

    - Slack投げすぎて止まる - ポインタの使い所なれない - GAEでのロギングなれない - 5000qpsの負荷試験できず(Mac + ABの限界)
  9. 今後やりたいこと - Pub/Sub -> Dataflow -> BQのストリーミング処理 - サービスでテスト運用 -

    体脂肪率を落とす