orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

いろいろシステム運用の現場で思うこと。

f:id:orangeitems:20210516171455j:plain

 

いろいろシステム運用の現場で思うこと。

 

シェルはできるだけ少なく

シェルを使えば基本的に何でもできるのだけど、こじらせて大作を作ろうものなら、メンテナンスが大変になる。あまり使わないに限る。

バックアップや監視については、専用のソフトウェアもあるのでそれに任せるに限ると思ってる。ソフトウェアはマニュアルやナレッジがあったり、保守があったりするけれど、シェルに関しては作った人に聞くしかない。作った人がいなければ、自分で読むしかないが、そうなると時間がかかる。修正したいのに、中の構造を解読しないといけない。

また、シェルの積み重ねでできたシステムは、将来の変化に弱い。シェルを作成したときには想定していなかった変化が起こった時、誤作動を起こす可能性がある。ソフトウェアはいろいろな場面を考えて作られているので、比較的楽だし、変更もしやすいし、何の設定なのかをわかりやすく表示してくれることが多い。

 

ソフトウェアやハードウェアは種類を統一する

世の中たくさんのソフトウェアやハードウェアが出ているので、システム構築のたびに新しい技術を採用したくなるが、ここはぐっとこらえて、あまりたくさんの種類を使わないようにしている。

同じソフトウェアを複数システムに横展開すると、構築時にも運用時にも、同じ手法が使えるので生産性が向上する。一か所で起こった同じ問題は、他のシステムでも同様に対応すればいいので効率がいい。

ソフトウェアの数だけナレッジが必要となり、かつその組み合わせでいろんな状況が発生する。だから、組み合わせも含めてシンプルにし、それでも変える場合は根拠を持って実施しそれ以後に構築するものも採用していくぐらいが望ましい。

ベンダーも栄枯盛衰があるので、一度採用したからといって未来永劫採用、というのは頭が固すぎる。しかし、簡単に変えてはいけない。採用は慎重に。採用したら捨てるのも慎重に。

 

エージェントには気を付けろ

監視にしろバックアップにしろ、ジョブ管理にしろ、エージェントソフトウェアを導入し、管理サーバーに接続し集中管理するソフトウェアは多い。

このエージェントの品質が悪いと、エージェントがCPUやメモリーを使ってしまい、本体の動作に悪影響を与えるケースがある。

エージェントがなくても動くソフトウェアをエージェントレスと言うが、エージェントレスで済むのならばそれが一番いい。

システム自体は軽いのに、インフラで入れたエージェントソフトウェアが障害の原因、となったらとてもかっこ悪い。エージェントを入れるとなると、OS全体ということにもなり、システム全体で悩ましい思いをすることになる。

 

リリースしてから1年間は気を抜けない

一生懸命テストしてからリリースし、一か月くらい経って安定すると、とたんに気を抜いてしまうのが運用。でも1年間は気を付けた方が良い。アプリケーション側で月次処理のようなものを動かしていることは多く、一年を通じていろんなイベントがある。リリース当初はデータも少なく軽いことが多く、一か月を乗り切ったところで一年を乗り切れるかといえば全くの別の話である。

アラートが起きないから大丈夫、と思っていたらアラートを出す実装から間違っていて、本当は問題は起こっているのにアラートを出さないだけかもしれない。

テストはしたかもしれないが、リリース当初は正しく動いているか、健康診断や車検のような正常確認を行うことをお勧めしたい。

ログのローテーションが三か月、としたときに、実際にローテーションし始めるのは三か月後なのでリリース後はわかりにくい。実はインフラの試験の際には、時間経過してからの動作確認はスキップしたりするので、実運用に入ったときに改めて確認してみると、あら、できてなかった、なんてことが多い。

 

何もなくとも、やったことはすべて顧客にアピールしたほうがいい

何もなかったら何も顧客に知らせない、という保守のやり方はある。

何かあった時だけ顧客に連絡し対応内容を通知する。

でもこれだと、何もないと、何もしていないみたいだ。

そのうち、「何もしてないからお金安くしてください」みたいな相談を受ける羽目になる。いや、違うのだ。何もないためにはいろいろやっているのだ。そのためには普段の運用をきちんとログにまとめ、それを定期的に顧客に知らせる必要がある。そうしないと顧客もその価値を感じようがない。

何もない、というのは保守をきちんとやっているからですよ、というコミュニケーションの積み重ねが信頼を生み保守の価値を作る。

 

未熟な人に監視させることのリスク

保守作業について、未熟な人にルーティーン的に監視のアラート確認などをさせるのは常とう手段だと思うが、私は根本的には未熟な人の報告は信じていない。

何をしているかというと、自分も見ている。ただくまなく見るというより、見落としそうなスルーしそうなものについて、きちんと未熟な人が拾うかを見ている。見落とした倍は指摘を行いつつ自分で対応するし、その様子を見せるようにする。

未熟が未熟である所以として、見落としたものについてはそれが対応する作業も身に着いていないことが多い。だから、ほぼ教育の一環だと思って、見落としが無くなるまではしっかりダブルチェックしたほうがいい。

一つの見落としが、将来の重大障害とつながっているかもしれない。

面倒で地味な作業ほど、未熟な人に廻りがちだが、リスクがあることを知っておこう。

 

システムには寿命がある

どんなに頑張って保守をがんばっても、いろんな理由でシステムの運用は終わる。もちろん、保守担当者が気に入らないとか、障害が多いなど、コントロールできる理由だとすると、反省はしなければいけない。ただ、反省しようがない理由もある。ビジネス上の理由。会社の方針変更。システム更改による旧システム停止。保守作業でせっかく落ち着かせたのだから永久に保守をしていたいと思うが、終わりはある。そのたびごとに落ち込んでいるのは無駄だと思う。それより、無事に寿命を果たせたことを喜んだほうがいいのではないか。

 

 

さて、また月曜日がやってくる。

土日が平常に流れていることに幸せを感じる。