最近、2種類のシステムを使って、ある種の監視システムを作っていた。
どっちも過去に作ったものをちょこちょこっといじってやれば完成するということでやってたのだが、
この2つのシステムを同時にいじってたら、監視の方針に差があることに気づいた。
どっちの監視システムも過去に構築したのは自分なのだが。
仮にこの2つのシステムをAシステムとBシステムと名付ける。
Aシステムの監視の基本的な考え方は、異常状態になったらアラームを表示して、ログに残す、
そして異常状態から復帰したら、アラームを消して、こっちもログに残すというもの。
異常状態から復帰するとアラームは消えてしまうのだが、ログには残るので、何かあったことはわかる。
一方、Bシステムの監視の基本的な考え方は、異常状態になったらアラームを表示して、
異常状態から復帰しても、手動で復帰動作をするまではアラームは消えない。
Aシステムでも異常状態から復帰しても手動で復帰動作をするまではアラームが消えないように作り込んだ部分はあるのだが、一部だけ。
なんとなく作ってたらこうなったという話なんだけど、一応、両システムの長所短所を踏まえたものではある。
Aシステムは異常状態の表示機能が充実していて、ロギング機能も充実している。
なので、元々ある仕組みをできるだけ活用した結果こうなったわけだ。
一方のBシステムは異常判定は基本的に手で作り込む必要があったので、
サンプルや過去の構築例を見ながら、異常検出機能を手で作り込んでいった。
サンプルはことごとく、異常検出したら手動復帰までアラームを消さないようになっていて、それにならったわけだ。
そういう用途で使われることが多いみたいね。
Bシステムで主に使った方式の方が、なにかあったことが確実に分かる点では優れている。
実用上はAシステムで主に使った方式でも問題はないことは確認済みなのだが……
それぞれ個別に存在している分にはあまり気にならなかったのだが、2つ平行で作業をしているとなんとなく気になる。
その昔、僕以外の人がAシステムで作ったものを見てみると、
AシステムでもBシステムのごとく、異常検出を手で作り込んで、異常検出したら手動復帰までアラームを消さないように作られていた。
それをことごとく作り替えたのは僕なんだけど、標準機能にあるものをあえて手で作るのはおかしいだろということで、
標準機能を使えるところはできるだけ使うようにしたんだよね。
標準機能だけでできない部分もマニュアルなどに掲載されているサンプルを参考に作るようにした。
もともと妙な機能で作り込まれていたので、メンテナンス性があまりよくなかったのだが、
標準機能で足りずに作り込みが必要な部分でも、よく使われる方法にしておけば、メンテナンス性もよいだろうと考えたのだ。
その結果、Aシステムでは異常状態から復帰したら、アラームが消えるようになった部分が多かったと。
それでもログには残るので実用上の不都合はないのだが。
基本的にはBシステムの方が貧弱なんだけど、フルカスタムで作る分には意外とやりやすい面もある。
がんばって1つ作れば、あとはそれのコピペでいろいろ使えるので、1回苦労すれば、あとはそんなに手間もかからない。
逆にAシステムは標準機能が充実している分、カスタマイズ方法がややトリッキーになる部分もある。
想定されたこと以外をやろうとすると、妙に大がかりになったりすると。
僕が作り替える前のAシステムの構築方法が妙な機能を使ってやっている部分が多かったのは、そこら辺の都合もあったのかなぁと。
試験系によりAシステムとBシステムを使い分ける必要があるので、どっちかに片寄せするわけにはいかないのだが、
似たようなものを2つ触ってると、やっぱりそれぞれ個性があるなとは思うね。
職場に他に詳しい人があんまりいなくて、僕が一番詳しいという話すらある。
一方のシステムは今の職場に来る前のOJTで触ってたので、それでやれよという話になり、
そっちができるならもう一方もできるだろっていって、マニュアルやノウハウ集を見ながらやったらできたと。
過去には他の職場の人に助けてもらいながらやってたらしいんだけどね。
誰も触れないわけでもないんだろうが、もともとメンテナンス性がよくなかったからね。なかなかノウハウも蓄積できなかったのかなと。
今後は職場内で触れる人も増えて欲しいんだけどさ。