質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

技術選定

技術選定に関する質問を投稿する際にご使用ください。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

意見交換

5回答

333閲覧

ステージング環境と開発環境を切り分ける理由について

Flutter_kun

総合スコア28

UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

技術選定

技術選定に関する質問を投稿する際にご使用ください。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

1クリップ

投稿2025/04/13 11:58

テーマ、知りたいこと

初歩的な質問で申し訳ありません。現在特に必要性も理解せず漠然とステージング環境を作っています。

本番環境と開発環境を切り分ける理由はわかります。
ステージング環境と開発環境を分ける理由はありますでしょうか。。

最新のデータを本番環境から開発環境にコピーして来れば開発環境内に擬似的にステージング環境が作れるかと思います。もし不具合があればロールバックする形にすればステージング環境をわざわざ作らなくてもよいのではないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答5

#1

TakaiY

総合スコア14238

投稿2025/04/13 12:46

「開発環境」と「ステージング環境」の違いは何ですか? 所属しているプロジェクトで分ける必要のないような運用をしているのであれば、分ける必要は無いのでしょう。

自分の知っている環境では、「開発環境」では、現行バージョンの動作確認とか、将来リリースされる機能の実装のテストなどが行なわれているので、商用環境とは異なることが多いので、ステージングの環境とは別のことが多いですね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

mingos

総合スコア4248

投稿2025/04/13 13:01

編集2025/04/13 13:02

開発環境は個人個人のローカルな環境。
開発者のPCですね。それぞれのタスクごとにブランチを切ってデータベースの内容にも差異がある可能性があります。
ステージング環境は、公開前のテスト環境で開発者以外もアクセスするような環境。
最終的な試験の環境でもあります。
また開発者以外もアクセス出来る環境でありこちらは安定して稼働しておく必要があります。
本番環境は文字通りなので説明不要かと思います。

ステージング環境が必要かどうかは組織によって異なると思います。
私の場合は、ステージング環境は開発者以外にも企画の方などが動作確認で使う場所のため、安定して稼働する必要があるし、新機能のレビューや差し戻しの最終的な場所です。
ステージング環境はIPアドレスなどでアクセス制限はしているもののクラウド上にあります。
本番環境からデータを持ってくるなどはできませんし、個人情報保護の観点からも本番からデータをそのまま持って来る事はしません。
もし本番環境からデータをコピーするのであれば関係者全員に周知・同意してもらう必要がありますし、ユーザーの個人情報をマスクするかダミーに置き換える必要があります。
本番環境とは異なるデータになっており、それは関係者のために保全する必要があります。

  • 開発者以外もアクセスする(ブラウザとかモバイルアプリを通じて)
  • データはステージング環境固有になっている。本番環境から戻せばいいという話ではない

という感じです。

あなたの環境が開発環境と本番環境しかなくても本当に問題がないのだとすれば、ステージング環境は不要というのも一理あります。
ステージング環境がなくて困る人がいないかどうか次第ではないでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

otn

総合スコア86255

投稿2025/04/14 14:59

テストは目的(何を確認するテストなのか?)があってすることで、その目的に適した環境を用意します。

プログラムを作ってなんとなく動いた感があればリリースしちゃうような緩いシステムなら、個人単位の開発環境からいきなり本番環境にリリースなのですかね。OSやミドルソフトのセキュリティーパッチなどのアップデートもいきなり本番環境適用とか。そういう場合は開発環境だけで良いでしょう。

①プログラムの機能単位でのテスト
②複数の機能の集まったサブシステム単位でのテスト
③システム全体(そのOS内のアプリケーション全体)でのテスト
④外部接続先も含めたテスト(外部接続先の組織もそういうためのテスト環境を持っているはず)
⑤性能テスト・ラッシュテスト
⑥障害系などシステム運用も含めたテスト
⑦OSやミドルソフトのアップデートがアプリケーションに影響してないかのテスト
⑧OSやミドルソフトのアップデートが運用系など他のミドルソフト、外部接続先に影響してないかのテスト
とか、色々考えると、どのテストをどの環境でやるかの整理が付けば、あとは必要な環境を作るだけ。

質問者さんのいう「開発環境」とはどんな環境のことなのか?

上記の各種テストを全部ちゃんとやるとすると、
・開発環境(個人PCの中)
・テスト環境(本番と同一バージョン・同一設定のOS・ミドルソフト)
・ステージング環境(本番と同一バージョン・同一設定のOS・ミドルソフト、アプリケーションと直接関係しないソフト構成まで全部同じ。ハードウェア(or仮想マシン)の仕様も出来るだけ同じ)
の最低3つはいる気がします。「こういうテストはしないままでリリースする」と決めれば減らせるでしょうけど。
あるいは、個人PCで性能テストは出来ませんが、ステージング環境で開発・単体テストをすることは不可能では無いと思うので、全部のテストする場合でも一つの環境でというのも可能かと思います。弊害多数な気がしますが。

最新のデータを本番環境から開発環境にコピーして来れば開発環境内に擬似的にステージング環境が作れるかと思います。

業務データの中味のことですか?それはステージング環境かどうかとは何の関係もありません。ステージング環境でのテストでも本番データを使わないのが普通です(周知の情報や、あえてマスクしないと決定したものは別として)。ステージング環境がそのまま次期本番環境になるというリリース形式の場合は最終段階で本番データを全部移すのでしょうが、それは「ステージング環境でのテストで使う」ではなくて「本番切り替え準備」ですね。

※ 念のためですが、「本番と同じ」は、アプリケーションプログラムのみのリリースであれば、今の本番環境と同じということですが、同時にOSやミドルソフトのアップデート・設定変更・追加があるがある場合は、「リリース後の本番環境」のことです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

tt-tt

総合スコア128

投稿2025/04/15 06:31

開発環境をローカル以外で作りたい理由にもよると思います!
自分の前職は、並行して機能開発を行い、PdMやお客さんに確認をいれる必要があり、上書きを防ぐために開発環境がありました(複数)
サーバーレスだったのでできますが、サーバー立ててるとコスト高くて無理だよな〜とは感じています。
いまなら、機能のあるなしをフラグ管理とかにして、工夫するかなと思います。
なるべく、コストを考えると技術的に対策できるなら、無駄に環境を立てないほうが良いかなとは今のところ考えています。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

otn

総合スコア86255

投稿2025/04/15 12:14

なるほど。
私の挙げたテスト観点は、考えてみると、オンプレもしくはIaaS想定ですね。
サーバーレスだとかなり要らないはず。完全サーバーレスのみの業務システムは周りに無かったので、どこまで要らないのかよくわかりませんが。「SaaS+カスタマイズ」のテストはまた違う観点か。

いずれにせよ1行目に書いた、

テストは目的(何を確認するテストなのか?)があってすることで、その目的に適した環境を用意します。

なので、対象システムのテストの目的を列挙すれば良いかと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問