Heroku Meetup #27に行ったメモ

行ってきた。

MoneyTree

https://moneytree.jp/ のなかのひとのお話

  • JPとAUで400万人が利用
  • Heroku と AWSを使って動いているよ
  • Heroku Enterprise使ってるよ

  • 32apps

  • 667dynos
  • マイクロサービス
  • python ruby いろいろ

NewRelicのApplicationがまとまってて、これどうやったら実現できるのかなと考えてた。(NewRelicは別契約?)

http://postgres.sios.com/modules/newbb/viewtopic.php?forum=1&topic_id=149&post_id=150 PgBouncerというコネクションプーリングを実現できるくんがいるよ

Heroku Platform APIを使ってみた

テラスカイなかのひと

  • SalesforceとLINEをつなぐコールセンターの運用
  • Heroku Platforma APIってなに
    • Herokuの設定の自動化とかできるよ
    • アカウントアドオンアプリケーションパイプラインプライベートスペース
  • Terraformはこれを叩いてるのかなと考えてた。
  • https://devcenter.heroku.com/articles/platform-api-reference
  • 一覧系の上限は200件、続きはリクエストが必要

EC Boosterのバッチ処理の話

  • ワーカーの再起動に影響されることなくバッチ処理を行いたい
  • 頻度少ないバッチ処理のためにつよいDynoを起動し続けるコストを下げたい

Dynoの再起動とは

再起動するときに何が起きるか

  • DynoにSIGTERMがとぶ
  • 30秒以内に落ちないときSIGKILLを飛ばす

デプロイするとなにがおきるか

  • SidekiqはSIGTERMを受け取る
  • 実行中のジョブはキュー(redis)に保存される
  • デプロイ後、キューから取り出して再実行

どうした?

WorkerDynoのsidekiqがOne-Off Dynoを作ってバッチ処理をお個合うRails runnerを実行する

dyno.createでdyno作れるのーーー

よかったところ Dynoの寿命を自動でコントロールできた

100Dynoまで同時起動できる

$1.6ですんだ

リトライが大変だった。単純にリトライを書くとworker Dynoで動いちゃうので、再度Dyno Createを行う必要がある。