The Application Packager

una vez examinada más de cerca.

Requisitos generales de calidad desde el punto de vista del empaquetado de software

El empaquetado de aplicaciones requiere una combinación única de competencias que traspasa los límites organizativos típicos de la mayoría de los departamentos de TI.

Introducción

El empaquetado de aplicaciones suele subestimarse o considerarse una "actividad secundaria". Debido a la mala estimación ...

  • en la gestión
  • entre los empleados de TI
  • de los proveedores a través de los clientes
  • de los responsables de la toma de decisiones
... sobre el despliegue de aplicaciones en la empresa, suelen surgir dificultades similares:

  • Se subestima la complejidad del embalaje de las aplicaciones.
  • El empaquetado de las aplicaciones se lleva a cabo en varios puntos de la empresa.
  • Por lo tanto, el conocimiento debe construirse y mantenerse de forma redundante en diferentes lugares.
  • Alto porcentaje de errores por falta de conocimientos.
  • El proceso global se resiente debido a una calidad inadecuada o sólo suficiente.
  • El servicio "empaquetado de aplicaciones / aprovisionamiento de aplicaciones" está perdiendo cada vez más confianza y aceptación en la empresa.
La verdad es que ya casi nadie sabe cómo clasificar correctamente un empaquetador de aplicaciones. La gente de hardware y redes los ve como desarrolladores de aplicaciones. Los desarrolladores de aplicaciones los ven como un apoyo a la infraestructura. El apoyo a la infraestructura los ve como un subconjunto extraño. InfoSec sólo percibe a los empaquetadores de aplicaciones cuando solicitan excepciones al cortafuegos y exclusiones del escáner de malware. Para muchos, el empaquetado de aplicaciones es sólo un término vago y no un título de trabajo. Algunos ejemplos:

  • SCCM-Packager
  • Especialista en infraestructura Servicio al cliente
  • Arquitecto de soluciones TIC Plataforma de aplicaciones
  • Especialista en sistemas (cliente profesional de MS Windows)
  • Ingeniero de sistemas (integración de sistemas)
  • Ingeniero de sistemas para clientes
  • o simple: Administrador de sistemas

Clasificación según ITIL

Si la función del empaquetador de software se clasificara según ITIL, los empleados de empaquetado estarían subordinados al área de desarrollo de aplicaciones o a un área relacionada con el desarrollo. Según ITIL, la gestión de aplicaciones sería responsable de la creación de paquetes de software. Esta suposición se basa principalmente en el hecho de que a menudo se requieren conocimientos de desarrollo de aplicaciones para desarrollar una rutina de instalación. La gestión de versiones es responsable de las pruebas y la distribución de las mismas. La gestión del cambio, en cambio, se encarga del seguimiento y el control.

A menudo, debido al perfil de especialista "empaquetador de software", la actividad de empaquetado de software se encuentra en un área separada. Este ámbito debe estar orientado tanto al sistema como a la aplicación. En la práctica, la actividad de creación de paquetes se localiza casi predominantemente en el ámbito de la gestión de versiones (RM). Esto se debe a que una unidad de liberación se equipara a un paquete en el uso normal. Dado que la Gestión de la Liberación es responsable de la creación y las pruebas de las Unidades de Liberación (y de la Liberación), esto puede justificarse por el hecho de que un empaquetador puede / debe ser un empleado de RM. Sin embargo, en última instancia, ITIL sólo da pistas en este punto y no especificaciones.

Seguro de calidad

El empaquetador del software es el único responsable de la funcionalidad técnica del paquete. Debe utilizar los mecanismos adecuados para garantizar la calidad del paquete y que éste cumpla los requisitos definidos por el cliente. El empaquetador de software comprueba el paquete en un sistema de referencia adecuado, lo más cercano posible a la producción y necesario para la aplicación de las especificaciones y la operatividad técnica.

Responsabilidad operacional

El empaquetador de software es el único responsable de crear y probar los paquetes correspondientes. Todas las cuestiones relativas al funcionamiento directo o indirecto de una aplicación no forman parte de su responsabilidad. En el caso del soporte, representa un nivel de soporte incrementado (2º o 3º nivel) del soporte de la aplicación.

