LoginSignup
0
0

More than 1 year has passed since last update.

エンターキーの重み

Posted at

(カチャカチャカチャ・・・)
(ッターン!)

はじめに

みなさんエンターキーは押してますか?

普段は気軽に押せても、インフラ作業中は重みが違ってきます。
以前私がオンプレ環境で運用をしていた頃、
エンターキーを押す(コマンド実行の)直前に心がけていた事を紹介しようと思います。

※Apacheの例が中心ですが、特に悪意はなく例えが思いつきやすかっただけです。

1. 何に対して、何を行うのか

今から実行するコマンドには何かしら目的と期待する結果を生む。
手順書に書いてあるとはいえ、対象は何で、どのような作用を期待しているのかを再認識する事。

  • 例えば、Apacheの再起動一つにしても、意味もなく実行する事はない。
    • それがコンフィグ変更の適用なのか?
    • メモリ使用量の高いプロセスを落とす為の一時対応なのか?

目的を果たせない作業は失敗、必ず目的を念頭に置いてエンターキーに挑む事。

2. 実行時に何が起きて、どうなるのか

今から実行するコマンドで何かしらが動作して、プログラムの動作が変わるはず。
後続で確認手順があるとはいえ、想定外の挙動があればすぐに対処に回れる準備をしておく事。

  • 例えば、Apacheの再起動一つにしても、
    • 停止時に通信中ユーザーとのセッションはどうなる?
      • アラートが飛ぶなら事前連絡や一時停止は完了しているか
    • 子プロセスはどの程度の時間で入れ替わる?
    • コンフィグ読み込み順序の影響で他のホストにも影響していないか?

些細な構成ドリフトが問題を引き起こすことはザラにある。
コマンドが帰ってこない、開始時にコンフィグエラーが発生したなど想定外の挙動に落ち着いて対処する事ができる。

3. 正常と判断する為に何を確認するのか

コマンドを実行した後、期待した結果をどうすれば確認できるか想定しておく事。
実行後に最も早く正常に完了したかを確認できるのは自分。
確認手順に不足がある可能性まで疑う、手順書作成時と作業時の集中力は別物。

  • 例えば、Apacheの再起動一つにしても、
    • プロセスの起動時刻は更新されているか、古いものが残っていないか?
    • ポートは想定通りにリッスンしているか?
    • アクセスログは意図した内容で流れているか?

正常に完了せず次の手順に進んだり、間違っていた場合は大きな手戻りや取り返しのつかない問題に繋がりかねない。

4. 異常と判断する為に何を確認するのか

実行したコマンドにより、異常が起きた場合の影響範囲を想定しておく事。
異常発生時に最も早く切り分け作業に当たれるのは自分。
判断がつかず、一人でモタモタ再現を取っている場合ではない。

  • 例えば、Apacheの再起動一つにしても、
    • 特定ホストとの通信ができなくなった
    • 新規追加ログのrotateが機能していなかった
    • 一部のrewriteが機能しなくなった

インフラ作業には正常完了報告後に徐々にシステムを蝕むミスも存在し、大きなダメージを受ける事も多い。
異常の早期発見により被害や緊急対応を最小限に抑えることができる。

5. 問題が起きた時に切り戻す手順はどうするか

システムを元の挙動に戻せるよう、切り戻し手順を用意しておく、忘れがち。
不可逆な作業もあるが、元に戻す手順やバックアップなど手段は可能な限り用意をしておく事。

  • 例えば、Apacheの再起動一つにしても、
    • 元のコンフィグをバックアップしておく
    • 予めetckeeperを導入し切り戻し手順を用意しておく
    • 異常筐体を切り離す

可能な限り迅速に切り戻せる手順を用意しておく事で、安心感は格段に上がり落ち着いて対応ができる。
複数の選択肢があればより良く、対応に余裕ができる事も多い。

6. 勇気

最後にエンターを押す、その一手が恐い、重い。
覚悟を決めるとも言え、これらを考え正しく恐れる事。

背中を押してくれた言葉をいくつか記載しておく。

勇気とは恐怖を感じないことではない。恐怖を感じながらも行動できることである - (M・スコット・ペック)

最悪のケースを想定しておけば、それより悪くないと安心できる - (同僚A)

今より悪くならない、誰も死なない - (同僚B) 障害復旧の為、不可逆なコマンドを打とうとしている時
(命に関わるシステムを扱ってる方には対象外)

さいごに

これらはインフラがしっかり整ってる環境やシステムの可用性/仕組み/文化次第で不要かもしれません。
昨今はクラウドサービスの台頭で「コマンドなんて打たへんわ!」って時代でもあります。
ですが、重大なリリース直前や、クラウドサービスでも構成変更直前に数秒でもこれらを考える価値は感じています。
エンターを押さず(ボタンクリックせず)に黙り込んでる時は、せかさず優しく見守ってあげてください。

「動いていて当たり前」「作業(結果)は地味、障害は派手」「手汗がすごいですね」など色々言われましたが、
こういうスリルと刺激の中で作業している事が伝われば嬉しく思います。

心地よくエンターキーを押せる一助になれば幸いです。

(ッターン!)
「ん〜・・・ それじゃあいっちょ土下座でもかましてきますか」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0