質問: 現在、Webサイトに組み込んで利用するシステムを引き継ぎ、運用保守しています。 そのシステムを近々バージョンアップすることになったのですが、効率が良い方法が知りたいです。 今回、バグフィックスや新機能の追加を終えていよいよバージョンアップといったところですが、バージョンアップの度にバージョンの差分を抽出、適応していくという与えられたやり方の非効率さとリスクの多さに疑問を感じています。システム自体、中規模で適応部分から影響範囲を追っていくだけで気が遠くなりそうです。またそのシステムは、組み込まれているWebサイトごとにモジュールがカスタマイズされており、単にシステムをリプレースすれば動くだろうということはありません。 1つだけ適応ということならまだしも、そのシステムを導入している複数サイトにバージョンアップを適応する必要がありますので、今後その対象が増えていくことも考え、早いうちにバージョン管理と、バージョンアップ適応時のことも考えてシステムの設計もしくは管理の方法を見直す必要があると考えています。 システムのバージョンアップ時の効率の良い・リスクの少ない適応のやり方、もしくはバージョンアップ時に工数が減るようなシステムの設計・管理方法が知りたいです。モダンなシステムバージョンアップ方法はこんなんだよっていうご意見もありがたいです。 自分は、モジュールをWebサイトごとにカスタマイズしてしまっているという部分がネックだと感じているので、次回のバージョンアップまでにシステムのカスタマイズ部分とコア部分を分離するような設計の見直しを提案しようと思っています。 みなさまの知恵をお借りしたいです。
回答: 一番最初にしなければいけないのは、テスト戦略を練ることだと思います。 つまり、ここはバージョンアップのためには毎回確認しなければいけない箇所としなくて良い箇所を明確にすれば自ずと作業工数は減ります。 さらには、毎回確認しなければいけない箇所を減らすにはUnitテスト・E2Eテストを拡充していくのが王道のやり方ではないでしょうか。 銀の弾丸というのはなく普段からの設計・テストをしっかり行うのがよいと思います。 お金があればテスト会社に依頼...というやり方もあります。 > > バージョンアップ時に工数が減るようなシステムの設計・管理方法 > > > バージョンアップのための特別な設計方法を探すよりも、普段からキレイな設計(ドメイン駆動設計など)をここがけていればよいかと思います。