orangeitems’s diary

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

自動化の危険性

 

コンピューターはとても便利で、基本的にはコーディングしたら、同じことを正確に何度も繰り返してくれる。人間では真似できない。同じことを100回、は精神力でカバーできるかもしれないが100000回ではどうだろう。それも可能にしてしまうのがコンピューターの凄さだ。それがうまく行かなくなる時、つまりエラーが起こるのは大抵、それを動かしているインフラ基盤に変化が起きた時だ。日々の運用はそのために存在しているといってもいい。インフラ基盤に何か起こった時に即座に対応できるのは当たり前で、そもそも、何も起きないように前もって日々動き続けることが重要だ。

そして、この日々の運用すら自動化は適用できる。アプリケーションだけではなくインフラ基盤も自動化を前提に考えるので、日々いろんな層のものが自動化されていく。運用していく上での究極は完全自動化である。人間がほっといてもいいという状態。そして、この安定運用を実現し続けていると、ユーザーは「運用は楽でいいね」と思うに違いない。運用も自動化しているのであれば、ぱっと見、人間はあまり必要ではないように見える。そういう流れで、安定運用している現場から、どんどん人がいなくなる。

これは、システム運用している人ならよく知っている皮肉な現象だ。優秀な人が設計し優秀な人が運用をすると、その工夫すら自動化として実装される。そして極度に安定するので、皮肉にも人間に対する予算は減らされていってしまう。

私も、この極度に自動化されたシステム運用、というものに携わっていて、見た目的に仕事量は大した量じゃない。残業はほぼなく、休みも結構自由に取れる(ただし休み中にも少しは仕事が発生するので理想的でもないが)。だから、人がアサインされない。

ところが、この極度に自動化されたシステム運用。システム群を束にして観察してみると、どうにもその責任や処理量が、担当している人数と見合わないのである。どう自動化されているか、について把握している人が少なすぎる。ちゃんと動いていて手間もかからなくて、そして実際手もいらないのなら人は要らないというロジックはよくわかるが、果たしてこの状況は安全なのだろうか。

もし、この自動化された仕組みの中で、何か例外的な問題が起こった時に対処できるのだろうか。それが月に1回、年に1回、なのかもしれない。そのために有識者を張り付けておくのはもったいない、という理論はわかるが、その1回をきちんと対応できる体制がないというのは、私は危険なことだと思う。

どこかで、システム運用の責任量/担当者の人数、で計算される数字の適性値が社会で共有されるといいなと思う。担当者側が優秀であればあるほど自動化は進み、それが生産性が高いと言われてしまうのだが、確実に限界値がある。あまりにも特定の担当者にそれを背負わせすぎると、非常に危険なのではないか。それを数値化し制御していかないと、どこの企業も安定しているシステムに対してのディフェンスが非常に弱くなっていくのではないか、と危惧している。