ステージング環境とUAT環境の違いは何ですか?


9

ソリューションの開発中は、少なくとも3つの異なる環境が必要です。

  • 開発:プログラマはいつでも自由に変更を加えて変更をプッシュし、コードをすばやくテストして他の変更と統合することができます。何も壊す恐れはありません。これはTESTデータベースとサービスに接続されています。
  • UAT:ハードウェアに関する本番環境の「できるだけ良い」コピーが含まれている必要があるため、開発者は敬意を持って扱う必要があります。ただし、この環境は本番データの編集可能なコピーでUATデータベースに接続されている点が異なります。 Q&Aチームとユーザーの両方が、本番環境への変更を検証するために使用します
  • 生産:本当の取引。

私はに見てきたソフトウェア工学にこの質問、およびServerFaultの上でこの質問、および彼らがステージング環境の意味は何に異なるように見えます。また、主題に関するウィキペディアのページには、次のように述べられています。

ステージング環境の主な用途は、本番環境に適用する前に、すべてのインストール/構成/移行スクリプトと手順をテストすることです。これにより、本番環境へのすべてのメジャーアップグレードとマイナーアップグレードが、エラーなしで、最小限の時間で確実に完了します。

私にとって、ステージングは​​UATと同じです。UATでは、現実の世界に移行する前に、アプリケーションと展開の手順をテストする必要があります。そのため、本番環境にプッシュするのと同じ方法でUATに変更を加えてパッケージをプッシュします。完全に自動化され、本番環境で必要なすべてのセレモニーが行われます。

とはいえ、UAT環境とステージング環境の適切な違いは何ですか?

-

編集:明確にするために、私はインターネットアプリケーションでもイントラネットウェブサイトでも、Webアプリケーションの観点から考えています。「フォーム」アプリやモバイルアプリはありません。


4
もっと多くの人に意見を求めてもらいたいが、これは主に意見に基づいているようだ。現在の環境では、ステージングとUATは異なります。UATはライブのパブリック環境であり、本番環境のデプロイメントと同期していますが、ユーザーがソフトウェアを操作できるようにデータロードが異なります。これをユーザー向けのサンドボックス環境と呼びます。ステージングは​​、運用とUATで実行する前に、展開とインフラストラクチャの変更をテストするためのプライベートな場所です。UATの可用性と使用に関して顧客には義務がありますが、ステージングではありません。他の会社は異なる可能性があります。
Thomas Owens

@ThomasOwens要点は次のとおりです。両方の環境は異なり、一部の人にとっては1つのことであるように見え、他の人にとっては他のことを意味します。Server Faultに関する質問では、ステージングを使用してオンラインの本番データを指し、「スイッチを切り替える」だけであると述べました。これは興味深いアプローチだと思いますが、それはあなたが言っているものとは異なる見方です。
マチャド2017

2
これが一部の人にとっては別のことであり、他の人にとっては別のことであるという事実は、これを主に意見に基づいたものにします-答えはありません。間違った場合に備えて、まだトリガーを閉じていません。それはよく書かれた質問であり、そこに標準的な定義があるかもしれません。さて、人々がその標準的な定義を無視して独自のものを使用することを選択した場合は、別の話です。
Thomas Owens

@ThomasOwens、公正な声明。よろしければ、数日間オープンにしておきましょう。意見に基づく回答だけが表示される場合は、喜んで投票して閉じます。:)
マチャド2017

@ThomasOwensは、人々がステージングと呼んでいるものについて、この質問もいくぶん主観的であると思うことに同意しました。私たちのUATとステージング環境は「同じもの」ですが、これは多くのリリースがあるためです。リリースの準備ができたら、ステージング環境を引き継ぎ、UATがリリースできるように準備します。自分たちで作業している開発者は、ステージ環境で機能ブランチを使用する方法をまだ持っているため、機能ブランチをブロックしません。
2017

回答:


9

違いはデータです。

UAT環境は、新しい機能の「ユーザー承認」のためにセットアップされます。その機能をテストするために、QAまたは利害関係者は、特定の機能を実行するために特定の方法でユーザープロファイルを設定するか、すべての製品を確認するために模擬製品または構成を設定します。

