私はエンタープライズアプリケーションを構築する会社で働いており、3つの環境を維持しています。開発(またはdev)、ステージング(またはstage)生産(またはprod)。
devの意味は直感的です。これは、アプリケーションの開発中に使用される環境です。
stagingとproduction環境の違いは何ですか?
中小企業(自社の規模は不明)の場合、3つの環境(開発、ステージ、本番)が一般的です。大企業では、開発とステージの間にQA環境があることがよくあります。
これらは通常、次のように分類されます。
dev:作業コードのコピー。開発者による変更はここにデプロイされるため、統合と機能をテストできます。この環境は急速に更新され、アプリケーションの最新バージョンが含まれています。
qa:(すべての会社がこれを持っているわけではありません)。品質保証のための環境;これにより、テスターがチェックを実行できるアプリケーションの変更頻度が低くなります。これにより、開発者はテスターが見つけた特定の問題が開発コードですでに修正されているかどうかを知ることができるように、共通のリビジョンに関するレポートを作成できます。
staging:これはリリース候補であり、通常、この環境は本番環境のミラーです。ステージング領域には、アプリケーションの「次の」バージョンが含まれており、稼働前の最終的なストレステストとクライアント/マネージャーの承認に使用されます。
production:これはアプリケーションの現在リリースされているバージョンであり、クライアント/エンドユーザーがアクセスできます。このバージョンは、予定されたリリース中を除いて、変更されないことが好ましい。
テスト環境がなく、ステージングに昇格する前にコードを配置する場所もないことに少し驚いています。
質問に答えるには:
ステージ環境は、実稼働環境をできる限り忠実に反映する必要があります。
これは、デプロイメント手順の検証に使用されます。コードが本番環境で準備できたときに、問題を引き起こすことなくデプロイできることを確認してください。
つまり、コードはステージングに行きます-これは包括的なテストとリグレッションにより、展開が計画どおりに進んだことを確認します(そうしなかった場合は問題を解決します)。
ステージ環境は、本番環境を反映したプリプロダクション環境です。多くの場合、実際のユーザーとQAテスターで構成されるテストグループが、通常はスクリプト化されたユースケースとリグレッションを介して、本番環境のような環境で適切にデプロイされ、機能することを確認できるように、本番データが含まれている場合があります。テスト。
@Odedによると、通常、QAテスターがコードのテストに使用するQA環境が一般的です。
米国政府/国防総省ITでの私の経験は次のとおりです。
Web開発者は、主に3つの環境を検討する必要があります実用的に:
Production:エンドユーザーを対象とする製品の最終リリースバージョンをホストするように構成された環境。セキュリティとパフォーマンスのために最適化されています。ライブサーバーでホストされています。これには、警告された緊急のサポートが必要です。データが重要です。したがって、そのデータは定期的にバックアップされます。また、リスク管理と災害復旧も含まれます。運用環境は、エンドユーザーにわかりやすいエラーを表示するように構成されています。
ステージング:コードのフリーズを宣言した後、アプリケーションのリリース候補をホストするように構成された環境。それは、リリース候補の範囲について合意するために、開発チームと一緒にプロジェクトマネージャー/所有者を対象としています。これには、品質保証と、開発チームが製品にリリースする前に最終修正と最終調整を行うことが含まれます。ベストプラクティスは、本番環境からコピーされたライブDBから入手可能な最新のデータを使用して本番環境を模倣することです。通常、ステージング環境には内部チームと関係者のみがアクセスできるため、すべての関係者がローカルネットワークにアクセスできる場合は、パブリックサーバーで保護されるか、イントラネット環境で公開されます。ステージング環境は、中程度または完全な技術エラーを表示するように構成されています。
開発:スクラム環境でのスプリントと通常呼ばれる、開発サイクル中に自分の作業をチェックするために自分のマシンの1人の開発者によって構成されたプライベート環境。開発環境は、完全な技術エラーを表示するように構成されています。