計画外のアップグレード停止ワークフロー
計画外のアップグレード停止は、ロールバックと追加のメンテナンス作業を必要とするため、お客様にとって大きな支障をきたします。計画外の停止はインシデントとして扱うべきです。以下のプロセスは、インシデント解決プロセスのさまざまな段階と、対応するチームおよびDRI(Directly Responsible Individuals)が取るべき手順を概説しています。
高レベルのワークフロー:
- 計画外のアップグレード停止を検出する: 計画外のアップグレード停止のインスタンスを特定します。
- アップグレードバグを解決する: 修正をバックポートするか、新しい停止を含むようアップグレードパスを更新します。
- 計画外のアップグレード停止の根本原因分析を実施する: 停止が発生した理由を理解し、将来のインシデントを防止します。
計画外のアップグレード停止とは?
計画外のアップグレード停止は、アップグレードパスにおいてこのアップグレード停止の必要性を伝えられなかった場合に発生します。詳細については、計画外のアップグレード停止とは何かをお読みください。
計画外のアップグレード停止の最も一般的な原因は、データベースマイグレーションのエラーです。例えば、16.[012] でのマイグレーションエラー。必須停止のその他の一般的な原因は、必須停止の回避ドキュメントに記載されています。
計画外のアップグレードの深刻度
お客様への影響による計画外のアップグレード停止の深刻度:
- 新しいアップグレード停止の導入が必要なアップグレードエラー - 修正/バックポートできない -
~"severity::1"に~"unplanned-upgrade-stop"ラベルを付与 - 新しい必須停止の導入につながらないアップグレードエラー - 修正/バックポートが可能 -
~"severity::1" - 新しい必須停止の導入につながらず、お客様への影響が最小限のアップグレードエラー -
~"severity::2"/~"severity::3"/~"severity::4"- 例: issue#448948 お客様がバックアップ/リストアを使用して GitLab インスタンスを移行した際にアップグレードエラーが発生したケース
計画外のアップグレード停止の検出
(DRI: サポートチーム、またはイシューを検出したチーム/個人)
- エラーに対する バグテンプレート を使用して Issue を作成します(お客様によってまだ作成されていない場合)
- 簡単な概要・お客様への影響・検出内容を含む計画外のアップグレード停止 RCA Issue を作成してください
- RCA Issue をバグを所有するエンジニアリングチームの PM または EM に割り当ててください
- #f_gitlab_upgrades Slack チャンネルに投稿してください
計画外のアップグレード停止の解決
(DRI: バグを所有するチームのエンジニアリングマネージャー(EM)によって識別される)
- EM は深刻度をレビューし、バグ解決の DRI を特定します。
- DRI はできるだけ早くバグの解決に取り組みます。最優先事項は修正方法を見つけることです。
- DRI は該当する場合、お客様のブロックを解除するための回避策をバグに更新します。
- DRI は修正をバックポートできるかどうかを確認します。バックポートが不可能な場合は、Distribution チームと協力してアップグレードパスを更新し、即時解決のために計画外の停止を遡及的に追加します。
- EM は計画外のアップグレード停止 RCA を実施するための DRI を特定します。
- RCA DRI は根本原因分析を実施し、是正措置を提起します。
- RCA DRI はテストカバレッジ分析について Test Platform と協力し、是正措置を提起します。
- EM は RCA の深刻度に対する GitLab の Priority ラベル ガイドラインに従って是正措置に優先順位を付けます。
メトリクス
根本原因分析の Issue は、計画外のアップグレード停止に関するメトリクスを収集し、
バグの深刻度と影響に対する可視性をもたらすのに役立ちます。アップグレードに関するすべての RCA の一覧は
~RCA と ~upgrades ラベルが付いた GitLab プロジェクトの Issue で確認できます。
