orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

最新バージョンに上げ続ける運用 VS フリーズさせる運用

f:id:orangeitems:20201020092536j:plain

 

東証システム障害の報告書を見ましたが、IT業界全体が抱える哲学的な話だと思いました。

 

pr.fujitsu.com

マニュアルの記載と実際の仕様の齟齬が生じた原因は、当該共有ディスク装置のオペレーティングシステムのバージョンアップにより製品仕様が変更された際に、マニュアルの記載が変更されていなかったことによるものです。

 

システム保守って、教科書的にはファームウェア、OS、ミドルウェア、アプリケーションのバージョンを最新に上げ続けることと書いてあります。

バージョンアップは3つの目的で行われます。

①ソフトウェア不具合の改修
②セキュリティーホールの対策
③機能改善

①、②は良いとして、③までついてくるんです。

一番おなじみなのが、Windows Updateです。Windows 10で定期的に大型アップデートがされると思いますが、適用するとかなりの変更が実施されます。

また、iPhoneでも、iOSが13.0、13.1・・とマイナーアップデートされた後に、14.0のメジャーアップデートが起こり機能が大幅に変わったりします。

前のバージョンは早めにサポートが打ち切られるので、早めに最新のバージョンにするのが現在の考え方だと思います。

 

しかし、この③機能改善がくせ者です。

新しい機能を埋め込むために、新しい不具合を含んでくることがよくあるのです。今回の東証の件は、仕様変更に気づけなかったことが真因とありますが、この辺りの変更は解釈でどうとでもなります。なぜ勝手に変更したのだ、不具合じゃないか、というユーザーは普通に存在します。

さて、バージョンアップしたら動きが変わる。新しい不具合の可能性がある。ではバージョンアップのたびに、試験を全部やり直すのでしょうか。

否、保守作業のたびに試験をやり直していたら、いくらお金があっても足りません。

そんな現場はないと断言できます。

ですから、本来は③機能改善のない、マイナーバージョンアップで話を留めたいところなのですが、ベンダーの考え方は違います。古いメジャーバージョンを長く保守はしたくないのです。常に新しいバージョンを先頭に置いておかないと、開発リソースがもったいないからです。

 

特に、ストレージまわりは私も経験がありますが、かなりソフトウェアに依存したプロダクトです。ファームウェア・OS・ミドルウェアが一体となった、まさにシステムと言っても差し支えない機器です。

この、ソフトウェアがメジャーバージョンアップすると、機械を入れ替えたんじゃないかというくらい管理画面が変わったりして面白いプロダクトですが、まぁ、リスクの塊です。本当は上げたくない。でも上げるのが定常。

大昔の考え方は、「リリースしたら特に問題が無ければフリーズする」でした。これも理にかなっている部分はあります。やはり一度試験に通った構成は、そのままが最も安定します。

ただ、〇〇〇日問題、みたいな、放置すると問題が起こる系の不具合が試験では見抜けなかったりして、その解消はバージョンアップ、みたいな出来事もたくさんありました。だんだん業界も、最新バージョンアップが堅いよね、という雰囲気になって、今があります。

 

今後、東証は、バージョンアップのたびに試験を繰り返すのでしょうか。保守料も上げざるをえない。

やはり、哲学的な話だと思います。

ま、ベンダーはメジャーバージョンアップせずに、バグフィックスだけ永遠にしてくれればいいのに、というのが、かなわない本当の願いですが・・。