業務時間外の障害対応は…
「完璧なサーバーなんてものは存在しない。世の中に完璧な絶望が存在しないのと同じようにね。」
サーバーというものは、宿命的に落ちます。もちろん、絶望や不治の病に原因があるのと同じように、サーバーダウンにも原因と理由があります。が、落ちるものである以上、普段落ちないようにするのと同じくらいに、落ちた場合にどうするかを決めておくことが必要なんですね。
というわけで、サーバー周りの整備を進めている昨今、はてなでタイムリーな質問を発見。
一定規模以上のWebサイトを運営しているエンジニアの方、業務時間外の障害対応ってどういう風にやっていますか?
ルールとか体制とかを中心に教えてほしいです。ちなみにぼくの会社では、監視ツールや自作監視スクリプトでアラートをエンジニア社員全員に送って、誰かが対応することになっています。(たまに誰も対応やレスをしなくて上司に怒られます)
これはぼくら社員にとって正直ストレスになるので、なにかよいルールや体制を上司に提案したいなと考えています。ぜひみなさんの会社のやり方を教えてください。
一定規模以上のWebサイトを運営しているエンジニアの方、業務時間外の障害対応ってどういう風にやっていますか? ルールとか体制とかを中心に教えてほしいです。 ちなみに.. – 人力検索はてな
んー、なるほど。ちなみにウチの会社では現状ではCTOが対応しつつ、近日中に社内ローテーションシフト体制に移行、というような趨勢です。
以下、なるほどな、と思った回答。
広告
正当派。
まとめると
・業務負荷が高いのであれば外に出す
・コストメリットを感じないのであれば中で運用
・製品、自社開発など何らかのツールを利用した負荷軽減
・いずれの場合も事前にマニュアル作成
・エスカレーションフロー、連絡ルートの確率
書き出してみると当たり前のことを当たり前にやる、という感じですねえ(^^;
対応したら報酬を、というアイデア。
いっそのことアラートを一人に絞ってしまえばいいのでは
週や日ごとに担当を決めて必ずやらなければならないという状況になれば上司に怒られることはなくなるでしょう
もしアラートを受け取った人が何らかの事情でできなければ本人が直接他の人に頼めばよいのです
アラートに気づかないこともあるでしょう
そのときのためにアラートを受け取ったら「確認した」という報告やメールでも何でもいいですがスクリプトに送ります
もし一定時間この確認メッセージがこなければ自動的に他のエンジニアにアラートを送信するなどの対策を打っておけばよいでしょう
もう一点ありますが企業的に好ましくないかもしれませんね
アラートを受け取り障害を対応したエンジニアになんらかのボーナスを与えるようにすれば誰もやらないなんてことは少なくなるのではないでしょうか
アウトソーシング派。
障害対応を社内で行うと,一見コストを抑えてるように見えますが,精神的負担は想像以上で,いまは持ってるかもしれませんが,いつか持たなくなります(経験談)
ノイローゼになってしまって,何ヶ月,何年もまったく仕事ができない(うつなど)という人も何人か知ってますので,id:kazumaryuさんの今の状況は,この序章に見えます
さて,解決策ですが,こういうトラブル対応を専門とする会社がたくさんあります.具体的なフローとしては,障害対応マニュアルというものをまとめます.アラートをあげるルールや,そのアラートを受けた人が,どのような作業を行って解決に導くのか(場合によってはベンダーに連絡を取るのか),という台本を書きます
もちろん,障害対応のプロですから,このフロー作りも,クオリティが違います
障害対応を行う会社は,それを専門にやってる会社なので,24時間専門の技術者が待機して対応する体制をとってます
アウトソースは別のコスト負担に見えますが,結果的にはコストダウンになります.自社社員にやらせればタダだなんて思ってる上司には,その誤解についてガツンと言ったほうがいいと思います
報告メール+警告電話システム。これは実際に運用されているようです。
(前略)ですが、人間なのでいくら障害メールが来ていて当番脱兎しても寝ていて気がつかなかったりすることがあります。
この問題の対策として、更に以下のようなシステムを独自で作って運用しています。
まず監視システムは担当者以外に「担当を電話で叩き起こすシステム」にもメールを送ります。
この電話システムには担当者 A,B,C の携帯電話番号が設定されており、障害メールが届くと現在当番の人を判断してその人の携帯電話に電話をかけ始めます。
1回だと気がつかない場合もあるので10回くらいは何度もリダイアルして気付かせます。
ですが、人間なので、いくら寝ていなくても、風呂に入っているなどで電話の鳴る音にも気がつかない場合もあります。
その場合リダイアル上限に達したら電話システムはAを諦めて、B,Cの携帯に順番に電話をかけていきます。
Bが当番じゃないときでもBに電話が回ってきたときはAが対応できなかったんだなと諦めて対応します。
これはAに対するBの貸しになるので、Bは翌日Aに対して飯をおごってもらうなどして貸しを返してもらいます。
ちなみにこのリダイアル地獄は電話を取ってダイアルで暗証番号を入れることで止まります。
この暗証番号もポイントで、毎回同じ番号だと慣れてくると寝ぼけたまま障害電話を取って暗証番号を入れてリダイアルシステムを停止させてまた寝てしまうことがあります。
それを防ぐため、今日の日付を入力させるなど多少頭を使わないと止められない仕組みになってます。
いかにも人間的で単純なシステムですが、これが出来てからは対応漏れも減った上に、当番以外の時は実質対応休暇となるので担当者の精神的負担も大きく軽減されました。
電話まで自動化されているというのはいい着眼点ですね。
まあいずれにせよ、これは「護身術の完成」と同じ話で、理想は最初から危険に近づけないこと、すなわちサーバーがダウンしないこと、なので、普段のサーバーの健康状態にも日々気を配りたいですね。