web-dev-qa-db-ja.com

ソフトウェアの導入とソフトウェアのリリースの違いは何ですか?

私はウェブ開発の角度からもっと来ています。モジュールを構築し、テストしてからデプロイします。この最後のステップ(デプロイ)を「リリース」と呼ぶ人もいます。違いは何ですか?またはそれらは同じものですか?

8
Praym

「リリース」と「デプロイメント」という用語はまったく同じ意味だとは思いません。そのように交換可能に使用する必要があるかどうかはわかりません。

Web開発の観点から:

デプロイメントとは、サーバー上でプログラムを実行状態にすることです。 productionサーバーである必要はありません。 deployアプリケーション/モジュールを、独自のワークステーションまたはテストマシンで実行されているテストサーバーにインストールできます。モジュールまたはアプリケーションの開発およびテスト段階で、多くのデプロイメントを実行する場合があります。

アプリケーション/モジュールのリリース(私は名詞として「リリース」を使用しています)は、通常、名前/番号が割り当てられたコード/リソースの特定のバージョンです。これは通常、ユーザーがアプリケーション/モジュールに問題を抱えるようにするために行われます。ユーザーが持っているソフトウェアのリリース番号を知っていると、バグがどこに/いつ導入されたのかを判断し、バグの修正プロセスを追跡するのに役立ちます。リリースは、新しい機能が追加されたとき、または一連のバグが修正されたときに作成できます。

あなたが与える例では、プロセスの最後のステップは "release" or "deployment"と呼ぶことができ、おそらくrelease(assigning番号など...)、すぐにdeployingがリリースされて本番サーバーに配信されます.

少しわかりにくいようです。私はこれらの用語を別々に保つようにして、次のようなことを言うようにしています

私はdeploying最新の本番対応release(1.3.5)をserver.somehost.comに送信します。次に、最新のTesting-release(1.4.1- beta)からtest3.somehost.com

デプロイは非常に緩い用語です。通常は、使用できる場所にコードをインストールすることを指します。リリースされたコード、またはリリースの準備が整っていないコードをデプロイできます。 Web開発では、テストする前にテスト環境にコードをデプロイするのが一般的です。コードをビルドし、開発者のテストのために開発サーバーに自動的にデプロイするビルドチェーンを作成しました。多くのビルドチェーンツールには、成功したビルドをデプロイする機能が含まれています。

一般的なリリースサイクルは次のとおりです(ラベル付けと本番へのデプロイは常に行われるわけではありません)。

  • リリースの準備ができるまで、コードをビルド、デプロイ、テストします。
  • そのコードをリリース候補としてラベル付けします。
  • プレリリーステストのリリース候補を展開します。
  • リリース候補がリリースに十分安定するまでリリース候補を生成します。
  • 安定版リリース候補をリリースバージョンとしてラベル付けします。そして
  • リリースバージョンを本番環境にデプロイします。

一部のビルドチェーンは、すべてのビルドにラベルを付けるか、別の方法でマークします。リリース候補は、ビルドラベルによって識別されます。リリース候補およびリリースバージョンは、追加のラベルでタグ付けされる場合があります。

3
BillThor

リリースの作成は、プログラム(通常はアプリケーションまたはライブラリ)のコンパイルと、ソース管理システムでコンパイルしたばかりのバージョン番号の増分で構成されます。興味のある人にメールを送信するなど、リリースプロセスに追加の手順がある場合があります。

リリースを作成したら、それをデプロイできます。デスクトップアプリケーションをユーザーに、ライブラリをパブリックリポジトリに、Webアプリケーションをサーバーにデプロイします。

リリースせずに「スナップショット」をデプロイする場合、またはバージョン管理を使用しない場合、私はそのリリースを呼び出しません。

2
Traubenfuchs

https://english.stackexchange.com/questions/182724/what-is-the-difference-between-deployment-and-release で違いについての深い議論があります

まとめると、

  • Deploy-ソフトウェアをどこかに置く
  • リリース-ユーザーが新しいバージョン(または機能)を使用できるようにする

Web開発の観点から、新しいバージョンをデプロイする場合がありますが、同時に、新機能は(機能フラグを使用して)無効にされ、ビジネス上の決定によりリリースされるまでリリースされません。

多くの場合、それは非常に理にかなっています。たとえば、Facebook Messengerアプリを例にとってみましょう。ユーザーが実際に使い始める前の1年間、Facebookサーバーに展開されてアクティブでした。

1
Evgeny

典型的なアプリを取る。

新しいバージョンを開発してrelease it:インストール可能です(App Store/Play Store、Steam、私のサイトなど)。

私の顧客は、リリースノートを読んだり、アップグレードを計画したり、「最新バージョンに更新」を押したりして、これをdeploysアプリケーションをデバイスにインストールしていることに気付きました。

更新されたアプリに一部のユーザーに影響するバグがあるとします。これらのユーザーは問題を発見し、以前のバージョンにロールバックします。つまり、それらはdeployが私が作成したものとは異なるreleaseです。

言い換えると:

  • release =利用可能にします。
  • deploy =実際にターゲットデバイスで実行します。
1
9000