stringtranslate.com

Implementación de software

La implementación de software son todas las actividades que hacen que un sistema de software esté disponible para su uso. [1]

El proceso de despliegue general consta de varias actividades interrelacionadas con posibles transiciones entre ellas. Estas actividades pueden ocurrir en el lado del productor o en el lado del consumidor o en ambos. Debido a que cada sistema de software es único, difícilmente se pueden definir los procesos o procedimientos precisos dentro de cada actividad. Por lo tanto, el "despliegue" debe interpretarse como un proceso general que debe personalizarse según requisitos o características específicas. [2]

Historia

Cuando las computadoras eran extremadamente grandes, caras y voluminosas ( mainframes y minicomputadoras ), los fabricantes solían incluir el software junto con el hardware. Si fuera necesario instalar software empresarial en una computadora existente, esto podría requerir una visita costosa y que requiere mucho tiempo por parte de un arquitecto de sistemas o un consultor . Para la instalación compleja local de software empresarial hoy en día, este puede ser el caso a veces.

Sin embargo, con el desarrollo del software para el mercado masivo para la nueva era de las microcomputadoras en la década de 1980, surgieron nuevas formas de distribución de software  : primero cartuchos , luego casetes compactos , luego disquetes y luego (en la década de 1990 y posteriormente) medios ópticos , Internet. y unidades flash . Esto significaba que la implementación del software podía dejarse en manos del cliente. Sin embargo, con el tiempo también se reconoció cada vez más que la configuración del software por parte del cliente era importante y que lo ideal sería que tuviera una interfaz fácil de usar (en lugar de, por ejemplo, requerir que el cliente editara las entradas del registro en Windows).

En las implementaciones de software anteriores a Internet, las implementaciones (y su primo estrechamente relacionado, los nuevos lanzamientos de software) eran necesariamente costosas, poco frecuentes y voluminosas. Por lo tanto, se puede argumentar que la expansión de Internet hizo posible el desarrollo ágil de software de extremo a extremo . De hecho, la llegada de la computación en la nube y el software como servicio significó que el software podría implementarse para una gran cantidad de clientes en minutos, a través de Internet. Esto también significó que, por lo general, los cronogramas de implementación ahora los determinaba el proveedor de software, no los clientes. Esta flexibilidad llevó al aumento de la entrega continua como una opción viable, especialmente para aplicaciones web menos riesgosas .

Otras opciones para la implementación de software incluyen la implementación azul-verde y la implementación de la versión canary .

Actividades de implementación

Liberar
La actividad de lanzamiento se deriva de la finalización del proceso de desarrollo y, a veces, se clasifica como parte del proceso de desarrollo en lugar de como proceso de implementación. Incluye todas las operaciones para preparar un sistema para su ensamblaje y transferencia al sistema informático en el que se ejecutará en producción. Por lo tanto, a veces implica determinar los recursos necesarios para que el sistema funcione con un rendimiento tolerable y planificar y/o documentar actividades posteriores del proceso de implementación.
Instalación y activació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 configure) y/o preparando todos los subsistemas necesarios para su uso. La activación es la actividad de iniciar el componente ejecutable del software por primera vez (no debe confundirse con el uso común del término activación relacionado 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 utilizarán los usuarios ("producción") podría instalarse en un servidor de producción en un entorno de producción. Se pueden instalar otras versiones del software implementado en un entorno de prueba , un entorno de desarrollo y un entorno de recuperación ante desastres.
En entornos complejos de entrega continua y/o sistemas de software como servicio , pueden incluso existir simultáneamente versiones del sistema con configuraciones diferentes en el entorno de producción para diferentes clientes internos o externos (esto se conoce como arquitectura multiinquilino ), o incluso ser desplegado progresivamente 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 pruebas A/B de nuevas funciones y cambios en la interfaz de usuario . También se puede crear un grupo "activo oculto" dentro de un entorno de producción, que consta de servidores que aún no están conectados al balanceador de carga de producción , para fines de implementación azul-verde .
Desactivación
La desactivación es lo inverso a la activación y se refiere a apagar cualquier componente de un sistema que ya se esté ejecutando. A menudo se requiere la desactivación para realizar otras actividades de implementación; por ejemplo, es posible que sea necesario desactivar un sistema de software antes de poder realizar una actualización. La práctica de retirar del servicio sistemas obsoletos u utilizados con poca frecuencia a menudo se denomina retiro de aplicaciones o desmantelamiento de aplicaciones.
Desinstalación
La desinstalación es lo inverso a la instalación. Es la eliminación de un sistema que ya no es necesario. También puede implicar cierta reconfiguración de otros sistemas de software para eliminar las dependencias del sistema desinstalado .
Actualizar
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 una desactivación seguida de una instalación. En algunos sistemas, como Linux, cuando se utiliza 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 normalmente 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 solucionar 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 varía desde completamente 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 tanto para las definiciones de antivirus como para 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 versiones ayudan al usuario a encontrar e instalar actualizaciones de los sistemas de software. Por ejemplo: el catálogo de software almacena la versión y otra información de cada paquete de software instalado en un sistema local. Un clic en un botón abre una ventana del navegador a la página web de actualización de la aplicación, incluido el autocompletado del nombre de usuario y la contraseña para los sitios que requieren un inicio de sesión. En Linux, Android e iOS, este proceso es aún más sencillo porque un proceso estandarizado para el seguimiento de versiones (para paquetes de software instalados con soporte oficial) está integrado en el sistema operativo, por lo que no se requieren pasos de inicio de sesión, descarga y ejecución por separado, por lo que el El proceso se puede configurar para que sea completamente automatizado. Algunos programas de terceros también admiten el seguimiento y la actualización automatizados de versiones de determinados paquetes de software de Windows.

Roles de implementación

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

Ver también

Referencias

  1. ^ Roger S. Pressman Ingeniería de software: el enfoque de un profesional (octava edición)
  2. ^ Rees-Carter, Stephen (13 de julio de 2018). "Cómo instalar y configurar Ansible en Ubuntu 18.04". Océano Digital . Archivado desde el original el 9 de junio de 2019 . Consultado el 8 de junio de 2019 . Los sistemas de gestión de configuración están diseñados para facilitar el control de una gran cantidad de servidores a los administradores y equipos de operaciones. Le permiten controlar muchos sistemas diferentes de forma automatizada desde una ubicación central.

enlaces externos