私は、インフラのエンジニアである。特に、OS、MW、NWの構築〜運用引き継ぎまでを担っている。
そのため、簡単なシェルは書くことはあるが、プログラムをほとんど書かないのが現状である。そして、私の部署の大多数が、プログラムが書けないし、プログラムを書けなくても全く問題なく業務をまわしていくことができる。
しかし、私は、プログラムが書けるようになりたい!と強く思うし、プログラムが書くことは「SE」にとって必須だと思う。
photo credit: norio.nakayama
プログラムは業務効率化に最適
特に運用業務に当てはまる。運用業務はあらかじめクライアントと、何の作業を行うか決定した上で契約を締結する。
そのため、作業者にとって、何を行えばよいか分かっている。そのため、クライントから作業依頼があった後に、
手順書を作成し、検証を行うという通常の作業プロセスを行わずとも、スクリプトがあればプログラムに対して、決定ボタンを押せばいいだけである。
それだけで、かなりの稼働費を削減できる。
さらに、構築作業についても同様のことが言える。
構築作業は毎回違うからスクリプトはできないという人が多い(特に私の会社の人はそういう。。。)が、私は違うと考えている。
例えば、ハードウェアのファームウェアをセットアップして、OSをインストールした後のことを考えてほしい。
webサーバであれ、DBサーバであれ、最初の構築作業でやることは基本同じである。
ホスト名の設定、ルーティングの設定、NICにIPアドレスの設定、アカウントの設定・・・・等、どんなサーバであれ、作業は決まっている。
さらに、人気のLAMP環境の構築についても、最近はわざわざコンパイルせずとも、「yum」コマンドで簡単にインストールできるのだから、決まったパッケージをインストールするようにスクリプト化することは十分可能なのである。
photo credit: aaronparecki
ただし、チューニングについては別である。
それは、各サーバの用途や位置づけ、特性を考えて、実施しないといけないため、定型作業として、実施は困難である。
ここで初めて、SEとして頭を使って取り組むべき箇所かと思う。
つまり、私が言いたいのは、構築であれ、運用であれ、多くの作業は定型化されているので、どんどんとスクリプト化すべきなのだと思う。
そして、スクリプト化できない、チューニングなどのクリエイティブな作業に時間と労力を費やすべきだと考える。
品質を高めるためにもプログラム
スクリプトで作業を行うのは作業品質を高めると私は考える。
私はよくシェルで作ったスクリプトにて設定変更作業等を実施するように提言しているが、
私の会社では反対意見が多い。人間の目でみて確認しないとどんなに検証したプログラムだとしても、不安だと。
悲しいかな、ただうちの会社の人間が、プログラムを読めないだけで、勝手にリスクの対象としてみている。
しかし、私にとっては、人間の手で作業をする方がよっぽど、危険だと思う。
人間は絶対にミスをする。
しかし、プログラムは何万回やっても必ずミスをしない。
また、構築においても設定し忘れるということを防いでくれる。
上記、プログラムを書くことでメリットがたくさんあることを述べたが、
実際、私はたいしたプログラムは書けない。
でも「SE」になるために書きたい。書けるようになりたい。
今後の課題として、取り組む。まずはRubyから!
Leave a Reply