10月スタッフ会合を行いました。
こんにちは、先月ぶりです。
今月もスタッフ会合が開かれました。
今月のワークショップは、
「 システムエンジニアなら必ず知っておきたい、楽しいトラブル対応
経験から学ぶ障害対応術 」
です!
なんと楽しそうなテーマなのでしょう!
始める前からワクワクして、眠ることのできない夜が続きそうです。
障害とは、ここではもちろんシステム障害のことを指し、情報システムが何かしらの不具合により本来の機能が利用できなくなることです。
例えば、インターネットショッピングをしようと思い、普段利用しているWEBサイトにアクセスを試みたが、"ページが見つかりません"と表示される・・・
こんな経験が少なからずあると思います。
そして今回のワークショップは障害対応術です。
つまり、こういった障害が発生しないためにどう対処するか。
また、障害が発生してしまった場合にどう対処するかをワークショップ形式で学びました。
ワークショップを終えると、今回は4チームに分かれて演習を行いました。
あなたたちのチームはあるA社のショッピングサイトを作成しました。
運用をA社が行い、システム保守をチームで担当しています。
ショッピングサイトには、一般の会員がアクセスするフロントページと、
会員や商品を管理する管理者ページがあります。
クラウドサービスを利用しており、1台のWebサーバーと、1台のデータベースサーバーで動いています。
使用ミドルウェアはApache、Tomcat、データベースはOracleです。各サーバーにはSSHでログインすることができます。
社内にはほぼ同環境のテスト環境を用意しています。
2ヶ月前にサイトをオープンし、3日前とその1週間前に、プログラムに機能追加をおこなっています。
- 演習1
ある日、フロントページのある商品のページにアクセスが出来ないとの問い合わせを、A社から電話で受けました。
あなたは早速SSHでサーバーにログインし、状況の把握に取りかかりました。
- 電話で伝えるべきこと、聞いておいた方がよいことは何でしょうか
- 状況の確認をするために何を調べればよいでしょうか?疑わしいところはどこでしょうか?
- 原因について、いくつか仮説を立ててみてください。
演習が始まると、早速チーム毎に分かれて話し合いです。
時間内に全ての意見を書ききれないほどに案が飛び交いました。
- 特定の商品の情報。どの状況で発生したか。閲覧環境。
- ログの確認。再現可能かどうか。3日前、10日前に変更したプログラムが怪しい。クラウドサーバーが怪しい。
- 特定の商品に特殊な文字が組み込まれていた。プログラムにバグを埋め込んだ。ブラウザ。クラウドサーバーの仕様変更。
等々・・・
ここに挙げたのは一例で、1チームだけでもかなりの量となりました。
4チーム合わせると・・・システム障害は考慮しなければならないことが多くて楽しいですね!はぁ・・・
演習の様子①
- 演習2
調査を進めたところ、障害の原因が分かりました。
3日前に修正を行ったプログラムにバグがありました。
・不正な値が商品データに追加されてしまった。
・その商品データのページを開いた場合エラーが発生する
- 至急やらなくてはならないことは何でしょう
- 原因解決のためにやらなければいけないことは何でしょう
- 修正を行う際に確認しなければならないことは何があるでしょうか。
- 同じ障害・バグを発生させないために、今後どのようなことが必要でしょうか。
- 運用担当のA社への謝罪。特定のデータの削除(削除する前に全体のバックアップ)。一般ユーザーに向けたHPに謝罪/障害報告。
- バグ修正(不正な値が入らないようにバリデーション)。
- 今回のバグを修正する際に別のバグを埋め込んでいないか。テスト機で動作確認。
- 単体テスト/結合テストの強化。社内共有。
どのチームにも、"謝罪"の項目がありました。
顧客や取引先との信頼関係を築くためにも謝罪は大切ですね!
他にも、連絡/報告を確実にといった趣旨の項目も多く挙げられました。
演習の様子②
ここまでで今回の演習は終了です。
私たちは、開発が終わるとプロジェクトが終わったかのように思っていますが、システム保守も含めて一つのプロジェクトです。システム開発で得られた信頼・利益を守るためにも、確かな障害対応術を身に着けるべきだと強く感じさせられました!
トラブル対応について"楽しく"学べました!ありがとうございました!