OSSのABC
Eは技術スタックの有効期限を表す。
オープンソースソフトウェアのABCシリーズでは、コンプライアンスからドキュメンテーションまで、あらゆることについてお話してきました。今日は、大きなテーマに取り組みます:Eはエンド・オブ・ライフ(EOL)です。
技術に携わる人なら、この言葉を耳にしたことがあるだろう。しかし、実際にはどのような意味なのか、そしてなぜそれがあなたのビジネスにとって重要なのか?それを分解してみよう。
ソフトウェアにおけるEOL(End of Life)の意味とは?
オープンソースのメンテナが、あるプロジェクトが寿命に達したと発表するとき、それはもうアップデートや修正、セキュリティパッチをリリースしないということを意味する。プロジェクトは "死んだ "わけではない。
その例はどこにでもある:
- AngularJSは2022年に正式にサポート終了となる。
- Python 2は、20年近くの支配の後、廃止された。
- jQueryや Lodashのような広く使われているライブラリでさえ、いずれはフェイズアウトする。
なぜこのようなことが起こるのか?コミュニティが新しいフレームワークに移行することもある。時には、単にメンテナに継続する時間やリソースがないこともある。
なぜ企業は製造中止のソフトウェアを稼働させ続けるのか
厄介なのは、EOLになったからといって、それが機能しなくなるわけではないということだ。多くの企業は、EOLソフトを使い続けている:
- 移行には費用も時間もかかる。
- 古いシステムはまだ "機能している"。
- 交換ツールはすべての機能をカバーしているわけではない。
今は大丈夫でも、事故が起きれば大惨事になる。
使用済みソフトウェアの運用リスク
- セキュリティ脆弱性
パッチなし=保護なし。新しいCVEが発見されても、誰も修正しない。そのため、アプリケーションは攻撃される可能性があります。 - コンプライアンスの頭痛の種
GDPR、PCI DSS、SOC 2のようなフレームワークは、積極的なメンテナンスが必要です。サポートされていないソフトウェアを実行すると、監査人や法務チームに赤信号が灯ります。 - 互換性の崩壊
テクノロジーのエコシステムは動き続けている。ブラウザは進化し、オペレーティング・システムは更新され、依存関係は変化する。あなたのEOLソフトウェアは、ある日突然壊れるまで適応しないでしょう。
ソフトウェアがEOLになったら何をすべきか
ステップ1:慌てず、しかし無視せず
その「車内の奇妙な音」は大きくなる一方だ。
ステップ2:代替案を評価する
代替案は何か?より新しく、サポートされているフレームワークやライブラリはあるか?
ステップ3:移行計画を立てる。
- マップの依存関係
- 徹底的なテスト
- スイッチを入れる前に開発者をトレーニングする
ステップ4:すぐに移行できない場合のリスク管理
- EOLシステムをクリティカルなワークロードから切り離す
- モニタリングの強化
- セキュリティ・パッチを提供できるサードパーティのサポート・プロバイダーを検討する。
大局観すべてがEOLに達する
厳然たる真実:技術分野では、永遠に続くものはない。どんなフレームワークも、言語も、ライブラリも、いずれはEOLになる。問題は「もし」ではなく、「いつ」なのだ。
賢い組織は次のような準備をしている:
- OSSの依存関係を定期的に監査する
- 移行スケジュールの優先順位付け
- HeroDevsのようなベンダーと提携し、移行が即座に不可能な場合のネバーエンディング・サポートを提供する。
最終的な収穫
EOLは古いソフトウェアだけの問題ではない。変化への準備なのだ。
サポートされていないOSSを本番稼動させている場合、遅れをとっているだけでなく、リスクもあります。しかし、計画、リスク管理、サポートを適切に組み合わせれば、タイムラインを進めながらシステムを安全に保つことができる。
次のシリーズは?Fはフォークを意味する。
それまでは、コードをクリーンに保ち、依存関係にパッチを当て、移行計画を現実的なものにしておこう。