レアケースなので記録。
条件
・定時後リリース
・コンポーネント数100以上
・プロファイルも一緒にリリース
事前準備
・同じ環境を触ってる担当者にどんな項目を作ったか、影響は無いか確認する
・お客様にリリース時間を連携する
・お客様にリリース予定のデータ(CSVファイル等)があれば確認してもらう
・開発環境にてテストクラスをすべて走らせておく
・本番環境の対応一覧、本番環境への変更セット一覧を作成する
変更セット作成
・コンポーネントの権限周りを確認する
→コンポーネントが多数の場合、プロファイルも一緒にリリースすることも考える
・既存レコードに影響がないか確認する
→トリガ系が多い
・デグレを確認する
→本番環境と開発環境のコードをWinMergeなどで確認する
・変更セットを作成する
→リリース日より前に作成しておく
テスト環境リリース
・本番環境へのリリースの前にSandboxを作成して、テストリリースする
→アップロードしてみないとテストクラスが通るかわからない
・テストクラスの調整やリリース前に本番環境での対応内容などメモしておく
→開発環境では不要になった入力規則だったが、本番環境で存在していたため、エラーになったりした
本番環境リリース前準備(1時間くらい)
・関係者各所にこれからリリースすることを伝える
・バックアップ用のSandboxを作成しておく(1カ月~半年など期間を決めておく)
・バックアップを取得する
→VSCODEでApexやVFを一括取得、スクショ、メタデータ等活用
→このタイミングじゃなくてもいいかもしれない。お客様からの修正依頼を期間決めれば、もう少し前の段階で対応可能
・本番環境の事前準備を対応する
→入力規則を止めたり等
本番環境リリース(1時間くらい)
・開発環境から本番環境へ変更セットをリリースする
・テストクラスなどでエラーが発生した場合、修正する
→この場合、アップロードした変更セットを再度アップロードするのではなく、コピーする
→エラーが発生しなければ30分くらいで終わる
本番環境の対応(1時間くらい)
・変更セットでのリリースがややこしいものを手動対応
→アクセス権エラーが出たレポートなど
・レコード新規作成・更新対応
→お客様に確認してもらったデータをデータローダ、インポートウィザードなどで作成する
→当リリースに影響があるレコードも対応する
→上記で対応したCSVファイルやsuccess、errorデータは後々確認することがあるので取っておく
できる限りの本番テスト(1時間くらい)
・プロファイルの権限周りを確認する
→項目レベルセキュリティ
→Apex
→Visualforce ページ
→カスタム設定
→タブ
→レコードタイプ
→ページレイアウトの割り当て
→オブジェクト権限
・代理ログインなどでレコードや項目が見えるかどうか確認する
本番リリース完了
・お客様が確認できるようなコンポーネントがあれば一覧にする
→レポートなど
・関係者各所にリリースが終わったことを伝える
リリース後対応
・不要になったコンポーネントの削除日をスケジュールする
→残せるものは残して、大丈夫そうなら削除する
・資料を更新する
悪かったところ
・営業中にリリースするとお客様に支障が出るので定時後にリリースしたが、頭がうまく回らなかった
→遅番にする、リリース前にちょっと寝るなどして体力を温存しておく
・本番環境へリリースしたらテストクラスでエラーが発生した
→テストクラスをチェック後に緊急で対応したものが影響していたので、リリース前に再度
・当初3時間くらいでリリース時間を見積もっていたが、4時間30分ほどかかってしまった
→次回に大型リリースがあった場合、当投稿を見直す
・バックアップ用のSandboxを作成しておく
→txtでバックアップとっても復元まで時間がかかるため、Sandboxに余裕があるのであれば活用する。
良かったところ
・事前に作成した本番環境の対応一覧、本番環境への変更セット一覧が役に立った
→人間は忘れる生き物なので、メモ大事。当日は作成した資料を元に対応する
・テスト環境へリリースしたことで当日の不安を軽減できた
→コンポーネントが多ければ多いほどエラーが出た時の影響が大きい
・このようにメモしておくことによって未来の自分が助かる
→ありがとう