Responsabilidad de la aplicación

Cada aplicación en uso tiene (idealmente) un propietario de la aplicación (persona / grupo o departamento). El propietario de la aplicación/propietario del producto es el primer punto de contacto para todos los asuntos relacionados con la aplicación en uso productivo. Él o ella decide la configuración de la aplicación (a menudo en cooperación con otros departamentos de TI o unidades de negocio). Además, el propietario de la aplicación suele participar en el proceso de contratación, en el que evalúa (en colaboración con los departamentos) las funcionalidades solicitadas y hace recomendaciones de productos en el marco de la contratación.

Junto con el empaquetador, el gestor de aplicaciones comprueba que la aplicación sea ejecutable y cumpla sus especificaciones. A través de la aceptación (que debería tener lugar de forma adecuadamente archivable), el propietario de la aplicación asume la responsabilidad operativa de su aplicación.

Mientras que la aplicación en producción es responsabilidad del propietario de la aplicación, la rutina de instalación (el paquete) debe seguir siendo responsabilidad del empaquetador. Llegados a este punto, hay que señalar que el paquete que contiene la aplicación es en sí mismo también una aplicación.

Empaquetador de software y administrador de aplicaciones en uno

Aunque no es aconsejable, en algunas circunstancias puede que no haya otra opción que combinar las funciones de propietario de la aplicación y empaquetador. En este caso, el empaquetador de software asume las funciones y responsabilidades del propietario de la aplicación. El riesgo de esta constelación radica en los dos perfiles especializados diferentes (propietario de la aplicación / empaquetador de software). El empaquetado de un paquete requiere un profundo conocimiento tanto de la ingeniería de sistemas como de las tecnologías de automatización. Si se sigue la premisa de "centrarse en el negocio principal", el empaquetado de software adicional o (a la inversa) la responsabilidad de la aplicación es una desviación del negocio principal. La consecuencia de esta desviación es que, o bien hay que vivir dos perfiles especializados (en el sentido de dominar) o bien la actividad principal se ve perjudicada por la otra actividad respectiva.

Empaquetado de aplicaciones por parte de proveedores de servicios externos

Si una empresa no dispone de recursos propios suficientes, tiene sentido implantar el empaquetado de software con la ayuda de un soporte externo. Al especializarse en el área de empaquetado de software, los proveedores de servicios pueden ofrecer consultores / empaquetadores de software que son capaces de cumplir profesionalmente y aplicar un perfil especializado "empaquetador de software". También vale la pena considerar la posibilidad de que estos especialistas acompañen el envasado y que se creen recursos propios cualificados de esta manera. Desde el punto de vista del proveedor de servicios, un empaquetador externo nunca debería ser responsable del funcionamiento de una aplicación en este punto.

¿Necesita un empaquetador de aplicaciones conocer el sistema de distribución de software?

Un empaquetador de software se define principalmente por otras habilidades. Los requisitos generales de un empaquetador de software se analizan con más detalle a continuación. Hace varios años, se introdujo el término "empaquetador de SCCM", que dio lugar a la necesidad de vivir (en el sentido de dominar) dos perfiles de especialista.

Requisitos

Tecnología del sistema

Una cosa por encima de todo hace a un buen empaquetador de software: El empaquetador de software debe tener a su cliente bajo control. Especialmente cuando se empaqueta utilizando el análisis delta, es elemental e indispensable limpiar el script de las entradas que se registraron pero que no pertenecen al script después de crear con éxito el análisis delta. En determinadas circunstancias, estas entradas pueden causar daños irreparables en los sistemas de destino correspondientes durante el despliegue de este paquete. En este caso, habría que reinstalar estos sistemas.

