web-dev-qa-db-fra.com

Quelle est la différence entre le déploiement de logiciels et la sortie de logiciels?

Je viens plus du point de vue du développement web. Nous construisons un module, le testons puis le déployons. Certaines personnes appellent cette dernière étape (déploiement) "libération". Quelle est la différence? ou sont-ce les mêmes choses?

8
Praym

Je ne pense pas que les termes libération "et" déploiement signifient exactement la même chose, mais je ne suis pas sûr qu'ils devraient être utilisés de manière interchangeable comme ça.

Du point de vue du développement Web:

Le déploiement fait référence à la mise en marche de votre programme sur un serveur. Il n'est pas nécessaire que ce soit le serveur production. Vous pouvez déployer une application/un module sur un serveur de test qui s'exécute sur votre propre poste de travail ou sur une machine de test. Vous pouvez effectuer de nombreux déploiements pendant les étapes de développement et de test d'un module ou d'une application.

Une version (j'utilise "version" comme nom) de l'application/module est généralement une version spécifique de code/ressources à laquelle un nom/numéro a été attribué. Cela est généralement fait pour qu'un utilisateur ait des problèmes avec l'application/le module, connaissant le numéro de version du logiciel dont il dispose peut aider à déterminer où/quand le bogue peut avoir été introduit et peut également aider à suivre le processus de correction. Une version peut être créée lorsque de nouvelles fonctionnalités sont ajoutées ou qu'un ensemble de bogues est corrigé.

Dans l'exemple que vous donnez, où la dernière étape du processus peut être appelée "version" o "déploiement", il y a probablement un travail qui implique la création d'une version (affectation un certain nombre, etc ...) puis immédiatement déploiement cette version sur un serveur de production.

Cela me semble un peu déroutant. J'essaie de garder ces termes séparés et j'essaie de dire des choses comme

Je suis déployant la toute dernière version prête pour la production release (1.3.5) to server.somehost.com ". Ensuite, je déploierai la dernière version de testing (1.4.1- beta) à test3.somehost.com

Déployer est un terme très vague. Normalement, cela fait référence à l'installation du code où il peut être utilisé. Vous pouvez déployer du code publié ou un code qui n'est pas prêt à être publié. Dans le développement Web, il est courant de déployer du code dans un environnement de test avant de le tester. J'ai créé des chaînes de génération qui ont construit du code et l'ont déployé automatiquement sur un serveur de développement pour les tests des développeurs. De nombreux outils de chaîne de génération incluent la possibilité de déployer des générations réussies.

Un cycle de publication commun est (l'étiquetage et le déploiement en production ne sont pas toujours effectués):

  • construire, déployer et tester le code jusqu'à ce qu'il soit potentiellement prêt à être publié;
  • étiqueter ce code comme candidat à la publication;
  • déployer la version candidate pour les tests de pré-version;
  • générer des versions candidates jusqu'à ce qu'une version candidate soit suffisamment stable pour la version;
  • étiqueter la version stable candidate comme version de version; et
  • déployer la version finale en production.

Certaines chaînes de construction étiquettent ou marquent autrement chaque construction. Les candidats aux versions sont identifiés par le libellé de génération. Les candidats à la sortie et les versions peuvent être étiquetés avec une étiquette supplémentaire.

3
BillThor

La création d'une version consiste à compiler un programme (généralement une application ou une bibliothèque) et à incrémenter le numéro de version de ce que vous venez de compiler dans votre système de contrôle de code source. Il peut y avoir des étapes supplémentaires à votre processus de publication, comme l'envoi d'e-mails à ceux qui pourraient être intéressés.

Après avoir créé une version, vous pouvez la déployer. Vous déployez des applications de bureau pour les utilisateurs, des bibliothèques dans un référentiel public et des applications Web sur des serveurs.

Si vous déployez des "instantanés" sans faire de version ou n'utilisez pas de version, je n'appellerais pas cela une version.

2
Traubenfuchs

Il y a une discussion approfondie sur les différences à https://english.stackexchange.com/questions/182724/what-is-the-difference-between-deployment-and-release

Résumer,

  • Déployer - mettre un logiciel quelque part
  • Release - mise à disposition d'une nouvelle version (ou fonctionnalité) utilisable par les utilisateurs

En termes de développement Web, vous pouvez parfois déployer une nouvelle version, mais en même temps, de nouvelles fonctionnalités sont désactivées (à l'aide d'indicateurs de fonctionnalité) et ne sont pas publiées tant qu'une décision commerciale n'a pas été prise pour les publier.

Dans de nombreux cas, cela a beaucoup de sens, prenez par exemple l'application Facebook Messenger. Il a été déployé et actif sur les serveurs Facebook pendant une année entière avant que les utilisateurs ne puissent réellement l'utiliser.

1
Evgeny

Prenez une application typique.

Je développe une nouvelle version et release it: elle est disponible pour l'installation (App Store/Play Store, Steam, mon site, etc.).

Mes clients le remarquent, lisez les notes de publication, planifiez une mise à niveau ou appuyez simplement sur "Mettre à jour vers la dernière version", et cela déploie l'application sur leurs appareils.

Supposons que l'application mise à jour comporte un bogue qui affecte certains utilisateurs. Ces utilisateurs découvrent le problème et reviennent à une version précédente. Autrement dit, ils déployer un version différent de ce que je viens de faire.

En d'autres termes:

  • release = rendre disponible.
  • deploy = le faire réellement fonctionner sur les appareils cibles.
1
9000