Skip to content
Latchkey

deployment 環境とは何か?

deployment 環境とは、development、staging、production のように、ソフトウェアのあるバージョンが動作する、独立し分離された場所です。

チームがソフトウェアを 1 か所だけで動かすことはめったにありません。それぞれ異なる目的に応える一連の環境を使い、変更がユーザーに届く前に、ますます現実的な条件下でテストできるようにします。

環境とは何か

deployment 環境とは、アプリケーションの分離されたインスタンスと、そのインフラおよび構成を合わせたものです。各環境は独立して動作するため、ある環境に deploy された変更が別の環境に影響することはありません。環境は主に、どれだけ production に近いか、そしてどれだけ実際のユーザーに露出しているかで異なります。

一般的な環境

  • development: エンジニアが進行中の作業をテストする場所。
  • testing または CI: 各変更で自動テストが実行される場所。
  • staging: production に近いリハーサル環境。
  • production: 実際のユーザーに提供するライブ環境。

変更が環境間をどう移動するか

変更は production により近くない環境からより近い環境へと昇格され、各ステップでチェックを通過します。同じ artifact が通常すべての環境に deploy され、構成だけが異なるため、早い段階でテストしたものが production に届きます。この昇格の経路が deployment pipeline です。

新しい feature はまず開発者の環境で動かされ、次に end-to-end テストが通る staging に deploy され、その後 production へ昇格されます。まったく同じ build がそれぞれを通過し、データベース接続文字列などの環境固有の config だけが変わります。

なぜチームは複数使うか

複数の環境により、ユーザーの前で問題を発見するのではなく、まず安全な場所で段階的に問題を捉えられます。環境の一貫性を(多くは Infrastructure as Code で)保つことで、staging での合格が本当に production での成功を予測することが保証されます。

重要なポイント

  • 環境とは、アプリのあるバージョンが動作する分離された場所である。
  • チームは development から staging を経て production まで複数使う。
  • 変更はそれらを通じて昇格され、より production に近くなっていく。

関連ガイド