Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
いい感じのシステムアラートをTwilioで
Search
kohtaro24
August 07, 2018
Technology
0
780
いい感じのシステムアラートをTwilioで
障害発生時のアラートをTwilioでいい感じに作った話
kohtaro24
August 07, 2018
Tweet
Share
More Decks by kohtaro24
See All by kohtaro24
コールセンターシステムを0から作った話
kohtaro24
1
71
Other Decks in Technology
See All in Technology
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
270
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
23
11k
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
360
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
170
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
220
C++26 エラー性動作
faithandbrave
2
670
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
500
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
Storage Browser for Amazon S3
miu_crescent
1
130
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
180
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Building an army of robots
kneath
302
44k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Writing Fast Ruby
sferik
628
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Designing for humans not robots
tammielis
250
25k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Rails Girls Zürich Keynote
gr2m
94
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Transcript
いい感じのシステムアラートをTwilioで @kohtaro24
Twilio Developer Meetup 2018 Summer で話してきた内容です
自己紹介
皆さんは経験ありますか?
_人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄
Webサービスは突然死ぬ • 突然トラフィックが激増したり • 突然インフラに障害が起きたり • 突然某有名番組でオフィスが紹介されて企業HPに前代未聞のアクセスが殺到した り
運用者が気づけない場合もある
深夜のサービス障害のネック • 障害に気づきにくい ◦ 寝ている場合もありうる • 誰かがすでに対応開始しているかもしれない ◦ 作業が競合することによる 二次災害の不安
• 個人で対処の判断が難しいケース ◦ 運用者が複数人いる場合など
既存事例① • 様々な監視ツールからの通知を集約できる SaaS • 通知ごとにエスカレーションパターンや手段を細かに設定できる ◦ 障害発生時にメール →15分後に認知されなければ電話など •
料金が割高 • 電話がグローバル発信
既存事例② https://github.com/ryotarai/waker • PagerdutyのOSS版的な立ち位置 • 通知ごとにエスカレーションパターンや電話 /SMS/メールなど手段を細かに設定できる • Twilio使ってる •
サーバーを自前で用意する必要がある
スモールチームには少々敷居が高い • エスカレーションじゃなくていきなり関係者全員通知でいい ◦ 深夜待機者を年中立てられるほど人員がいない ◦ 対応できる誰かがすぐ気づければいい ◦ とはいえ二次災害は防ぎたい •
コストもかけたくない ◦ 障害はそんなに起きない(はず)なので固定費かけたくはない ◦ とはいえ障害にはすぐ対応したい • 手軽にすぐ導入できると嬉しい
Twilio Functions(サーバレス) + Twilio Conference(電話会議)
health check tool Twilio Functions /alert /join_conference Webhook call call
• 監視ツールからのイベントを受けたら、登録された番号に対して一斉発信
Twilio Functions /join_conference health check tool /alert answerd answerd ConferenceRoom1
join • 障害に気づいた(電話に応答した)人からConferenceに突っ込んでいく • 以後は障害状況を報告しあったりして連携しながら対応を進める • 自分以外がConferenceに入ってこなければとりあえず一人で頑張る
Functionsで作成したWebhookURL https://hogehogehoge.twil.io/alert ?tels=+8170xxxxxxxx,+8180xxxxxxxx &message=サーバがお隠れになったよ 発信したい電話番号 (カンマ区切り) 着信応答時にSayで流すメッセージ
Demo うごくかな
None
None
例えばTwilioで
例えばcurlで curl --data tels=+8170xxxxxxxx,+8180xxxxxxxx --data message= サーバがお隠れになったよ “https://hogehogehoge.twil.io/alert”
health check tool /alert /join_conference Webhook call call 通知がメール限定ならSendGridのEvent Webhookとか
Mail
実現したこと • 障害に電話で気づける ◦ Push通知よりは(寝てても)気づけそう • 気づいた者同士で通話しながら対処できる ◦ 二次災害の防止 ◦
状況を共有しながら分担したり意思決定したりスムーズにやれる • (ほぼ)固定費ゼロ ◦ 固定費は発信元番号の維持費 ¥100のみ ◦ Functionsは毎月10,000アクセスまで無料 ◦ 通話費はかかるが障害が起きなければ 0! • Webhook URLを共有すれば他チームでも導入できる ◦ チームや通知固有の設定は Webhook URL parametersで完結 • 1時間程度の開発で実現できた
これで安心して寝れるぞ!