障害が発生した時システム屋は何をしているのか

サルでき.jp > 99.その他 > 障害が発生した時システム屋は何をしているのか

2011/04/09 09:00 投稿先 99.その他 投稿者 カワサキ タカシ

久しぶりでございます。

アレ?
このブログ閉鎖した?
と思われても仕方が無いくらい放置しておりました。
みなさま。ご無事で毎日お過ごしですか。

今日はちょっと寄り道のお話です。しかも結構重たかったり。
お茶でも飲みながらお付き合い下さいませ。

地震発生以降様々な現象がニュースサイトを賑わせておりますが、
某大手銀行さんのシステム障害も話題になりましたね。

システム障害。

この手の仕事に関係していない方からすると、何が起こっているのかサッパリわからない言葉かと思います。とりあえず遠くのほうで「なんかヤベー」警報が鳴っている感じはするものの、誰がどんな感じでどう動いているのかは皆目見当もつきませんよね。

障害が発生した時システム屋は何をしているのか
※イメージ画像

そういえばワタシ。

今を遡ることウン年前。
とある大手銀行さん(上記銀行とは別の銀行さんです)のとあるシステム開発のとあるチームのとあるリーダーをやっていたとかやらされていたとかしていた時期があったとかなかったとかしまして。(←うっかりこのブログを見てしまった関係者の方、ご安心ください、ワタシは既にシステム名を除くすべての内容を脳内メモリーから消去することに成功しておりますので、コンフィデンシャル情報を外部に漏らすことはございません)

1年半近くに渡る開発の末、
リリースしたシステムが1週間連続で障害を起こすという、
プロジェクトXも真っ青な状況に直面したことがあります。

その時裏側で何が起こっていたか。
こんなことが起こっていました。

企業さんのシステムってのは、大きく分けると「オンライン(営業時間中に使うシステム、主に画面系)」と「夜間(画面系をすべて使えなくして、データのバックアップやら洗い替えをするバッチ系)」に分かれていたりします。システムが巨大になればなるほど、この区分けを明確にしておかないといろいろ面倒なんですね。バックアップを取っている最中に誰かが1件画面からデータを書き換えちゃいました。みたいなことが大問題になりかねませんので。

で、本番システムが稼働しはじめて。
ワタシも夜中の12時くらいまでは状況をチェックしていて、とりあえず夜間処理が順調に動き始めたので家に帰ったわけです。

風呂→寝る。

ヴヴヴヴヴヴヴヴ。

ピッ。

「…アィ」

「カワサキ?XXシステム(ウチのシステム)で障害発生って連絡が来たから、すぐ行って」

大手銀行さんくらいのシステム規模になると、24時間体制で全システムのチェックが行われておりまして、エラーが発生すると、まずサーバーセンターのモニターに対象システムとエラーメッセージが上がるようになっています(というか、そういう風に開発することを各システムが義務付けられています)。

で、サーバーセンターの担当の方が、膨大な量のオペレーションマニュアルの中から、該当システムの該当エラー発生時の連絡先を探して、即連絡するわけです。

ウチの場合は、ワタシの上司(プロマネ)の連絡先が書いてありましたので、そこから担当チームリーダー(ワタシ)の携帯が鳴る、と。こういう仕組みです。

「XXさんとYYさん(対象障害に関連しそうなエンジニアの方々)には連絡入れておくから、よろしく」

ピッ。

携帯の画面を見ると、3時。

風呂(起きる用)→着替え→タクシー。

サーバーセンターではなく、システム部のビルに向かいます。

到着すると、お客様・システムチーム、夜勤組も含めて既に結構な人数が到着していて、ミーティング用のテーブル脇のホワイトボードには「3時XX分、障害発生」と赤い文字が。映画のワンシーンようなピリピリした雰囲気が漂っています。

みんなで話すことができる電話機能付きスピーカーの前、一番いい席が空席になっていて、確認するまでもなくそこがワタシの席なわけです。「ヒーロー見参」なのか「生贄到着」なのかはその時の気分次第なのですが。

着席すると、お客様がサーバーセンターと、本社ビル(業務チーム)をつなぎます。
深夜の多次元放送。オーディエンス数不明。でもいっぱいいる雰囲気。

「3時に発生したXXシステムの障害について、障害ミーティング始めます。担当のカワサキさんから状況と対応について報告していただきます。」

はい、キュー!

「カワサキです。今回の障害の事象ですが、うんちゃらかんちゃらどーちゃらこーちゃら<略>、まずはXX機能の部分とその周辺のDBをチェックします。状況によっては業務対応の可能性もありますのでその場合はよろしくお願いします。では次は30分後にお願いします。」

