検証環境等への配備

この章は、検証環境などへ配備する場合だけ行います。ローカルでの確認だけを完了条件にする場合は対象外です。

配備の前に

  • 配備する WAR・EAR のファイル名・ハッシュ値・作成日時が、ローカルで確かめたものと同じである
  • 配備先のサーバーが、更新先が求める Java と仕様(javax / Jakarta EE)に対応している
  • 戻すための直前の成果物と手順がある
  • サーバーが共有ライブラリとして同じライブラリを持っていないかを、運用担当者と確かめる。サーバーのバージョンとアプリが同梱するバージョンのどちらが使われるか(クラスローダーの優先順位)を記録する。サーバーに組み込まれた JAR を自分の判断で消さない

配備のあとに

  • 起動ログに ClassNotFoundException・NoClassDefFoundError・NoSuchMethodError・LinkageError、名前空間の不一致、初期化の失敗が無い
  • 実際に読み込まれた JAR が、更新先のバージョンである(管理コンソール・クラスローダーのログで確かめる)
  • 代表的な業務の操作が成功する(認証・外部連携を通したもの)
  • 異常な入力が安全に拒否される

戻す

  1. 直前に正常に動いていた成果物を配備し直す
  2. サーバーを所定の手順で再起動する
  3. 起動ログと、実際に読み込まれた JAR を確かめる
  4. 代表的な操作で動作を確かめる
  5. データ・保存ファイルに不整合が無いか確かめる

戻すと古いバージョンの脆弱性がまた入ります。入力の制限・該当機能の停止などの代わりの対策を検討し、承認・影響の範囲・再更新の期限を記録してください。

記録

サーバー・配備日時・配備した成果物・共有ライブラリの確認結果・実際に読み込まれた JAR・起動ログ・業務の確認結果・問題・担当者と確認者と実施日を記録します。

共通手順書の章

  1. 作業の全体像
  2. 開発環境と前提
  3. 作業前の準備
  4. 更新前の記録
  5. 利用箇所の調べ方
  6. 依存定義の更新
  7. IDE への反映
  8. 解決されたバージョンの確認
  9. コンパイルエラーの切り分け
  10. import の一括置き換え(javax → jakarta)
  11. 非推奨の警告の扱い
  12. 概算工数の出し方
  13. リソースの解放と入力の安全性
  14. ビルド・テスト・WAR の確認
  15. 他の JAR に同梱された複製
  16. 再スキャン
  17. 変更差分の確認と完了条件
  18. ロールバックと作業記録
  19. 検証環境等への配備