多くの場合、ステージング環境は、匿名化された運用データのコピーでセットアップされます。一部の企業では、運用スナップショットからステージングデータベースを定期的に「更新」しています。主な焦点は、アプリケーションがUATで機能したのと同じ方法で本番環境で機能することを確認することです。テスターは、データを新たに設定する代わりに、データベースを検索して、重要な一連のテストケースに一致するプロファイルと製品を探します。多くの場合、「実際の」データには、UAT中に見落とされた予期しないエッジケースを引き起こす癖があります。また、データ移行テストはすべてステージング環境で行う必要があります。


1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

ここでの使用法の定義は非常に広範であり、エンドユーザーによる構成の変更からUAT環境では利用できないコストのかかるインフラストラクチャ機能まで、あらゆる種類のものが含まれる場合があります。重要なのは、ステージングのソフトウェア製品のバージョンは、新しいバージョンまたは現在のバージョンのいずれかですが、常に承認に合格したものです。

言い換えると:

  • UAT、ソフトウェア製品の新しいバージョンが、現在のバージョンと同じように使用された場合に機能することを証明するために存在します。
  • ステージング、ソフトウェア製品の一部の承認されたバージョンでのソフトウェア製品の新しい使用方法が、現在のバージョンのソフトウェア製品の使用方法と同じように機能することを証明するために存在します。

注:質問自体に描かれているように、「ステージング環境」についての理解はさまざまであり、会社/環境で使用されるものは異なる場合があります。


0

これらのさまざまな環境の使用は、実際にはニーズによって異なります。「ステージング== UAT」というコメントから、QAチームがなく、開発者が数人しかいない非常に小さなアプリケーションがあるかのように聞こえます。

大規模なアプリケーション環境には、統合テスト環境とQA環境があり、前者は開発者が統合テストを実行し、後者はQAチームがテストを実行します。各トレーニングセッションの前に復元されるストックデータがあるトレーニング環境がある場合があります。ステージング環境は運用チームの管理下にあり、展開が適切に行われるようにします。ユーザー受け入れテスト(UAT)環境は、顧客チームによって使用されます。また、顧客の問題を再現するための本番環境のスナップショット環境がある場合もあります。

私のポイントは、必要な環境を決定するときに単一の視点に注意することです。


目的は異なりますが、テスト環境は3つあります。1つはQ&Aに重点を置き、1つは開発者に重点を置き、もう1つは運用チームに重点を置いています。しかし、それらはすべてまだテスト環境であり、たとえばテストデータベースに関連付けられています。これは正しいですか、それとも何か不足していますか?
マチャド2017

それらはそれぞれ、独自のデータベースに関連付けられます。
BobDalgleish 2017

-1

UATは「ユーザー受け入れテスト」の略で、ユーザー受け入れテストが実行される環境です。ユーザーに重点を置いていることに注意してください。QAテストは異なります。UATは、実際のユーザー(または少なくともトレーニングチーム、セールス、サポートスタッフなど)が新機能を試して、展開前にソフトウェアを評価するチャンスです。彼らの生産システム。

これが正確に何を意味するかは、プロセスによって異なります。

  • UAT(環境)は本番環境では「レベル」である可能性があり、基本的にユーザーが新機能を試すためのサンドボックスです。
  • UAT(環境)は本番環境よりも「先行」している場合があるため、新機能は評価されるまで本番環境にデプロイされません。(私はこのアプローチには熱心ではありません。リードタイムが長いことを意味するからです)。
  • UAT環境を必要としないマルチテナントシステムがある場合、代わりに、機能フラグを使用して、ユーザーに運用システムの新しい機能を評価させることができます。

継続的デプロイメント/継続的デリバリーの観点から、開発者は本番環境と大きく異なる環境で作業する可能性が高いため、ステージング環境は「本番環境に似た」環境でソフトウェアをテストするために使用されます(たとえば、負荷分散なし、データセットなど...)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.