目次
ステージング環境とは?
ステージング環境とは、システム開発において最終テストをおこなう環境です。本番環境と同じように進められるのが特徴です。ステージング環境について、開発環境やテスト環境、本番環境との違いを説明していきます。
開発環境との違い
開発環境とは、開発した機能を共有したり、コードを統合したりすることによって動作確認をおこなうための環境です。様々な場所で開発をしている場合はリモートで進めることもあります。
テスト環境(検証環境)との違い
開発環境で動くようになったシステムには、バグが含まれている可能性が非常に高いため、テスト環境でさまざまなテストを行います。テスト環境は、単体テストや結合テストをおこなうのが一般的であり、プログラムを1つずつチェックしていくための環境です。
対して、ステージング環境はプログラム全体の動作を確認するのが目的です。このため、テスト環境では動いていたものでも、ステージング環境では動かなくなることが少なくありません。
本番環境との違い
本番環境とは、エンドユーザーが使い始める環境となり、最後のゴールとなります。
システム開発におけるリリースまでの4つのプロセス
システム開発におけるリリースまでの流れとして、次の4つのプロセスが挙げられます。
- 開発環境でコードを記述する
- 検証環境で機能テストを実施する
- ステージング環境で本番動作を確認する
- 本番環境でサービスを公開する
1.開発環境でコードを記述する
まず、開発環境においてコードを記述していきます。開発環境とはソフト開発においてはコーティングをするための環境のことです。一般的にはエンジニアそれぞれのローカル環境を利用しており、エンジニアが複数いる場合は後からコードを結合する必要があります。
2.検証環境で機能テストを実施する
次に、検証環境において機能テストを実施します。検証環境とはテスト環境と呼ばれるものであり、エンジニアが開発した機能が通常通りに動作するかどうかを確認する環境です。
一般的に検証環境と開発環境は分離されており、それぞれ分けてテストをおこないます。小規模の環境であったりアジャイル開発であれば検証環境とテスト環境は同時に進めることが一般的です。
3.ステージング環境で本番動作を確認する
テスト環境での確認が終わったら、ステージング環境で本番動作を確認します。ステージング環境が本番に近い環境でテストを行うためこれまでなかったような不具合が見つかる可能性があります。
もしステージング環境で不具合が見つかった場合は、開発環境や検証環境に戻って修正することが必要です。従来はステージング環境を準備するのが容易ではなかったのですが、近年ではクラウド技術が向上したことにより本番と同一の環境を構築できるようになりました。
4.本番環境でサービスを公開する
動作確認が終わったら、本番環境においてサービスを公開していきます。本番環境とはエンドユーザーが使える環境のことであり、例えばWebサービスであれば実際にユーザーが使えるような状況の状態のことです。すべてのテストのプロセスが終了した状態において移行する環境であり動作は問題なくできなければいけません。
テスト自体はここで終了ですが、サイト運営を始めてからも、バックアップなどの運用体制を準備する必要があることが一般的です。
ステージング環境の役割
ステージング環境には次の3種類の役割があります。
- 本番環境を想定したシュミレーション
- 使用感の確認
- 検証漏れの確認
1.本番環境を想定したシュミレーション
ステージング環境を設けることで、本番環境を想定したシュミレーションができます。テスト環境は本番環境と大幅に条件が異なる可能性があるため、本番になってから不具合が見つかる可能性があります。
そこで本番環境にできるだけ近い環境を準備することによって、本番環境においての不具合の想定ができるようになります。ステージ環境で不具合が見つかった場合は、それ以前のテストにおけるプロセスに戻り修正をする必要があります。
2.使用感の確認
ステージング環境にすることで、使用感の確認をすることができます。
ステージング環境が本番と同じような環境であることから本番においてのユーザーの使用感の確認をすることができます。つまり開発者とユーザーが同じ視点で使用感を確認することができるため、スムーズな開発をできる場合があります。
3.検証漏れの確認
ステージング環境にすることで、検証漏れの確認をすることができます。開発環境やテスト環境では本番環境と条件が違うことから不具合が見つからない可能性があります。
しかし本番と同じ条件であるステージ環境を用意することによって環境設定の違いによる検証漏れを防ぐことが可能です。
ステージング環境を構築する際に注意すべき4つのこと
ステージング環境を構築する場合次の4点に注意する必要があります。
- 本番環境に似た状況をつくる
- 本番環境にも流用できるディレクトリ構造にする
- 絶対パスと相対パスを区別する
- 検索エンジンへのインデックスを防ぐ
1.本番環境と似た状況をつくる
ステージング環境を構築する場合は、本番環境に限りなく近い状況をつくることが重要です。ステージング環境を本番環境にデプロイをした後に、想定通りの正常なシステム稼働を実現することが大きな目的です。
そのため、ステージング環境に本番環境との差があると意味がなくなってしまいます。本番環境とステージング環境の違いがあればあるほど不具合のリスクが高まると考えてください。
2.本番環境にも流用できるディレクトリ構造にする
ステージング環境を構築する場合は、本番環境にも流用できるディレクトリ構造にする必要があります。ディレクトリ構造とはファイル構造のことであり、どのファイルがどのフォルダに収納されているかを分かりやすくすることが目的です。
ステージング環境と本番環境においている構造がそれぞれ異なったものになると、本番環境に移行した時に想定していないような不具合が発生する可能性があります。
3.絶対パスと相対パスを区別する
ステージング環境を構築する場合は、HTMLを記述する場合に絶対パスと相対パスを区別することが重要です。絶対パスとはURLを使ったファイルの場所を指定する方法であり、相対パスはファイル同士の位置関係を指定します。
テストでは、URLを使う絶対パスではなく相対パスを使うようにしましょう。 また、本番環境へ移行するときに、相対パスから絶対パスへの切り替えを忘れないことも重要です。
4.検索エンジンへのインデックスを防ぐ
ステージング環境を構築する場合は、検索エンジンへのインデックスを防ぐことが重要です。ステージング環境の段階で検索エンジンにインデックスをされてしまうと、SEOの観点で評価が下がってしまう可能性があります。
GoogleはWeb上に同様のコンテンツがあると、重複コンテンツとみなします。つまりステージング環境のコンテンツと実際に運営したコンテンツが同じであれば、品質が低いと評価される可能性があるのです。
また SEO の面以外にもセキュリティ面でのリスクもあります。ステージング用のウェブサイトをユーザーが見てしまった場合メンテナンスにおいてリスクが生じる可能性があります。
これらの理由から、ステージング環境はインデックスされない設定にすることを忘れないようにしましょう。
まとめ
Webサイト構築においては、本番環境でのテスト前にステージング環境でのテストをすることが一般的です。ステージング環境は本番環境と同じ環境ですることから、テスト環境や開発環境では見つからないような不具合が見つかることがあります。
また、ユーザーと同じ視点で確認できることからユーザビリティの向上にもつながるメリットがあります。