it-swarm.com.de

Was ist der Unterschied zwischen Softwarebereitstellung und Softwareversion?

Ich komme eher aus der Sicht der Webentwicklung. Wir bauen ein Modul, testen es und stellen es dann bereit. Einige Leute nennen diesen letzten Schritt (Bereitstellen) "Freigabe". Was ist der Unterschied? oder sind sie die gleichen Dinge?

8
Praym

Ich denke nicht, dass die Begriffe "Release" und "Deployment" genau dasselbe bedeuten. Ich bin mir nicht sicher, ob sie so austauschbar verwendet werden sollten.

Aus Sicht der Webentwicklung:

Die Bereitstellung bezieht sich darauf, dass Ihr Programm auf einem Server ausgeführt wird. Es muss nicht der Produktion Server sein. Sie können bereitstellen eine Anwendung/ein Modul auf einem Testserver ausführen, der auf Ihrer eigenen Workstation oder auf einem Testcomputer ausgeführt wird. Möglicherweise führen Sie viele Bereitstellungen während der Entwicklungs- und Testphase eines Moduls oder einer Anwendung durch.

Eine Version (ich verwende "Release" als Substantiv) der Anwendung/des Moduls ist normalerweise eine bestimmte Version von Code/Ressourcen, der ein Name/eine Nummer zugewiesen wurde. Dies geschieht normalerweise, damit ein Benutzer Probleme mit der Anwendung/dem Modul hat. Wenn Sie die Versionsnummer der Software kennen, über die der Benutzer verfügt, können Sie feststellen, wo/wann der Fehler möglicherweise aufgetreten ist, und den Prozess der Behebung verfolgen. Eine Version kann erstellt werden, wenn neue Funktionen hinzugefügt oder eine Reihe von Fehlern behoben werden.

In dem von Ihnen angegebenen Beispiel, in dem der letzte Schritt des Prozesses als "Release" oder "Deployment" bezeichnet werden kann, gibt es wahrscheinlich einige Arbeiten, bei denen ein Release (Zuweisen) erstellt wird eine Nummer, etc ...) und dann sofort Bereitstellung diese Version auf einem Produktionsserver.

Es scheint mir ein wenig verwirrend. Ich versuche, diese Begriffe getrennt zu halten, und ich versuche, Dinge wie zu sagen

Ich bin Bereitstellung die neueste produktionsbereite Version (1.3.5) auf server.somehost.com ". Dann werde ich die neueste Testversion (1.4.1-) bereitstellen. Beta) zu test3.somehost.com

Bereitstellen ist ein sehr loser Begriff. Normalerweise bezieht es sich auf die Installation des Codes, wo er verwendet werden kann. Sie können freigegebenen Code oder Code bereitstellen, der nicht zur Veröffentlichung bereit ist. In der Webentwicklung ist es üblich, Code vor dem Testen in einer Testumgebung bereitzustellen. Ich habe Build-Ketten erstellt, die Code erstellt und ihn automatisch für Entwicklertests auf einem Entwicklungsserver bereitgestellt haben. Viele Build-Chain-Tools bieten die Möglichkeit, erfolgreiche Builds bereitzustellen.

Ein üblicher Release-Zyklus ist (Kennzeichnung und Bereitstellung in der Produktion werden nicht immer durchgeführt):

  • erstellen, Bereitstellen und Testen von Code, bis er möglicherweise zur Veröffentlichung bereit ist.
  • kennzeichnen Sie diesen Code als Release-Kandidaten.
  • bereitstellen des Release-Kandidaten für Tests vor dem Release;
  • freigabekandidaten generieren, bis ein Freigabekandidat für die Freigabe stabil genug ist;
  • beschriften Sie den stabilen Release-Kandidaten als Release-Version. und
  • stellen Sie die Release-Version für die Produktion bereit.

Einige Build-Ketten kennzeichnen jeden Build oder markieren ihn auf andere Weise. Release-Kandidaten werden durch das Build-Label gekennzeichnet. Release-Kandidaten und Release-Versionen können mit einem zusätzlichen Label versehen werden.

3
BillThor

Das Erstellen einer Version besteht aus dem Kompilieren eines Programms (normalerweise einer Anwendung oder einer Bibliothek) und dem Erhöhen der Versionsnummer dessen, was Sie gerade in Ihrem Versionsverwaltungssystem kompiliert haben. Möglicherweise gibt es zusätzliche Schritte für Ihren Freigabeprozess, z. B. das Versenden von E-Mails an Interessenten.

Nachdem Sie eine Version erstellt haben, können Sie diese bereitstellen. Sie stellen Desktopanwendungen für Benutzer, Bibliotheken für ein öffentliches Repository und Webanwendungen für Server bereit.

Wenn Sie "Snapshots" bereitstellen, ohne eine Veröffentlichung vorzunehmen, oder keine Versionierung verwenden, würde ich diese Veröffentlichung nicht nennen.

2
Traubenfuchs

Es gibt eine eingehende Diskussion über die Unterschiede unter https://english.stackexchange.com/questions/182724/what-is-the-difference-between-deployment-and-release

Etwas zusammenfassen,

  • Bereitstellen - irgendwo eine Software platzieren
  • Release - Bereitstellung einer neuen Version (oder Funktion) für Benutzer

In Bezug auf die Webentwicklung stellen Sie manchmal eine neue Version bereit, aber gleichzeitig werden neue Funktionen deaktiviert (mithilfe von Funktionsflags) und erst freigegeben, wenn eine Geschäftsentscheidung getroffen wird, um diese freizugeben.

In vielen Fällen macht es sehr viel Sinn, zum Beispiel die Facebook Messenger App. Es wurde ein ganzes Jahr lang auf Facebook-Servern bereitgestellt und aktiv, bevor Benutzer es tatsächlich verwenden konnten.

1
Evgeny

Nehmen Sie eine typische App.

Ich entwickle eine neue Version und Release it: Sie kann installiert werden (App Store/Play Store, Steam, meine Website usw.).

Meine Kunden bemerken dies, lesen die Versionshinweise, planen ein Upgrade oder klicken einfach auf "Auf die neueste Version aktualisieren" und dies stellt bereit die Anwendung auf ihren Geräten.

Angenommen, die aktualisierte App weist einen Fehler auf, der einige Benutzer betrifft. Diese Benutzer erkennen das Problem und kehren zu einer früheren Version zurück. Das heißt, sie bereitstellen ein anderes Release als ich gerade gemacht habe.

Mit anderen Worten:

  • release = verfügbar machen.
  • deploy = tatsächlich auf Zielgeräten ausführen lassen.
1
9000