production 環境とは何か?
production 環境とは、実際のユーザーが操作するライブシステムであり、何かが問題になったときに本当に重要になるものです。
production はソフトウェアが本来の仕事をする場所であり、ミスが現実の結果をもたらす場所です。デリバリプロセスの他のすべて、build、test、staging は、production への変更を安全にするために存在します。
何であるか
production 環境は、実際のデータと実際のトラフィックで実際のユーザーに提供する deployment です。deployment pipeline の目的地であり、その uptime と正しさがビジネスに直接影響する環境です。人々が「落ちてる?」と言うとき、それは production を指します。
他の環境との違い
development や staging とは異なり、production は実際のユーザーデータを扱い、可用性を保たねばならず、実際の負荷に合わせてサイズ設定されます。アクセスは通常より制限され、変更はより制御され、監視はより徹底されます。staging で動いたのと同じ artifact がここに deploy されます。rebuild はありません。
例
ある小売業者の production 環境は数千件のライブ注文を処理します。変更は、それ以前のすべてのゲートを通過してからのみそこへ昇格されます。それでも、canary で段階的にロールアウトされ、エラーを監視され、rollback までワンクリックの距離に保たれます。ここでの障害はどれも実際の売上を失うからです。
なぜ deploy が慎重さを要するか
production はバグがユーザーとビジネスを直接傷つける唯一の環境です。だからこそ deployment は段階的な戦略、health check、高速な rollback を使い、監視とアラートがここに集中します。目標は、production への変更をまれで恐ろしいものではなく、日常的で可逆的なものにすることです。
production のリスクを減らす
- staging を通過した artifact のみを昇格させる。
- canary または blue-green deployment で段階的にロールアウトする。
- health を監視し、rollback を高速に保つ。
- deploy と release を切り離すために feature flag を使う。
重要なポイント
- production は実際のユーザーが依存するライブ環境である。
- 最大の慎重さ、監視、制御された変更を要する。
- 段階的なロールアウトと高速な rollback が production への deploy を安全に保つ。