届けて守る / 第9章 本番へ昇格する

ページ 1 / 6

第9章Git・GitHub

約5分で読む

本番へ昇格する

「本番に出してよいですか」と聞かれたら、何を確認すればよいのでしょうか

公開する内容と検証結果を、同じ候補について確認しましょう。

  1. 01状況

    公開してよい?

    公開する範囲を確認

    本番公開の確認が来ました。何が変わる版か、まず教えてください。

  2. 02条件

    この候補を試した

    変更と検証結果を照合

    変更一覧とstgでの確認結果を見ました。候補の番号も同じです。

  3. 03評価

    公開の条件がそろった

    業務に使えるか評価

    依頼した操作も、普段の業務も試せました。この候補なら公開できます。

  4. 04判断

    この候補を公開して

    対象を指定して承認

    この候補を本番へ公開してください。成功後は、本番の画面でも確かめます。

この章の合言葉

試した版を指定して、本番公開を承認する

候補は公開する版を特定する番号です。確認した候補を作り直さず、本番へ反映します。

読みはじめる

/git release の段取り

本番(prod)は、利用者が実際に使う環境です。公開前に「今回含める変更」「検証環境(stg)で試した結果」「公開する候補の番号」を担当者と確認します。たとえば「申込期限の変更を含む候補○○を本番へ公開してください」と、対象を指定して承認します。同じ候補を承認済みなら取り直しは不要ですが、対象が変われば改めて確認します。

各ステップをクリックすると、その内容の説明がここに表示されます。

この図をテキストで読む

ステップ図「/git release の実行手順」。6ステップ。 【手順】(順番に) 1. 候補を固定(stg-r<run>a<attempt>) 2. 現在の本番を確認(GitHub Deployments の記録) 3. 公開差分を提示(現在の本番 → 候補) 4. ユーザーの明示承認(prodへの昇格確認) 5. 昇格を起動して追跡(今回の実行を追って確認) 6. タグとノートを発行(CIが本番実体を記録) 補足: 前進の確認から明示承認、CIによるタグ発行まで順番に進みます。 【流れ】 - 承認フロー: 候補を固定 → 現在の本番を確認 → 公開差分を提示 → ユーザーの明示承認 → 昇格を起動して追跡 → タグとノートを発行

本番への昇格には人の承認が必要で、差分を確かめて対象を承認することで安全に進めます。

作り直さず、そのまま昇格する

サーバーで動かすアプリ一式を、配備用の荷物(コンテナイメージ)にまとめます。5slabでは stg で試した荷物を作り直さず、そのまま本番へ使います。候補には、コードの版を識別するSHAと、荷物の内容を識別するdigestが記録されます。担当者は両方を照合し、確認したものと違う荷物が公開されるのを防ぎます。

承認する人が長い識別番号を暗記する必要はありません。変更一覧と検証結果が同じ候補のものかを確かめます。通常の公開は、今の本番から前へ進む版だけが対象です。古い版へ戻すときは、下のロールバック手順を使います。処理の失敗や結果不明のときは、再実行の前に担当者が状況を調べます。

候補の記録と、現在の稼働を照合する

候補の記録がない版は本番へ進めません。公開後は今回の配備記録と実際に動く版の一致を確認します。releaseタグは成功した公開の記録ですが、タグだけでは、その後の失敗や途中までの反映は分かりません。

戻すときは、別の入口

本番を過去の版へ戻す操作がロールバックです。担当者は /git rollback で戻す候補を指定します。依頼者は、戻す理由と、戻すことで使えなくなる機能や変更を確認して承認します。通常の公開とは別の手順で、対象を取り違えないようにします。

戻すのはアプリの版です。保存した業務データや、データベースの構造が自動で元に戻るわけではありません。担当者が古いアプリでも現在のデータを扱えるか確認し、対応できない場合は復旧方法を決めてから進めます。巻き戻し後も、新しい配備記録とreleaseタグを残します。

各セルをクリックすると、その意味や詳しい説明がここに表示されます。

この図をテキストで読む

比較表「通常の昇格とロールバックの比較」。2列 × 5行。 【列】 1. 通常の昇格(前進のみ) 2. ロールバック(過去の版へ切り戻し) 【比較】(観点ごとに) ■ 対象 - 通常の昇格: 現在の本番から進む候補 / 前進のみ - ロールバック: 過去のSHA / 検証済みの旧版 ■ 確認するもの - 通常の昇格: 未リリース差分の内容 / コミット一覧と変更量 - ロールバック: 失う変更の一覧と理由 / 切り戻し影響の把握 ■ 起動の入力 - 通常の昇格: 公開する候補・承認 / 本番指定と確認 - ロールバック: 候補・戻す理由・承認 / 名指しと理由が必須 ■ タグ - 通常の昇格: 新規作成 / 今回の公開を記録 - ロールバック: 新規作成 / 今回の公開を記録 ■ 戻るもの - 通常の昇格: 該当なし(前進だけ) / 巻き戻さない - ロールバック: コードだけ(DBは戻らない) / スキーマは前進のみ 【観点】 - ロールバックの注意点: ロールバック

通常の昇格とロールバックでは入力も確認手順も厳密に分離されています。

リリースノートと稼働の記録

公開が成功すると、自動処理がGitHub Releaseに変更の一覧を残します。この5Sラボのサイトの「リリースノート」ページでも公開内容と稼働の記録を確認できます。担当者から成功の報告を受けたら、本番のURLで依頼した操作を試しましょう。開始の通知や、過去に付いたタグだけで完了と判断しません。

押さえておきたい用語

昇格
検証環境で確認したアプリを作り直さず、本番へ反映すること。
確認済み候補
配備と自動検査の成功を記録した版。人による業務確認は別に行い、その候補を承認する。
SHA
コードの版を識別する値。どの変更を含む版かを確かめるために使う。
digest
配備するアプリ一式の内容から計算した識別値。同じものを配備したか照合するために使う。
releaseタグ
成功した本番反映の版に付ける印。現在の状態は配備記録や稼働する版とも照合する。
ロールバック
本番のアプリを過去の版へ戻すこと。業務データやデータベースの構造は自動で戻らない。
ページ 1 / 6