この記事ではシステム開発でよく耳にする
- 開発環境
- 検証環境
- ステージング環境
- リグレ環境
- 本番環境
について解説していきます。
これらの聞きなれない言葉の意味が分からず、戸惑ったエンジニアも多いと思います。
筆者も新人の頃はこれらの環境の役割がわかっていませんでした。
そんな方のために、それぞれの環境の役割を解説していきます。
開発環境
開発環境は基本的にPC内のローカル環境に構築します。
つまり、各開発者が自由に操作できる環境です。他の開発メンバーの操作の影響を受けることはありません。
チームで開発する場面では、開発環境でメンバーそれぞれが開発を行い、検証環境で開発した機能やコードを統合するという流れが多いです。
検証環境
検証環境は「テスト環境」とも呼ばれたりします。
その名の通りで、開発環境で作ったものがうまく機能するか試す(テストする)環境です。
開発環境と検証環境を分けておくことで、テストと並行して開発を行うことができます。
検証環境では、プログラムを構成する小さな単位の動作を確認する「単体テスト」や、複数の機能を組み合わせて動作を確認する「結合テスト」が行われます。
ステージング環境
ステージング環境は、ユーザが実際に使う環境である本番環境とほぼ同じ環境です。
本番環境へのリリース前の最終確認として使われることが多いです。システムを公開する前に動作や表示、アクセス負荷に耐えられるかなどの確認が行われます。
本番環境と同一の環境にしておくことで、リリース後も更新や機能追加の度に正確なテストが行えます。
リグレ環境
リグレという言葉は「リグレッション」からきています。
システム開発におけるリグレッションとは、ソフトウェアのバージョンアップなどでバグが発生したり、機能がかえって低下してしまうことを指します。
リグレ環境では、本番環境でソフトウェアのアップデートなどを行う前に、リグレッションが発生しないか確認します。
リグレ環境で問題ないことが確認出来たら、本番環境でもアップデートなどを適用します。
注:リグレ環境の役割は、ステージング環境が担うこともあります。
本番環境
本番環境は実際にユーザが使用する環境です。
皆さんが普段使用しているアプリ、サービスは本番環境にリリースされたシステムなのです。
まとめ
この記事では開発/検証/ステージング/リグレ/本番環境のそれぞれの役割を解説しました。
これらの環境を開発、テスト、リリースなど目的によって使い分けています。システム開発に参加して戸惑うことがないようにしっかり覚えておきましょう。