その修正、ダウンタイムは発生しますか?
今回は、先日自分が担当したインフラ(正確にはクラウド上のインフラ)の構成変更作業を振り返りつつ、タスクの性質がいつもとは変わっていることに意識を向けられていなかった、その反省について綴ります。
わたしは...
元々バックエンドエンジニアで、1年ほど前からインフラの整備も担当することになりました。
何が起きたか
いつも通りのタスク
私の担当タスクは、インフラの一部構成を変更するものでした。
このタスクが作成された当初は旧環境から新環境へトラフィックを向けるだけで切り替えが可能なので、大きなダウンタイムは発生しないという認識でした。
リリースタイミングが日中だとしても、ユーザーにとってはいつの間にか切り替わっている、変更に気づかれることはないという想定です。
そのため、いつもの作業と変わらないと思い淡々と作業を進めていました。
リリース日が後ろ倒しに
作業を進めていく上で当初気づけなかった問題が、少しずつ表面化しました。
その結果、大幅にリリースが遅れるというわけではないにしろ、少しずつリリース日が後ろ倒しになっていきました。
もしかしてダウンタイムが発生するのでは
リリース手順書を精査していく上で、一部の機能にダウンタイムが発生する可能性があることがわかりました。
この時点では上長にも相談しており、一部機能のダウンタイムを許容したリリースという認識を揃えてはいました。
リリース手順書が完成
リリース手順書が完成したのでレビューを依頼しました。
「このリリースではどの程度のダウンタイムが見込まれるのか、切り戻しなどのイレギュラーパターンが発生した場合のダウンタイムはどれくらいなのか教えて欲しい」とのことだったので確認しました。
正常なリリースの場合はダウンタイムは30分程度、問題発生→切り戻し→正常稼働とした場合は、最大でも3時間程度の想定であることを伝えました。
関係各所への連絡・調整が遅れる
リリース日まで残り2日、関係各所(運用担当者、カスタマーサポート、広報など)へのメンテナンス相談・調整も遅れてしまいました。
結果として、各部門に急な対応をお願いすることになり、ご迷惑をおかけする形になりました。
何が良くなかったか
タスクの性質が変わった時点で意識を変えられていなかった
ダウンタイムが発生するタスクとしないタスクとでは性質が大きく異なることに気づけなかったことが最大の失敗だったと思います。
ダウンタイムが発生すると分かった時点で上長への相談をしたことは良かったですが、この時点で当初の想定から変わってしまっているため、関係各所への調整作業が必要になることは気づけたはずです。
どうすれば良かった?
予定通りに進んでいない時点で中間振り返りをしてみる
そもそも予定通りに進んでいないのに原因を突き止めず、そのまま進めたことが良くないです。
期限が厳密に決まっていたわけではないため、横着してしまっていた感があります。
なぜ遅れているのか、当初の目的・方向性が変わってしまっていないか、振り返ってみる機会があると良かったかもしれません。
タスクの性質が変わった時点で関係各所への連絡・調整を意識する
今回のように「ダウンタイムなし」→「ダウンタイムが発生するかもしれない」へタスクの性質が変わったタイミングで、「影響範囲が変わった」と意識を切り替えるべきでした。
そのうえで、いつ、誰に何を伝えるべきかを早い段階で洗い出し、計画的に調整を進める必要がありました。
リリース手順書を作成する前にダウンタイムを見積もる
今回の作業規模はそれなりの大きさだったので、リリース手順書を作成する前(またはするとき)にダウンタイムを見積もるというタスクをあらかじめ作成しておいても良かったと思いました。
ダウンタイムが発生するしないに関わらず、タスク化しておけば意識することはできると思います。
リリース・メンテナンスのチェックリスト化
タスクの性質に応じて、必要な調整事項や確認事項をリストアップしたチェックリストを普段から用意し、「ダウンタイムありの場合は関係者連携・影響告知が必要」といった項目を作っておくことで、漏れを防げたと思います。
あらかじめリリース・メンテナンスのテンプレートを作成しておくことも有効だと思いました。
インフラ作業特有のリスク意識を持つ
「たかが一部の変更」という油断を捨て、インフラ作業は常に全体に重大な影響を与えうるものだと改めて肝に銘じる必要がありました。
定期的に振り返りや、経験者のレビューをもらいながら慎重に進めるべきだったと感じました。
まとめ
今回の経験を通して、自分が思っている以上に「タスクの性質の変化」や「インフラ特有のリスク」を見落としやすいことを痛感しました。
意識を変えることは簡単にできるものではありませんが、意識を大きく変えるためのステップとして今回のような振り返りをすることが大事だと思いました。
Discussion