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
障害対応を自動化した話 / 20220609_Automation
Search
Rakus_Dev
June 09, 2022
Technology
0
730
障害対応を自動化した話 / 20220609_Automation
Rakus_Dev
June 09, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
ARR100億超SaaSをさらに成長させるPdM組織の立ち上げと今後について
rakus_dev
0
410
B2B SaaSでSpringSecurityによる Roleを用いたユーザー権限設定の 実装について
rakus_dev
1
300
22歳になる長寿サービスのUI刷新 ~密結合システムからViewを分離した苦労話
rakus_dev
1
2.5k
【ラクステックカンファレンス2023】オープニングセッション/20230208_kude
rakus_dev
1
770
短納期でも進化をあきらめなかった新規プロダクト開発/20230208_matsuura_kawakami
rakus_dev
0
760
フロントエンド横断組織のチームトポロジー/20230208_kunieda
rakus_dev
0
950
ベテラン社員が抜けても若手が成長できるエンジニア組織づくり/20230208_otsuka_aramaki_kuyama
rakus_dev
0
770
デザイン組織が社内下請けから脱却するためにやったこと/20230208_kobayashi
rakus_dev
1
820
ゼロから始めるクラウドネイティブ/20230208_mikata_matsumoto
rakus_dev
0
710
Other Decks in Technology
See All in Technology
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
130
小さな開発会社がWebサービスを作る理由
polidog
PRO
1
160
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
230
マルチアカウント環境への発見的統制の導入
ch1aki
1
1.3k
巨大なテーブルのテーブル定義を無停止で安全に誰でも変更できるようにする / Table-definitions-for-huge-tables-can-be-modified-by-anyone-safely-and-non-disruptively
freee
1
740
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
150
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
100
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
オーナーシップを持つ領域を明確にする
konifar
12
2.8k
アプリがつくるNOT A HOTELブランド
hokuts
1
450
Databricks における 『MLOps』
databricksjapan
2
140
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.2k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
258
12k
Done Done
chrislema
178
15k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
YesSQL, Process and Tooling at Scale
rocio
163
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
77
41k
Debugging Ruby Performance
tmm1
70
11k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Rails Girls Zürich Keynote
gr2m
91
13k
Transcript
#RAKUSMeetup ©2019 RAKUS Co., Ltd. ©2019 RAKUS Co., Ltd. 障害対応を自動化した話
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自己紹介 • 名前:下西 章王 (しもにし
あきおう) • 出身:大阪 • 趣味:ゴルフ、野球、サウナ、麻雀、etc… • 所属:ラクス インフラ開発部 • 業務内容:インフラを担当してます。 コーポレートサイト・サービスサイトの運用・保守 メール配信システムの運用・保守
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 今日話すこと • 自動化した内容 • 使ったツールの話
• こんなことしました • まとめ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容 メール配信システムの話 • 障害の内容 •
RabbitMQにメールキューをためているのですが、アプリのバグ?でなぜかキューが1つ残り 続けてしまうことがあります。 • このままでは残ったキューが配信されず、残り続けてしまい、読者に届かない… • 復旧方法はアプリを再起動すれば直る アプリ インターネット キューに残り続ける 再起動で復旧
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 自動化した内容 メール配信システムの話 作業時間は5~10分くらいなのですが、 毎回アラートが上がるたびにPCを起動して… アプリ再起動させて…
キューがなくなったの確認して… とめんどくさい。。。 そしてまぁまぁな頻度で発生する…(ならすと1日1回以上…) ヨシ。自動化しよう。
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話 • Prometheus (監視のデータ収集) •
Grafana (監視データの描画・アラート発砲) • Django (Pythonのフレームワーク) • Rundeck (ジョブ実行ツール) 上記を使って自動化しました。
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 MQを監視 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 キューが残っている アラートを検知 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 Webhookで Djangoに通知 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 APIを叩いて ジョブを実行 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリを再起動 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 キューを取得し配信 アプリ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 アプリ 復旧を検知
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 構成 MQを監視 アプリ アラート発砲 ジョブを実行
アプリを再起動 キューを取得し配信
#RAKUSMeetup ©2019 RAKUS Co., Ltd. 使ったツールの話 当時、Rundeckはwebhookを受けられなかったので、仕方なくDjangoを挟みまし たが、現在ではRundeckもwebhookを受けられるようになっています。 これで、Djangoを挟まずに自動復旧ができるようになりました。 が、まだ使ってはいない。。。
#RAKUSMeetup ©2019 RAKUS Co., Ltd. まとめ
#RAKUSMeetup ©2019 RAKUS Co., Ltd. まとめ GrafanaからRundeckへ連携ができるようになったことで、障害の自動復旧がやり やすくなりました。 手順が決まっているような障害には使えるはず… 無駄な作業は機械にやらせてしまいましょう。
自動復旧に頼ってしまうとそもそもの根本原因の解決が後回しになってしまうこ とは注意が必要です。 (この件でいうと障害の根本原因を解決していないのは内緒。)
#RAKUSMeetup ©2019 RAKUS Co., Ltd. ご清聴ありがとうございました