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
730
いい感じのシステムアラートをTwilioで
障害発生時のアラートをTwilioでいい感じに作った話
kohtaro24
August 07, 2018
Tweet
Share
More Decks by kohtaro24
See All by kohtaro24
コールセンターシステムを0から作った話
kohtaro24
1
67
Other Decks in Technology
See All in Technology
Agile in Automotive Industry, puzzles and lights.
hiranabe
0
190
Mocking in Rust Applications
taiki45
1
360
20240912 JJUGナイトセミナー
mii1004
0
130
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
410
Envoy External AuthZとgRPC Extensionを利用した「頑張らない」Microservices認証認可基盤
andoshin11
0
210
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
4
140
Javaにおける関数型プログラミンへの取り組み
skrb
7
300
App Router を実プロダクトで採用して見えてきた勘所をちょっとだけ紹介
marokanatani
0
780
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
290
「自動テストのプラクティスを効果的に学ぶためのカードゲーム」 ( #sqip2024 )
teyamagu
PRO
0
120
サーバレスでモバイルアプリ開発! NTTコム「ビジネスdアプリ」のアーキテクチャ / The architecture of business d app
nttcom
12
210
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
180
Featured
See All Featured
Music & Morning Musume
bryan
46
6k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
18k
Code Reviewing Like a Champion
maltzj
518
39k
4 Signs Your Business is Dying
shpigford
179
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
663
120k
Designing with Data
zakiwarfel
98
5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
A designer walks into a library…
pauljervisheath
201
24k
A Tale of Four Properties
chriscoyier
155
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Adopting Sorbet at Scale
ufuk
73
8.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
35
6.8k
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時間程度の開発で実現できた
これで安心して寝れるぞ!