¿Cuál es la diferencia entre la implementación del software y la versión del software?

7

Vengo más desde el ángulo de desarrollo web. Construimos un módulo, lo probamos y luego lo implementamos. Algunas personas llaman a este último paso (despliegue) como 'lanzamiento'. ¿Cual es la diferencia? ¿O son las mismas cosas?

    
pregunta Praym 15.03.2017 - 14:49

4 respuestas

9

No creo que los términos lanzamiento "y" implementación signifiquen exactamente lo mismo, cosa que no estoy seguro de que deban usarse indistintamente de esa manera.

Desde una perspectiva de desarrollo web:

La implementación se refiere a llevar su programa a un estado de ejecución en un servidor. No es necesario que sea el servidor de producción . Puede implementar una aplicación / módulo en un servidor de prueba que se ejecuta en su propia estación de trabajo o en una máquina de prueba. Puede realizar muchas implementaciones durante las etapas de desarrollo y prueba de un módulo o aplicación.

Una versión (estoy usando "versión" como sustantivo) de la aplicación / módulo generalmente es una versión específica de código / recursos a la que se le ha asignado un nombre / número. Esto generalmente se hace para que un usuario tenga problemas con la aplicación / módulo, saber el número de versión del software que el usuario puede ayudar a determinar dónde / cuándo se pudo haber introducido el error y también puede ayudar a rastrear el proceso de solución. Se puede crear una versión cuando se agregan nuevas funciones o se corrige un conjunto de errores.

En el ejemplo que da, donde el último paso del proceso puede llamarse "lanzamiento" o "implementación", es probable que haya algún trabajo que implique crear un lanzamiento (asignando un número, etc.) e inmediatamente desplegando ese lanzamiento en un servidor de producción.

Me parece un poco confuso. Intento mantener estos términos separados y trato de decir cosas como

  

Estoy desplegando el lanzamiento (1.3.5) más nuevo listo para producción> a server.somehost.com ". Luego desplegaré el último lanzamiento de prueba (1.4 .1-beta) para test3.somehost.com

    
respondido por el FrustratedWithFormsDesigner 15.03.2017 - 15:21
3

Implementar es un término muy suelto. Normalmente se refiere a instalar el código donde se puede utilizar. Puede implementar el código liberado, o el código que no está listo para el lanzamiento. En el desarrollo web, es común implementar código en un entorno de prueba antes de probarlo. He creado cadenas de compilación que construyeron código y lo implementé automáticamente en un servidor de desarrollo para pruebas de desarrollador. Muchas herramientas de cadena de compilación incluyen la capacidad de implementar compilaciones exitosas.

Un ciclo de lanzamiento común es (el etiquetado y la implementación en la producción no siempre se realizan):

  • genere, implemente y pruebe el código hasta que esté potencialmente listo para su lanzamiento;
  • etiqueta ese código como un candidato de lanzamiento;
  • desplegar el candidato de lanzamiento para las pruebas previas al lanzamiento;
  • generar candidatos de lanzamiento hasta que un candidato de lanzamiento sea lo suficientemente estable para el lanzamiento;
  • etiqueta el candidato de lanzamiento estable como una versión de lanzamiento; y
  • implementa la versión de lanzamiento para producción.

Algunas cadenas de compilación etiquetan o de otra forma marcan cada compilación. Los candidatos de lanzamiento están identificados por la etiqueta de construcción. Los candidatos de lanzamiento y las versiones de lanzamiento pueden estar etiquetados con una etiqueta adicional.

    
respondido por el BillThor 16.03.2017 - 03:49
2

La creación de una versión consiste en compilar un programa (generalmente una aplicación o una biblioteca) e incrementar el número de versión de lo que acaba de compilar en su sistema de control de origen. Puede haber pasos adicionales para su proceso de lanzamiento, como enviar correos electrónicos a aquellos que puedan estar interesados.

Después de crear una versión, puedes implementarla. Implementa aplicaciones de escritorio para usuarios, bibliotecas en un repositorio público y aplicaciones web en servidores.

Si implementas "instantáneas" sin hacer un lanzamiento o no usas el control de versiones, no llamaría a ese lanzamiento.

    
respondido por el Traubenfuchs 15.03.2017 - 15:01
1

Toma una aplicación típica.

Desarrollo una nueva versión y release it: está disponible para su instalación (App Store / Play Store, Steam, mi sitio, etc.).

Mis clientes notan que, lea las notas de la versión, planifique una actualización o simplemente presione "Actualizar a la última versión", y esta implementa la aplicación en sus dispositivos.

Supongamos que la aplicación actualizada tiene un error que afecta a algunos usuarios. Estos usuarios descubren el problema y regresan a una versión anterior. Es decir, implementan una versión diferente a la que acabo de hacer.

En otras palabras:

  • release = make available.
  • deploy = en realidad hace que se ejecute en los dispositivos de destino.
respondido por el 9000 15.03.2017 - 19:04

Lea otras preguntas en las etiquetas