orangeitems’s diary

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

ソフトウェアは作品ではなく、更新されていく状態のことをいう

f:id:orangeitems:20220119085057j:plain

 

仕事が忙しくなってかかりっきりになっているのですが、その中で思いつくようなことは結構いいことだったりすることが多いです。盛大にインプットになっているんでしょうね。

今日はこの話。

 

 

インフラエンジニアは、システム運用のなかでソフトウェアのバージョンアップをしていくことが宿命づけられています。昨今、どんな脆弱性が急に発生するかもわからないので、こまめに最新にしていくというのがもはや業界でも多数派になりつつあると思います。

バージョンアップする、ということはソフトウェアの開発者が地道に更新してくれるということを指します。何も手を動かさなければ更新はなく、その結果どんどん古くなっていくということになります。

更新、といっても脆弱性への対応だけではなく、ユーザーのフィードバックを受けた細かい仕様変更や、対応OSの変化への対応、バグフィックスなど、様々な観点が必要です。優先度をつけ、かつそれらのために新しい不具合を呼び込まないように細心の注意をはらう必要があります。

更新について、いつまで実施するということを約束するのがサポート期限です。基本的にはこの期限までは更新するけれども、もちろん費用は発生するよということで、有償であることが前提です。ただ、無料で社会一般に広く利用されている場合は、社会的価値を踏まえ無償で行っている場合もあります。オープンソースを無料で利用している場合はこの状況に乗っかっているとは言えますが、何せお金を払っていないので突然開発者が狂って、急に更新が止まったり不穏な仕様変更を行ったとしても、何も言えません。それはリスクでしょう。ですから、商用でソフトウェアを導入する場合、ちゃんと金銭を持って責任を明確化し計画性を持って導入しないと後々まずいことになります。

この辺りはCentOS8のサポートの件で痛感した方もいらっしゃるのではないでしょうか。RedHat Linux 8と同様にサポートも2029年まであると思ったら、急に去年までに短縮され、今や使っていけないOSとなりました。ちゃんと使いたければRedHatとサブスクリプション契約を交わせばよかったのです。CentOS8を導入してしまった方は、CentOS Streamに行ったのでしょうか。それとも別のOSへ移行するのでしょうか。別のOSはずっと更新してくれるのでしょうか。わかりません。

いや、ソフトウェアなんて機能更新はいらないよ。使えればいいよ。そう思ってらっしゃるかたもいらっしゃるでしょう。しかし、今やソフトウェアは、完全に一からプログラミングするなんてあり得ません。どこそこから便利なライブラリーを結集して、組み上げていきます。ですから、ライブラリーに脆弱性や仕様変更でもあろうものなら、自分が組んだ部分には変更が無くても手を入れなくてはいけません。そして、ソフトウェアが外部にネットワーク経由で呼び出している先の変更にも対応しなければならないこともある。

そう考えると、ソフトウェアは生き物のようなものであって、それを管理していくのは、ある意味管理職的なスキルも求められます。それぞれが相関しあい、全体として生産していかなければいけない。

大昔は、機能がきらびやかなソフトウェアに惹かれ、簡単に導入したこともありましたがもはやそんな気分にはなれません。ソフトウェアの後ろにいる方々をじっと見て、熟考し、ようやく決断する類のものです。

SaaSはその点良くできてるなと思います。SaaSの運営会社や体制そのものがソフトウェアですから。更新し続けるしビジネスが続く限りはサポート期限もない。逆にそこまでデータも含めて預けてしまって大丈夫か、という懸念とのバランスになります。まさに、SaaS = 更新されていく状態、ですね。無料で使えるSaaSもいつ有償になったりサービスを取りやめたりするかわからないのもソフトウェアの置かれる状況とすごく似ています。

さて・・私はソフトウェア更新作業に戻ります。