前回に引き続き、Linuxでの作業について書いてみます。
今回はwar
のデプロイなど、サービスに変化を与える本番作業の時に心がけていることです。
僕の職場は「本番環境にアクセスするには専用の端末で、申請が必要!」みたいなガチガチな環境ではなく、自分のPCからいつでも好きなときにログインできちゃうようなユルーい環境なのですが、それでもサービスに変化を与える本番作業はとても慎重に行います。むしろ、規制がない分自分の注意や工夫に依存してしまうため、余計にいろいろと気を遣います。何年たっても、毎回ドキドキしながら作業しています。
そんな状況で、僕が作業中に注意していることを書いてみます。
極力タイプしない
前回も「Linuxはなるべく自分でタイプしない方が良い」と書きましたが、本番作業ではさらにそれを厳しく守っています。
特に本番作業は定型的なものが多いため、毎回自分でタイプするのではなく、どこかに手順書を作っておいてそれを上からコピペするだけ、というようにしています。
可能であれば、コピペしなくても良いようにシェルにまとめたり、Jenkins等でコンソールを開かなくても作業完了できるような状態を作っておきます。
とにかく「人はミスをするので何もしない」を意識しています。
指差し確認する
Enterキーをタイプする前に、必ず指差し確認をしながら間違いがないことを確認します。一見大げさに見えるかもしれませんが、実際にこれをやっていたら予想外のミスをしていたことに気づいてヒヤリとすることが少なからずあったりします。
また、指差し確認しながら、独り言のようにコマンドをブツブツ呟きながら作業します。
※ 実際にブツブツ言うか頭の中で唱えるだけにするかどうかは職場環境と自分のキャラに相談してください
実行しようとしているコマンドが「参照」か「更新」かを意識する
コマンドにしろSQLにしろ、実行しようとしている内容が「参照」なのか「更新」なのかによって注意度は変わってきます。
例えば、 ls
コマンドを実行するくらいであれば多少ミスったとしても何も表示されないか、エラーが表示されて終わるだけで、ファイルの内容などには何の影響も与えませんので、多少確認も緩くなります。
逆に、mv
や rm
は「更新」ですので、間違えると今動いているシステム自体に影響を与えてしまう可能性があります。そのため上記の指差し確認もしっかりと行い、確かに実行してしまって問題のないものなのかをEnterキーの直前にもう一度自問自答しています。
切り戻し手順を確認する
残念ながら、作業した結果本番環境でエラーが発生する、といった状況は常に起こり得ます。また、エラーが発生するとまず間違いなく作業者はテンパって正常な思考が困難になります。
そんなときに備え、「とりあえず作業前の状態に戻す」ためのコマンドを事前に確認しておきます。
定型的な作業であれば、切り戻し手順まで書いて初めて手順書と呼べる、と昔上司が口を酸っぱくして言っていましたが、まさにその通りだと思います。
作業中は社長が話しかけてきても無視する
これは僕が始めて本番作業をするときに、OJTの先輩に言われた言葉です。
ユーザーに関わる作業をしていて、手を止めること自体が障害を引き起こす可能性のある本番作業中は何があっても作業を優先しなさい、という意図です。
実際に本番作業中に社長に話しかけられたことはありませんが、上司や先輩に話しかけられた場合は「ちょっと今本番作業中なので後でお願いします」ときっぱり断るようにしています。
逆に誰かに話しかける際は、その人が本番作業中でないかどうかを意識してチェックするようにしています。
Linuxは工夫次第でとても強力なことができてしまう分、ミスったときの影響も強力です。
そのため、本番作業をする際はかなり慎重に、普段の操作とは違った考え方で操作する必要があります。
自分のコマンドがどんな結果を引き起こすのかを常に考えることで、本番作業だけでなく普段のLinuxの扱いも向上し、素早く正確な操作ができるようになると思います。