全部自動化すれば・・
システム運用の仕事をしていると思うのだけど、基本的にはいろんな自動化の塊で動いている。それなら、もう人間が不要になるぐらい全部システムで自動化できればいいんじゃないかと思わないだろうか。なぜコンピューターが全部自動でやってくれるのに、そこに、人がいなければいけないのか。それすらも自動化できないものか。
自動化ができないケースをいくつか経験しているので書いていきたい。
自動化できないケース
障害対応
監視は24時間人が張り付いてチェックするわけには行かないので、監視サーバーを立てて一定期間ごとにチェックさせる。その上で問題が発生するレベルを事前定義し、それを超えたらメールなどで人間に知らせる。そこまでは自動化されている。
そこで人間に知らせるまではいいけれど、そのアラートを消しこむのは人間の仕事になる。傾向を確認し、すぐに対処しなければいけないのか。それともすぐには対処しなくてもシステムには影響なく、調査に時間が与えられるのか。人間が判断し、優先順位や緊急性を定義し、解決に向かって進めていく。
この解決プロセスに対して、ある決まった条件においては、ソフトウェアの再起動をすぐに行うなど、単純なことであれば自動化は可能だ。ただ、問題はほとんどの場合、そんな簡単な話では終わらない。
いや、もし問題が発生した時に、何も確認しないでいきなり処置を自動でされると、かえって症状が拡大する場合もある。本当は再起動などする必要もないのに強制的に再起動してしまい、人間の手を入れないと再起不能になる場合だってある。
スプリンクラーが火気を検知し水を出すという仕組みだって、例えばデータセンターの中で簡単に水をまき散らしていたら、機械は壊れてしまう。問題を検知するということと、それに対して自動的に対処を行うというのは、全然レベル感の違う話なのだ。
正常性確認
また、障害対応以外にも自動化しにくい部分もある。システムの正常性確認だ。毎朝、システムが正常に動いているか確認を行うが、結構多岐にわたるので、この確認を自動化できないか考えたことがある。システムの動作レポートを毎日出力しているが、これを出力する際に自動的に人間が確認している項目をプログラムで確認し、問題があればメールを送るようにしたらどうか。そうすれば、毎朝、動作レポートをチェックする必要はなくなり、アラートが来た時だけ動けばよいではないか。
しかしこの考え方には穴がある。レポートを送ることができないくらいシステムに異常があったとき、何もアラートが届かないので以上に気づけなくなる、ということだ。
つまり、システムが正しく動いてますよ!というレポートを毎日確認することが、「問題があるときだけアラートメールを送る」という工夫に変えてしまうとどうなるか。
・システムが正しく動いているのでアラートメールが来ない
・アラートメールを送る機構自体が動いていないのでアラートメールが来ない
この2つが見分けがつかないのだ。
履歴管理
運用の中でいろいろ雑多な情報処理を実施するのだけど、実際に何をやったのか、についてまとめるのはやっぱり人間しかできない。
毎日仕事の終わりの時間に、今日何やったっけ・・と思い出すとそれはもういろんなことをしていて、まとまりはない。
課題管理システムなどで自動的にやり取りのログは残るので、読み返せば一目瞭然にはしているのだが、これらを定期的に表にまとめ、履歴の管理をするようにしている。じゃないと、全部のやりとりを課題管理システムを開き読み込むわけにはいかないからだ。
この、人間がいろいろと手を動かしたことについて、自動的に状況をまとめるためには、秘書でも雇えばいいのかと思うこともあるが、その秘書も情報処理の知識がないと務まらないだろう。人間であればいいというものでもなく、ある程度知識のある人が状況をまとめないと務まらない。
将来AIがこの分野をやってくれるようになるのだろうか。ユーザーの気持ちがわかり、文面の行間を読み、端的にまとめることができるというのだろうか。
自動化の道は険しいと思う。
たまに不思議になること
システムエンジニアというのは、とにかく自動化することには前向きな種類の人間だと思っている。武器としてはプログラミングや各種ソフトウェアがある。うまく設定したり構築したら、人間がわざわざ作業をしなくて済むようになる。
そして、考え付く限り自動化に取り組み、ひと段落して思うことがある。なぜそれでも、人間(自分)がここにいて、今日も何か仕事をしなければいけないのか。
自分自身すら自動化できないのか、と思うのだけど、それは少し哲学的な領域に入るのではないかと思われる。
AIは、これに対する解、となる予定だけどどうにもまだ私の近くには来ていない(気づいてないだけかもしれないけど)。