Slide 1

Slide 1 text

いい感じのシステムアラートをTwilioで @kohtaro24

Slide 2

Slide 2 text

Twilio Developer Meetup 2018 Summer で話してきた内容です

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

皆さんは経験ありますか?

Slide 5

Slide 5 text

_人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄

Slide 6

Slide 6 text

Webサービスは突然死ぬ ● 突然トラフィックが激増したり ● 突然インフラに障害が起きたり ● 突然某有名番組でオフィスが紹介されて企業HPに前代未聞のアクセスが殺到した り

Slide 7

Slide 7 text

運用者が気づけない場合もある

Slide 8

Slide 8 text

深夜のサービス障害のネック ● 障害に気づきにくい ○ 寝ている場合もありうる ● 誰かがすでに対応開始しているかもしれない ○ 作業が競合することによる 二次災害の不安 ● 個人で対処の判断が難しいケース ○ 運用者が複数人いる場合など

Slide 9

Slide 9 text

既存事例① ● 様々な監視ツールからの通知を集約できる SaaS ● 通知ごとにエスカレーションパターンや手段を細かに設定できる ○ 障害発生時にメール →15分後に認知されなければ電話など ● 料金が割高 ● 電話がグローバル発信

Slide 10

Slide 10 text

既存事例② https://github.com/ryotarai/waker ● PagerdutyのOSS版的な立ち位置 ● 通知ごとにエスカレーションパターンや電話 /SMS/メールなど手段を細かに設定できる ● Twilio使ってる ● サーバーを自前で用意する必要がある

Slide 11

Slide 11 text

スモールチームには少々敷居が高い ● エスカレーションじゃなくていきなり関係者全員通知でいい ○ 深夜待機者を年中立てられるほど人員がいない ○ 対応できる誰かがすぐ気づければいい ○ とはいえ二次災害は防ぎたい ● コストもかけたくない ○ 障害はそんなに起きない(はず)なので固定費かけたくはない ○ とはいえ障害にはすぐ対応したい ● 手軽にすぐ導入できると嬉しい

Slide 12

Slide 12 text

Twilio Functions(サーバレス) + Twilio Conference(電話会議)

Slide 13

Slide 13 text

health check tool Twilio Functions /alert /join_conference Webhook call call ● 監視ツールからのイベントを受けたら、登録された番号に対して一斉発信

Slide 14

Slide 14 text

Twilio Functions /join_conference health check tool /alert answerd answerd ConferenceRoom1 join ● 障害に気づいた(電話に応答した)人からConferenceに突っ込んでいく ● 以後は障害状況を報告しあったりして連携しながら対応を進める ● 自分以外がConferenceに入ってこなければとりあえず一人で頑張る

Slide 15

Slide 15 text

Functionsで作成したWebhookURL https://hogehogehoge.twil.io/alert ?tels=+8170xxxxxxxx,+8180xxxxxxxx &message=サーバがお隠れになったよ 発信したい電話番号 (カンマ区切り) 着信応答時にSayで流すメッセージ

Slide 16

Slide 16 text

Demo うごくかな

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

例えばTwilioで

Slide 20

Slide 20 text

例えばcurlで curl --data tels=+8170xxxxxxxx,+8180xxxxxxxx --data message= サーバがお隠れになったよ “https://hogehogehoge.twil.io/alert”

Slide 21

Slide 21 text

health check tool /alert /join_conference Webhook call call 通知がメール限定ならSendGridのEvent Webhookとか Mail

Slide 22

Slide 22 text

実現したこと ● 障害に電話で気づける ○ Push通知よりは(寝てても)気づけそう ● 気づいた者同士で通話しながら対処できる ○ 二次災害の防止 ○ 状況を共有しながら分担したり意思決定したりスムーズにやれる ● (ほぼ)固定費ゼロ ○ 固定費は発信元番号の維持費 ¥100のみ ○ Functionsは毎月10,000アクセスまで無料 ○ 通話費はかかるが障害が起きなければ 0! ● Webhook URLを共有すれば他チームでも導入できる ○ チームや通知固有の設定は Webhook URL parametersで完結 ● 1時間程度の開発で実現できた

Slide 23

Slide 23 text

これで安心して寝れるぞ!