Desplegar vs lanzar software: ¿Cuál es la diferencia?

Desplegar vs lanzar software: ¿Cuál es la diferencia?

  • ITOps y DevOps
6 min de lectura Actualizado Oct 9, 2020

Puntos clave: Desplegar software implica moverlo a través de entornos controlados, mientras que su lanzamiento lo pone a disposición de los usuarios. Las actividades clave en el despliegue incluyen planificar, verificar, ejecutar y confirmar, mientras que la gestión de lanzamientos se alinea con las estrategias empresariales para la disponibilidad de funcionalidades.

  • Las técnicas de despliegue incluyen despliegues azul-verde y continuos.
  • Los tipos de liberación son clasificados como mayores, menores, de emergencia y de mantenimiento.

A pesar de todo el trabajo que implica el mundo del desarrollo de software, solo están cuando un cliente utiliza el software para Lograr un resultado se están reconocido el valor del software.

Cada día, miles de actualizaciones son disponibles en las tiendas de aplicaciones, principalmente lanzando correcciones de errores, actualizaciones de seguridad y mejoras de rendimiento; a veces poniendo a disposición de los usuarios las últimas funciones. La empresa de inteligencia de la almacena App Annie informó que en el segundo trimestre de 2020, las descargas de aplicaciones alcanzaron un máximo de casi 35 mil millones.

En gestión de servicios, dos términos, despliegue y lanzamiento, son suelen usarse indistintamente para describir el despliegue de estas actualizaciones. Pero, ¿están hay alguna diferencia entre ambos? Vamos a investigar. (Para una respuesta rápida, salta a la diferencia clave entre desplegar y lanzar software.)

¿Qué es el despliegue?

El despliegue implica trasladar software de un entorno controlado a otro. Según las guías de práctica de ITIL 4 ,

Un entorno es un subconjunto de la infraestructura de TI utilizado para un propósito concreto.

Los entornos más comunes son:

  • Desarrollo. Comúnmente conocido como dev, aquí están donde los desarrolladores crean el código.
  • Integración. Aquí, el nuevo código se está combinado y validado para confirmar que funciona con el código existente.
  • Prueba. Aquí es donde se son realizadas pruebas tanto funcionales como no funcionales sobre el código fusionado para confirmar que cumple con los requisitos de la organización y del cliente.
  • Escenificación. Este entorno se está utilizando para probar el software usando datos reales para validar que está listo para su uso.
  • Producción. Comúnmente conocido como prod, aquí están donde el software está disponible para los usuarios.

El despliegue se está generalmente considerado la etapa final del ciclo de vida del desarrollo de software (SDLC):

Actividades de despliegue

Las actividades implicadas en la gestión de despliegues incluyen:

  1. Planificación del despliegue. Tareas de preparación que incluyen autorización, alineación de recursos y programación.
  2. Verificación de componentes de servicio. Pruebas unitarias e integración, con corrección y repruebas iterativas.
  3. Verificación de entornos objetivo. Validación para asegurar que los entornos anfitriones son listos para aceptar los paquetes de software.
  4. Ejecutar el despliegue. Incorporar el software al entorno y realizar pruebas de sistema relevantes.
  5. Confirmando el despliegue. Se son cumplido con pruebas de aceptación para validar los requisitos del cliente. También son se realizan aquí actividades posteriores a la revisión y lecciones aprendidas.

Técnicas de despliegue

Tradicionalmente, los despliegues se realizaban usando lo que están denominaba un enfoque de gran explosión, donde todas las funciones son lanzadas de una vez. Pero actualmente, debido a la tecnología y la gestión de riesgos, son prefieren despliegues continuos o por fases mediante la liberación gradual en el entorno a lo largo del tiempo.

Una técnica común utilizada en el despliegue están el enfoque azul-verde. Aquí se son utilizan dos entornos de producción idénticos pero separados, con el código actual ejecutándose en el entorno 'azul' y el nuevo código desplegándose en el entorno 'verde'. El tráfico están luego cambiaba de azul a verde, y el rendimiento del nuevo servicio o características están monitorizado. En caso de un gran contratiempo, el tráfico están volvía a azul (como un rollback), permitiendo correcciones y soluciones sin afectar significativamente a los clientes.