En primer lugar, un buen empaquetador de software debe dominar los sistemas operativos para los que crea paquetes de software como parte de sus actividades. En el segundo caso, es ciertamente aconsejable tratar con otros sistemas operativos o versiones de sistemas operativos, ya que el próximo despliegue / cambio es seguro. En este contexto, la maestría se define como sigue:

  • Registry
    El Registro del Sistema de Windows no debería ser un concepto extraño. Un buen empaquetador de software debe estar familiarizado con los valores por defecto en HKLM y HKCU. Para un análisis delta esta capacidad es de importancia elemental.
  • Servicios de Windows
    Un empaquetador de software debe ser capaz de entender los servicios de Windows y manejar/modificar estos servicios en su script si es necesario. El conocimiento de WMI es extremadamente útil. Con WMI es posible, por ejemplo, consultar el estado del servicio instalado después de una instalación y reaccionar a esta información en el script si es necesario.
  • Derechos NTFS y gestión de usuarios
    Especialmente en el análisis de errores es necesario que se detecten los errores que se deben a una falta de autorización (sistema operativo).
  • Conocimiento de DOS
    Todo empaquetador de software debería ser capaz de dominar al menos los comandos básicos del DOS. A pesar de todos los medios, de vez en cuando sólo queda la línea de comandos como último recurso.
  • Lenguajes de script
    Los lenguajes de scripting son deseables, pero no son un requisito básico (al menos en los paquetes normales). Cuando un empaquetador de software puede utilizar VBS, JS, KIX, AUTOIT, etc., se abren posibilidades técnicas completamente nuevas. Estas posibilidades pueden utilizarse para superar problemas que antes se consideraban irresolubles. "¡No se puede hacer, no existe!" Si una función no está incluida de forma nativa en , esta funcionalidad puede ser mapeada a través de un lenguaje de scripting (en su mayoría).
  • Protocolos de red (TCP/IP)
    "Conocimientos básicos saludables" en el área de "internetworking" también deben estar disponibles. Un empaquetador de software debe ser capaz de analizar y calificar los errores o de solucionarlos él mismo. Estas habilidades también incluyen conocimientos en el área de la "resolución de problemas de IP" básicos.
  • Conocimiento básico de las aplicaciones en general
    Todas las aplicaciones son similares en su estructura básica. Suele haber elementos de menú donde (y a través de los cuales) se puede configurar la aplicación. La mayoría de las aplicaciones escriben sus valores en el registro. Con estas dos ideas, un empaquetador de software es capaz de ver una aplicación desde la perspectiva del empaquetado y abordar el empaquetado adecuado (las tecnologías de instalación, como MSI, etc., se tratarán más adelante).
  • Conocimiento básico de las redes cliente-servidor y de los sistemas operativos de red
    Como muy tarde, cuando se vaya a empaquetar una aplicación para un servidor (o servidor de terminales), el empaquetador de software debe estar familiarizado con los fundamentos del sistema operativo del servidor correspondiente.

Tecnologías de la instalación

Básicamente, se pueden distinguir los siguientes tipos de tecnologías de instalación:

  • MSI
    La tecnología Microsoft Installer se está convirtiendo en el estándar "de facto" en la instalación de software. Un paquete MSI ofrece una rutina de instalación transparente con sólidos mecanismos de control de calidad. Los paquetes MSI simplifican la reparación o desinstalación de aplicaciones. Muchos productos incluso controlan la migración de la aplicación a una nueva versión de forma completamente automática. Un paquete MSI no debe (como buena práctica) ser reempaquetado utilizando un análisis delta. Las interrelaciones técnicas del sistema de una instalación MSI son muy complejas y se pueden aprovechar los completos mecanismos de control de calidad de la tecnología de Microsoft Installer.
  • Setup.exe (Configuración heredada / instalación parametrizada)
    Por regla general, un Setup.exe de este tipo (¡y esto no se refiere a las instalaciones que llaman a una instalación MSI a través de un Setup.exe!) significa que se debe crear un análisis delta para este paquete. Si es necesario, este Setup.exe también puede ser llamado de forma parametrizada. Especialmente las rutinas de configuración de InstallShield ofrecen la función de crear un archivo de respuesta para la configuración de la aplicación, que a su vez puede ser utilizado en el contexto de una distribución para la configuración automática.

    PERO:
    Antes de utilizar este procedimiento, hay que responder a las preguntas sobre cómo debe tratarse el envase en toda la cadena de proceso.

