ステージング環境
本番の環境とほぼ同じ構成で用意し、システムをリリースする前の最終確認を行うための環境。
イマシルちゃんの解説
劇の本番の前には、本番と同じ舞台・衣装・照明で通し稽古(リハーサル)をするよね。
本番で初めて「あ、この照明だと顔が見えない!」なんて気づいたら大変だもの。
ステージング環境は、システムのリハーサル会場なんだ。
本番そっくりの環境で最後のチェックをしてから、本番に出すんだよ!
より深い解説
定義
ステージング環境は、本番環境(実際に利用者が使う環境)とほぼ同じ構成のシステムを用意し、リリース前の最終テストを行う環境である。サーバの構成、OSやミドルウェアのバージョン、設定、ネットワークの構成などを、本番と同じにそろえる。
環境の種類と役割
| 環境 | 主な用途 | 本番との近さ |
|---|---|---|
| 開発環境 | 開発者がプログラムを作り、変更のたびに動かして確かめ、デバッグする | 遠い |
| テスト環境(検証環境) | 機能ごとのテストや結合テストを行う | 中くらい |
| ステージング環境 | 本番と同じ構成で、リリース直前の最終確認を行う | 本番とほぼ同じ |
| 本番環境 | 実際の利用者にサービスを提供する | 本番そのもの |
ステージング環境で確かめること
- 本番と同じ手順でのデプロイ(リリース作業)がうまくいくか
- 本番と同じ設定、同じ規模のデータで正しく動くか
- 外部のシステムとの接続、性能、負荷に問題がないか
- 問題が起きたときに元に戻す手順(切り戻し)が機能するか
開発環境やテスト環境では、構成やデータが本番と異なるため、本番で初めて発覚する問題が残りやすい。ステージング環境は、その差を埋める最後の確認の場になる。
注意点
| 注意点 | 内容 |
|---|---|
| 本番との差を作らない | 設定やバージョンが本番とずれると、確認の意味が薄れる。構成を自動で作る(Infrastructure as Code)などで差を防ぐ |
| 本番のデータの扱い | 本番に近いデータで試したいが、個人情報などはそのまま使わず、マスキング(匿名化)などを行う |
| 外部への影響 | 本番の外部サービスに誤って接続したり、利用者にメールを送ったりしないようにする |
ほかの言葉との違い
| 言葉 | 意味 |
|---|---|
| ベータテスト | 正式公開の前に、一般の利用者に試用してもらい、問題を報告してもらう |
| ブルーグリーンデプロイメント | 本番と同じ環境を2つ用意し、新しいほうへ切り替えてリリースする方法 |
| DMZ | 外部のネットワークと内部のネットワークの間に置く、公開サーバ用のネットワーク(環境の種類ではない) |