障害対応を自動化した話 / 20220609_Automation
by
Rakus_Dev
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. ©2019 RAKUS Co., Ltd. 障害対応を自動化した話
Slide 2
Slide 2 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自己紹介 • 名前:下西 章王 (しもにし あきおう) • 出身:大阪 • 趣味:ゴルフ、野球、サウナ、麻雀、etc… • 所属:ラクス インフラ開発部 • 業務内容:インフラを担当してます。 コーポレートサイト・サービスサイトの運用・保守 メール配信システムの運用・保守
Slide 3
Slide 3 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 今日話すこと • 自動化した内容 • 使ったツールの話 • こんなことしました • まとめ
Slide 4
Slide 4 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容
Slide 5
Slide 5 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容 メール配信システムの話 • 障害の内容 • RabbitMQにメールキューをためているのですが、アプリのバグ?でなぜかキューが1つ残り 続けてしまうことがあります。 • このままでは残ったキューが配信されず、残り続けてしまい、読者に届かない… • 復旧方法はアプリを再起動すれば直る アプリ インターネット キューに残り続ける 再起動で復旧
Slide 6
Slide 6 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容 メール配信システムの話 作業時間は5~10分くらいなのですが、 毎回アラートが上がるたびにPCを起動して… アプリ再起動させて… キューがなくなったの確認して… とめんどくさい。。。 そしてまぁまぁな頻度で発生する…(ならすと1日1回以上…) ヨシ。自動化しよう。
Slide 7
Slide 7 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話
Slide 8
Slide 8 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話 • Prometheus (監視のデータ収集) • Grafana (監視データの描画・アラート発砲) • Django (Pythonのフレームワーク) • Rundeck (ジョブ実行ツール) 上記を使って自動化しました。
Slide 9
Slide 9 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成
Slide 10
Slide 10 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリ
Slide 11
Slide 11 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 MQを監視 アプリ
Slide 12
Slide 12 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 キューが残っている アラートを検知 アプリ
Slide 13
Slide 13 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 Webhookで Djangoに通知 アプリ
Slide 14
Slide 14 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 APIを叩いて ジョブを実行 アプリ
Slide 15
Slide 15 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリを再起動 アプリ
Slide 16
Slide 16 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 キューを取得し配信 アプリ
Slide 17
Slide 17 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリ 復旧を検知
Slide 18
Slide 18 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 MQを監視 アプリ アラート発砲 ジョブを実行 アプリを再起動 キューを取得し配信
Slide 19
Slide 19 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話 当時、Rundeckはwebhookを受けられなかったので、仕方なくDjangoを挟みまし たが、現在ではRundeckもwebhookを受けられるようになっています。 これで、Djangoを挟まずに自動復旧ができるようになりました。 が、まだ使ってはいない。。。
Slide 20
Slide 20 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. まとめ
Slide 21
Slide 21 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. まとめ GrafanaからRundeckへ連携ができるようになったことで、障害の自動復旧がやり やすくなりました。 手順が決まっているような障害には使えるはず… 無駄な作業は機械にやらせてしまいましょう。 自動復旧に頼ってしまうとそもそもの根本原因の解決が後回しになってしまうこ とは注意が必要です。 (この件でいうと障害の根本原因を解決していないのは内緒。)
Slide 22
Slide 22 text
#RAKUSMeetup ©2019 RAKUS Co., Ltd. ご清聴ありがとうございました