Flexibilidad

La flexibilidad es una necesidad absoluta, especialmente en los envases de aplicación. Prácticamente en ningún lugar se enfrenta uno a nuevos retos con más rapidez y regularidad que en el envasado de aplicaciones. La rutina y el empaquetado del software sólo van juntos hasta cierto punto. Básicamente, cada requisito de embalaje puede o debe tratarse como un proyecto independiente. Cada proyecto tiene sus riesgos y tropiezos. Además, todo proyecto requiere flexibilidad para adaptarse rápidamente a nuevas situaciones y cambios.

Competencias

Esta sección enumera las áreas de competencia y las habilidades/conocimientos que debe poseer un empaquetador de software. Es indiscutible que esta información no representa una obligación para todos los empleados, sino que es sólo una recomendación en cuanto a las áreas que se abordan en el embalaje del software. Aquí se enumeran sólo las áreas, no la profundidad requerida en cada área. Esta evaluación en profundidad debe hacerse por separado en función de las necesidades de la empresa en particular. Sobre la base de la información obtenida, se pueden elaborar opciones de apoyo / medidas de apoyo específicas para los empleados que están dentro del rango de conocimientos de un empaquetador de software.

(Re)Embalaje

  • Manejo de la tecnología de instalación de Windows (MSI, MST, MSP, MSM)
  • Manejo de la tecnología Snapshot
  • Manejo de herramientas de análisis (SysInternals)
  • Manejo de la virtualización (VMware, Hyper-V)
  • Manejo de herramientas de empaquetado (AdminStudio, Ivanti, ZenWorks, etc.)
  • Otros lenguajes de programación y scripting:
    • Dos Batch
    • Visual Basic Script
    • Power-Shell
    • AutoIT

Cliente de sistemas operativos

Windows 8, 10 Administración, instalación y configuración

Servidor de sistemas operativos

  • Windows Server, instalación y configuración
  • Gestión de usuarios de dominio de Windows
  • Servicios de terminal de Windows
  • Administración de Active Directory (recursos)

Cliente de aplicaciones

  • MS Office
  • MS Outlook
  • IBM Notes
  • MS Edge, Firefox, Google Chrome
  • Adobe Acrobat (Reader y producto completo)
  • Java Runtime Environment (+JDK)
  • .NET (Runtimes), VC++ Runtimes
  • Plug-Ins
  • MS Hot fixes y Service packs

Servidor de aplicaciones

  • MS SQL Server
  • MS Internet Information Server
  • Servicios de actualización de Windows (WSUS)
  • MS Hot fixes y Service packs
  • Administración de Citrix Presentation Server
  • Manejo de aplicaciones de Citrix Presentation Server
  • SDK de Citrix Presentation Server

Tecnología de Microsoft

  • Registro de Windows, sistema de archivos, ACL, UAC
  • Tecnología MSI
  • WMI / WSH / ASDI
  • Instalación, configuración del controlador (WDK) (también certificación)
  • Kit (s) de recursos
  • Servicios y procesos

TCP/IP

  • Configuración de TCP/IP en el cliente
  • Solución de problemas de TCP/IP
  • Conocimientos básicos de DHCP
  • Conocimientos básicos de DNS
  • Detección y resolución de conflictos de direcciones IP en el cliente

Presentación

  • Estructura y diseño de una presentación
  • Preparación de una presentación
  • Realización de una presentación

Modelos de enfoque de proyectos

  • Configuración del proyecto
  • Encuentro con la cultura
  • Creación de informes
  • Escalada
  • Gestión del tiempo
  • Trabajo priorizado
  • Reportando
  • Creación de documentación

Comprensión del proceso

  • Comprensión de roles
  • Conocimientos básicos de ITIL (si corresponde)
  • Proceso de mejora continua

Habilidades sociales

  • Comunicación
  • Trabajo en equipo
  • Habilidad critica
  • Iniciativa propia
  • Creatividad
  • Inglés
  • Comprensión del servicio
  • Acción de resolución de problemas
  • Adquisición independiente de conocimientos
  • Conocimiento de terminología especializada