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

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

新規登録して質問してみよう
ただいま回答率
85.37%
ソフトウェアテスト

ソフトウェアテストは、プログラムを実行し、要求通りに正しく動作が行えているかどうか確認する作業です。プログラム中のバグをできる限り多く発見することを目標として行われます。

意見交換

クローズ

5回答

1005閲覧

開発システムのデプロイ環境について一般的な運用方法が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

ソフトウェアテスト

ソフトウェアテストは、プログラムを実行し、要求通りに正しく動作が行えているかどうか確認する作業です。プログラム中のバグをできる限り多く発見することを目標として行われます。

0グッド

1クリップ

投稿2023/03/25 07:25

0

1

概要

開発システムのデプロイ環境について一般的な運用方法が知りたいです。
2つ質問があります。

質問1

本番デプロイ後に本番環境ですべての機能のテストは通常行うものですか?
自身が勤めている会社ではステージングでフル機能のテストを行った後、本番環境にアップして本番環境でもフル機能のテストを行います。
ステージングと本番が全く同じであるとした場合、これは必要な作業なのでしょうか。

質問2

(質問1が必要である場合、)本番環境を「稼働用」「待機用」と2つ用意して待機用をステージングとして扱い、交互にアップと公開を切り替えて使用するような運用方法は存在しますか?
もしも存在するならば、どのような企業で使われているかなど、また存在しないならばどのようなデメリットがあって実現できないかを教えていただけないでしょうか。

 ※2.の上記の詳細として、「稼働用」環境はお客さんに公開している環境で、「待機用」環境はアップデートとテストを行います。
そして、本番反映日が来ると、お客さんがアクセスするURLは同じで、接続するルーティングだけをプログラム的にもう一方へ切り替えることを想定しています。
そして「稼働用」と「待機用」が切り替わります。
そうすれば、ステージングテスト後の本番環境でのテストは不要になると考えました。
現状、本番環境のフルテストを行っている間に、お客さんを待たせているためにそのように思っています。

前提

自身は中小規模のITベンチャーに勤めています。
テスト業務を担当していますが、エンジニアではありません。

よろしくお願いします。

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

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

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

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

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

回答5

#1

maisumakun

総合スコア145941

投稿2023/03/25 09:22

質問2

いわゆる「Blue-Green Deployment」が、「複数システムを並列稼働させて、接続先だけ切り替えることで、本番環境の切り替えを一瞬で片付ける」という手法です。

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

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

#2

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2023/03/25 09:29

  1. 「IT業界」と呼ばれる特殊な文化圏では普通らしい。他がどうだろうと業務なら従うしかない。(外の世界ではデプロイ前に自動テスト→テスト成功時のみデプロイ。テストをしっかり書くことが大事)

  2. 待機系を用意するのは普通。本番環境がトラブル時にすぐに切り替える用なのでステージングとは違う。本番環境と全く同じもの。

似たようなことをやってるように見えても実際には文化圏によってかなり違うので社内の方針が正しい。

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

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

#3

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2023/03/25 12:51

maisumakunさん

「Blue-Green Deployment」というのですね。
検索しても出てこなかったので、教えていただきありがとうございます。


kawaxさん

ありがとうございます。
もしかしたら自身が尋ねていないだけで、本番環境は会社にもう2つあるのかもしれません。
確認してみます。

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

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

#4

pippi19

総合スコア684

投稿2023/03/25 13:48

設計による、というがまず第一の回答です。
詳しくは以下に記述します。

ステージングと本番が全く同じであるとした場合、これは必要な作業なのでしょうか。

ステージングと本番が全く同じシステムは存在しないと考えていますがいかがでしょうか?
どんなシステムかわかりませんが、Webサイト(アプリケーション)の場合、
最低でもURLはステージングと本番で違いますよね?

例えば、HTML内のリソースパスに、
httpからはじまるステージングの絶対パスで指定された箇所があった場合、
本番URLではアウトになると思います。

逆に環境ごとに変数を使えるように設計していれば、不要であるとも言えます。
詳しくは「envファイル」で検索してください。

本番環境を「稼働用」「待機用」と2つ用意して待機用をステージングとして扱い、交互にアップと公開を切り替えて使用するような運用方法は存在しますか?

はい。存在しますし、多く使われる手法です。
用語は様々ですが「スワップ」とも呼ばれます。

どのような企業で使われているかなど、

把握しておりますが、一般公開している情報ではないのでお答えできません。

どのようなデメリットがあって実現できないかを教えていただけないでしょうか。

スワップ運用にはそれに対応した環境(クラウドなど)を採用するか、
なければ、自前で作る必要があります(CI/CD)

いずれにせよ、コストがかかりますので、
そのような理由で採用しないこともあると思います。

個人的な経験では、
大手であれば、スワップかどうかはさておき、CI/CDは必ずといっていいほど採用しています。

逆に採用していない会社は、
古いシステム・インフラのまま運用しているので変更できない(環境乗り換えに莫大なコストがかかる)か、
知識やスキル不足のどちらかでした。

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

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

#5

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2023/03/26 07:11

pippi19さん

ありがとうございます。

勤務先ではクラウド環境を利用しているのですが、やはりコストのことを言っていたように思います。
しかし、自身の提案が突拍子もないことではないということが今回分かりましたので、もう少し提案してみようと思います。

CI/CDについても調べてみようと思います。

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問