Despliegue de Software

Despliegue de software
Información sobre la plantilla

El Despliegue de software son todas las actividades que hacen que un sistema de software esté disponible para su uso. El proceso de implementación general consiste en varias actividades interrelacionadas con posibles transiciones entre ellas. Estas actividades pueden ocurrir en el lado del desarrollador de software o en el lado del consumidor o en ambos. Debido a que cada sistema de software es único, los procesos o procedimientos precisos dentro de cada actividad difícilmente pueden definirse. Por lo tanto, la "implementación" debe interpretarse como un proceso general que debe personalizarse de acuerdo con los requisitos o características específicos

Actividades de despliegue

  • Lanzamiento

La actividad de publicación se deriva del proceso de desarrollo completado y, a veces, se clasifica como parte del proceso de desarrollo en lugar del proceso de implementación. Incluye todas las operaciones para preparar un sistema para el compilado y la transferencia a los sistemas informáticos en los que se ejecutará en producción. Por lo tanto, a veces implica la determinación de los recursos necesarios para que el sistema funcione con un rendimiento y planificación tolerables y / o documente las actividades posteriores del proceso de implementación.

  • Instalación y activación

Instalación y acción Para sistemas simples, la instalación implica establecer algún tipo de comando, acceso directo, script o servicio para ejecutar el software (manual o automáticamente). Para sistemas complejos puede implicar la configuración del sistema, posiblemente haciendo preguntas al usuario final sobre su uso previsto, o preguntándoles directamente cómo les gustaría que se configuren, y / o haciendo que todos los subsistemas necesarios estén listos para usar. La activación es la actividad de iniciar el componente ejecutable de software por primera vez (no debe confundirse con el uso común del término activación en relación con una licencia de software, que es una función de los sistemas de gestión de derechos digitales). En implementaciones de software más grandes en servidores, la copia principal del software que deben usar los usuarios, "producción", se puede instalar en un servidor de producción en un entorno de producción. Otras versiones del software implementado pueden instalarse en un entorno de prueba, un entorno de desarrollo y un entorno de recuperación de desastres. En entornos complejos de entrega continua y / o software como sistemas de servicio, es posible que existan simultáneamente versiones configuradas de manera diferente del sistema en el entorno de producción para diferentes clientes internos o externos (esto se conoce como una arquitectura de múltiples inquilinos), o incluso se implementará gradualmente en paralelo a diferentes grupos de clientes, con la posibilidad de cancelar uno o más de los despliegues paralelos. Por ejemplo, se sabe que Twitter utiliza este último enfoque para la prueba A / B de nuevas características y cambios en la interfaz de usuario. También se puede crear un grupo "oculto en vivo" dentro de un entorno de producción, que consiste en servidores que aún no están conectados al equilibrador de carga de producción, para los fines de la implementación azul-verde.

  • Desactivación

La desactivación es la inversa de la activación y se refiere al cierre de cualquier componente que ya se esté ejecutando de un sistema. A menudo se requiere la desactivación para realizar otras actividades de implementación, por ejemplo, es posible que un sistema de software deba desactivarse antes de que se pueda realizar una actualización. La práctica de eliminar los sistemas poco usados u obsoletos del servicio a menudo se denomina retiro de la aplicación o desmantelamiento de la aplicación.

  • Desinstalación

La desinstalación es el inverso de la instalación. Es la eliminación de un sistema que ya no es necesario. También puede implicar alguna reconfiguración de otros sistemas de software para eliminar las dependencias del sistema desinstalado.

  • Actualización

El proceso de actualización reemplaza una versión anterior de todo o parte de un sistema de software con una versión más reciente. Comúnmente consiste en la desactivación seguida de la instalación. En algunos sistemas, como en Linux cuando se usa el administrador de paquetes del sistema, la versión anterior de una aplicación de software generalmente también se desinstala como parte automática del proceso. (Esto se debe a que los administradores de paquetes de Linux generalmente no admiten la instalación de varias versiones de una aplicación de software al mismo tiempo, a menos que el paquete de software haya sido diseñado específicamente para evitar esta limitación).

  • Actualización incorporada

Los mecanismos para instalar actualizaciones están integrados en algunos sistemas de software (o, en el caso de algunos sistemas operativos, como Linux, Android e iOS, en el propio sistema operativo). La automatización de estos procesos de actualización va desde totalmente automática hasta iniciada y controlada por el usuario. Norton Internet Security es un ejemplo de un sistema con un método semiautomático para recuperar e instalar actualizaciones para las definiciones de antivirus y otros componentes del sistema. Otros productos de software proporcionan mecanismos de consulta para determinar cuándo hay actualizaciones disponibles.

  • Seguimiento de versiones

Los sistemas de seguimiento de la versión ayudan al usuario a encontrar e instalar actualizaciones a los sistemas de software. Por ejemplo: Software Catalog almacena la versión y otra información para cada paquete de software instalado en un sistema local. Con solo hacer clic en un botón, se abre una ventana del navegador a la página web de actualización de la aplicación, incluido el llenado automático del nombre de usuario y la contraseña de los sitios que requieren un inicio de sesión. En Linux, Android e iOS, este proceso es incluso más sencillo porque el sistema operativo incorpora un proceso estandarizado para el seguimiento de versiones (para paquetes de software instalados de manera oficial), por lo que no se requieren pasos separados de inicio de sesión, descarga y ejecución, por lo que El proceso puede configurarse para ser completamente automatizado. Algunos software de terceros también admiten el seguimiento y la actualización automatizados de versiones para ciertos paquetes de software de Windows.

  • Adaptación

La actividad de adaptación también es un proceso para modificar un sistema de software que se ha instalado anteriormente. Se diferencia de la actualización en que las adaptaciones son iniciadas por eventos locales, como cambiar el entorno del sitio del cliente, mientras que la actualización es una consecuencia de la disponibilidad de una nueva versión. La adaptación puede requerir habilidades técnicas especializadas, como la programación de computadoras, en ciertos casos complejos.

Roles de implementación

La complejidad y variabilidad de los productos de software ha fomentado la aparición de roles especializados para coordinar e diseñar el proceso de implementación. Para los sistemas de escritorio, los usuarios finales con frecuencia también se convierten en los "implementadores de software" cuando instalan un paquete de software en su máquina. La implementación del software empresarial implica muchos más roles, y esos roles generalmente cambian a medida que la aplicación avanza de la prueba (preproducción) a los entornos de producción. Los roles típicos involucrados en las implementaciones de software para aplicaciones empresariales pueden incluir:

En entornos de preproducción

  • Desarrolladores de aplicaciones
  • Gerentes de lanzamiento
  • Coordinadores de despliegue

En entornos de producción

  • Administrador de sistema
  • Administrador de base de datos
  • Coordinadores de liberación
  • Directores de proyecto de las operaciones

Herramientas de despliegue

  • Ansible
  • OSGi
  • JNLP
  • RPM
  • Apto


Fuentes