なんてことを一気に伝えて、
即解散。紙出ししておいてもらったログとDBの抜粋を脇で見つつ対応に入ります。
ホワイトボードには、「4時25分、次回チェックポイント」と追記されています。

界王拳倍。
さらに倍。

持てるパワーと動ける人を総動員して障害発生箇所を特定します。
疲労やら睡眠不足やらはアドレナリンで吹き飛ばします。

30分後。

「カワサキです。ログを調べたところ、ZZからのデータ受信時に異常がうんちゃかんちゃらどーちゃらこーちゃら<略>、現状の回復を優先しますのでバックアップを取った状態で該当のデータを削除して再処理を行います。その処理が問題ないことを確認したらその後の処理を実行。問題なければオンライン時間には間に合う予定です。再処理完了まで45分程度を予定しておりますので、次は45分後に。」

次のミーティング予定時間がホワイトボードに書きこまれ、
特別対応処理なので、承認をもらうためのペーパーがマネージメントラインにまわり、
必要以上に厳重なバックアップを取り、心臓叩いて待機。

処理を行うパソコンとログのモニターができるパソコンのまわりには人が集まり、
祈るような気分で様子を見守ります。

「承認OKです。」
「ではいきますかー。」

ポチ。

シーン。

>正常終了

よぉぉっっっしゃぁぁぁぁぁぁ!!
よぉぉぉっっっしゃぁぁぁぁぁぁ!!
よぉぉぉぉっっっしゃぁぁぁぁぁぁ!!
よぉぉぉぉぉっっっしゃぁぁぁぁぁぁ!!

↑ 問題が解消された場合 ↑

「承認OKです。」
「ではいきますかー。」

ポチ。

シーン。

>エラー終了

シーン。

↑ 問題が解消されなかった場合 ↑

解消されるように最善は尽くしているのですが、
ダメだった場合はクヨクヨせずにすぐ次の手を考えます。
そうは言っても必ず問題の原因は存在するので、いかに手を打ち続けられるかが勝負です。

数分後。

「カワサキです。処理が正常に終わりました。とりあえず今回は暫定対応でしたのでうんちゃらかんちゃらどーちゃらこーちゃら<略>、詳細につきましては障害リストと課題リストにあげた上で至急詳細な調査、対応を行います。今回の障害の全体への報告は朝(数時間後)の全体会で行います。みなさまご対応ありがとうございました。」

昨日深夜3時にXXシステムで障害が発生しましたが。
現在は復旧しております。

こんな感じになる、と。

で、朝の会で報告して、帰って寝ます。
もちろん、障害が解消した場合のみ、です。

キツかったですねー。コレが1週間。

そもそもテストが甘いんだよ、と言われればそれまでですが(ToT

それはそれとしても。
誰か代わりの人が交代で対応すればいいじゃない。
巨大開発チームで、人はたくさんいたんでしょ?
(実際ウチのチームだけで25人くらいいました)

って思うところだと思うんですよね。

無事解決して「思い出話」になった今となっては、
「そう、ワタシが目立ちたかっただけなのさ」と言っていますが(^^;

なかなかそうはいかない事情というものがありまして。

事情その1:
1年以上かけてお客様と調整に調整を重ねて作ったシステムは、様々な要素を中に含んでしまいますので、いくらスーパーエンジニアであっても、経緯を知らなければ「正解」がわからなかったりします。

事情その2:
おまけに、障害は多くの場合、複数の機能をまたいで発生しますので、ある程度俯瞰でそのシステムを見てないと、原因までたどり着く時間に雲泥の差が出てきてしまいます。

要は「障害時にはエンジニアが何人いても、担当者の代わりになれる人はほとんどいない」
ってのがシステム屋さんたちの事情です。

ですので全体の人数よりもはるかに少ない人数で事に当たっています。

実際、
お隣りのチームが火を吹いたときにワタシができたことは
コーヒーを入れてくることとゴミ掃除と応援くらいでした。(←役に立たなすぎ)

地震以降様々な場所で障害が発生しています。
(原発についてはワタシは無知識、無経験ですので何も言えません)

既に現役でも何でもなく、iPhoneアプリ開発でイッパイイッパイのワタシが安易に何かを言うことはできないのですが。過去の経験から、こんなときの「代わりもいないし」「時間の感覚もなくなるし」「緊張感スゲェし」っていう担当者のキツさはボンヤリとは想像できますので、くれぐれも身体だけは壊さないようにしてくださいませ。食事と睡眠の確保を最優先に、、、している場合ではないと言われるかもしれませんが。ホントに最優先に。

応援しています。それくらいしかできませんが。応援しています。

関連する記事:

    None Found


Advertisement