テーマ、知りたいこと
初歩的な質問で申し訳ありません。現在特に必要性も理解せず漠然とステージング環境を作っています。
本番環境と開発環境を切り分ける理由はわかります。
ステージング環境と開発環境を分ける理由はありますでしょうか。。
最新のデータを本番環境から開発環境にコピーして来れば開発環境内に擬似的にステージング環境が作れるかと思います。もし不具合があればロールバックする形にすればステージング環境をわざわざ作らなくてもよいのではないでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
#1
総合スコア14238
投稿2025/04/13 12:46
「開発環境」と「ステージング環境」の違いは何ですか? 所属しているプロジェクトで分ける必要のないような運用をしているのであれば、分ける必要は無いのでしょう。
自分の知っている環境では、「開発環境」では、現行バージョンの動作確認とか、将来リリースされる機能の実装のテストなどが行なわれているので、商用環境とは異なることが多いので、ステージングの環境とは別のことが多いですね。
#2
総合スコア4248
投稿2025/04/13 13:01
編集2025/04/13 13:02開発環境は個人個人のローカルな環境。
開発者のPCですね。それぞれのタスクごとにブランチを切ってデータベースの内容にも差異がある可能性があります。
ステージング環境は、公開前のテスト環境で開発者以外もアクセスするような環境。
最終的な試験の環境でもあります。
また開発者以外もアクセス出来る環境でありこちらは安定して稼働しておく必要があります。
本番環境は文字通りなので説明不要かと思います。
ステージング環境が必要かどうかは組織によって異なると思います。
私の場合は、ステージング環境は開発者以外にも企画の方などが動作確認で使う場所のため、安定して稼働する必要があるし、新機能のレビューや差し戻しの最終的な場所です。
ステージング環境はIPアドレスなどでアクセス制限はしているもののクラウド上にあります。
本番環境からデータを持ってくるなどはできませんし、個人情報保護の観点からも本番からデータをそのまま持って来る事はしません。
もし本番環境からデータをコピーするのであれば関係者全員に周知・同意してもらう必要がありますし、ユーザーの個人情報をマスクするかダミーに置き換える必要があります。
本番環境とは異なるデータになっており、それは関係者のために保全する必要があります。
- 開発者以外もアクセスする(ブラウザとかモバイルアプリを通じて)
- データはステージング環境固有になっている。本番環境から戻せばいいという話ではない
という感じです。
あなたの環境が開発環境と本番環境しかなくても本当に問題がないのだとすれば、ステージング環境は不要というのも一理あります。
ステージング環境がなくて困る人がいないかどうか次第ではないでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
総合スコア86255
投稿2025/04/14 14:59
テストは目的(何を確認するテストなのか?)があってすることで、その目的に適した環境を用意します。
プログラムを作ってなんとなく動いた感があればリリースしちゃうような緩いシステムなら、個人単位の開発環境からいきなり本番環境にリリースなのですかね。OSやミドルソフトのセキュリティーパッチなどのアップデートもいきなり本番環境適用とか。そういう場合は開発環境だけで良いでしょう。
①プログラムの機能単位でのテスト
②複数の機能の集まったサブシステム単位でのテスト
③システム全体(そのOS内のアプリケーション全体)でのテスト
④外部接続先も含めたテスト(外部接続先の組織もそういうためのテスト環境を持っているはず)
⑤性能テスト・ラッシュテスト
⑥障害系などシステム運用も含めたテスト
⑦OSやミドルソフトのアップデートがアプリケーションに影響してないかのテスト
⑧OSやミドルソフトのアップデートが運用系など他のミドルソフト、外部接続先に影響してないかのテスト
とか、色々考えると、どのテストをどの環境でやるかの整理が付けば、あとは必要な環境を作るだけ。
質問者さんのいう「開発環境」とはどんな環境のことなのか?
上記の各種テストを全部ちゃんとやるとすると、
・開発環境(個人PCの中)
・テスト環境(本番と同一バージョン・同一設定のOS・ミドルソフト)
・ステージング環境(本番と同一バージョン・同一設定のOS・ミドルソフト、アプリケーションと直接関係しないソフト構成まで全部同じ。ハードウェア(or仮想マシン)の仕様も出来るだけ同じ)
の最低3つはいる気がします。「こういうテストはしないままでリリースする」と決めれば減らせるでしょうけど。
あるいは、個人PCで性能テストは出来ませんが、ステージング環境で開発・単体テストをすることは不可能では無いと思うので、全部のテストする場合でも一つの環境でというのも可能かと思います。弊害多数な気がしますが。
最新のデータを本番環境から開発環境にコピーして来れば開発環境内に擬似的にステージング環境が作れるかと思います。
業務データの中味のことですか?それはステージング環境かどうかとは何の関係もありません。ステージング環境でのテストでも本番データを使わないのが普通です(周知の情報や、あえてマスクしないと決定したものは別として)。ステージング環境がそのまま次期本番環境になるというリリース形式の場合は最終段階で本番データを全部移すのでしょうが、それは「ステージング環境でのテストで使う」ではなくて「本番切り替え準備」ですね。
※ 念のためですが、「本番と同じ」は、アプリケーションプログラムのみのリリースであれば、今の本番環境と同じということですが、同時にOSやミドルソフトのアップデート・設定変更・追加があるがある場合は、「リリース後の本番環境」のことです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア128
投稿2025/04/15 06:31
開発環境をローカル以外で作りたい理由にもよると思います!
自分の前職は、並行して機能開発を行い、PdMやお客さんに確認をいれる必要があり、上書きを防ぐために開発環境がありました(複数)
サーバーレスだったのでできますが、サーバー立ててるとコスト高くて無理だよな〜とは感じています。
いまなら、機能のあるなしをフラグ管理とかにして、工夫するかなと思います。
なるべく、コストを考えると技術的に対策できるなら、無駄に環境を立てないほうが良いかなとは今のところ考えています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。