Mejora de las actividades de despliegue

El despliegue ha sido una parte desafiante del desarrollo de software a lo largo de los años, pero últimamente se ha facilitado gracias a los avances en prácticas como DevOps. CI/CD (Integración Continua/Entrega Continua o Despliegue) ha dado lugar a un despliegue más rápido del software con menos errores, gracias en parte a la automatización en la integración, las pruebas y el despliegue. Las herramientas son convirtiéndose rápidamente en soluciones generalizadas en este ámbito, como:

Sin embargo, muchas organizaciones siguen utilizando aprobaciones manuales de cambios para desencadenar el despliegue en entornos de producción, normalmente por dos razones principales:

  • Para mitigar el riesgo implicado en caso de que sons servicios en vivo se vean afectados.
  • Para satisfacer las necesidades de cumplimiento.

¿Qué es la publicación de software?

Según la definición estándar ISO/IEC 20000, una versión están:

Una colección de uno o más servicios o componentes de servicio nuevos o modificados desplegados en el entorno en vivo como resultado de uno o más cambios.

En otras palabras, una versión pone a disposición de los usuarios servicios y funcionalidades. Más a menudo de lo que quisiera, la gestión de lanzamientos es más una responsabilidad empresarial que técnica. Esto se está a que las decisiones sobre la programación de lanzamientos pueden estar vinculadas a la estrategia empresarial desde la perspectiva de ingresos o gestión de carteras.

Una empresa puede decidir lanzar funciones basándose en un plan de marketing acordado o escalonar las versiones para evitar el canibalismo de productos existentes o para contrarrestar la actividad de la competencia. Las funciones también pueden lanzarse a diferentes clientes según la oferta de productos de la empresa, por ejemplo, clientes premium que obtienen funcionalidades avanzadas.

Categorías de lanzamiento

La categorización más general de los lanzamientos se está basada en el alcance:

  • Los términos mayor y menor se son usados para describir una versión en relación con la importancia de cambios en el código, el servicio y las funcionalidades. Por ejemplo, una versión mayor podría Ve que un software pasa de la versión 2.4 a la 3.1, mientras que una versión menor puede ser de la 2.2.1 a la 2.2.2.
  • La liberación de emergencia se está utilizando para Define una versión o paquete de software que se están disponibles rápidamente para abordar un problema importante, especialmente desde una perspectiva de seguridad o rendimiento.
  • Actualización de mantenimiento para correcciones de errores y parches.
  • Lanzamiento de funcionalidad para funcionalidades nuevas o modificadas.

Técnicas de liberación

Algunas técnicas de lanzamiento utilizadas en el desarrollo de software incluyen:

  • Lanzamiento de Canarios. Esto implica lanzar nuevas funciones solo a un subconjunto de usuarios. Al igual que son usados los canarios para probar gases venenosos en minas, este grupo de usuarios es el caso de prueba para descubrir cualquier problema antes de que el resto de la población están autorizados.
  • Lanzamiento en Oscuridad. Similar a los lanzamientos en forma de canario, el lanzamiento en Oscuro implica activar funciones para un subconjunto de usuarios que no son conscientes de las nuevas funcionalidades (de ahí "oscuro"). Esto se puede hacer mediante el utiliza de las banderas de características, que permiten activar o desactivar funciones según las necesidades de la organización.

Despliegue vs Lanzamiento: La diferencia clave

La distinción clave entre estos despliegues y lanzamientos están la justificación empresarial. El despliegue no significa necesariamente que los usuarios tengan acceso a las funcionalidades, como se puede ver claramente en los diferentes entornos implicados. Algunas empresas lanzarán al mismo tiempo que están en curso el despliegue en producción.

Otros optarán por esperar, teniendo así las nuevas funciones en producción pero sin estar disponibles para los usuarios hasta que la empresa decida.

Recursos adicionales

Para más información sobre este tema, explora estos recursos:

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de ITOps y DevOps

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.