DevOps y los sistemas heredados: un matrimonio bien avenido

  • Gestión de apps

A pesar de lo ágil que es dejar atrás la documentación y enfocarse en la colaboración, la complejidad de los sistemas heredados significa que necesita obtener una comprensión clara de lo que puede y no puede hacer y de alguna manera documentarlo.

Si se trata de una restricción, no está disponible para discusión. La forma en que el sistema heredado administra los datos y el proceso con el que se trata es de gran importancia. Debe comprender eso trabajando con los equipos de soporte heredados y, en algunos casos, realizando pruebas exploratorias en los sistemas heredados para confirmar su comportamiento. Las pruebas exploratorias de los componentes heredados le permiten acumular conocimiento del comportamiento y documentar esto como parte del conocimiento necesario para desarrollar un servicio integral.

Es posible que se requiera un pequeño sprint arquitectónico, pero todas estas son soluciones potenciales y primero es necesario tener una visión realista de los problemas que su equipo podría enfrentar. Si estos problemas no se gestionan, aparecerán en la prueba (si tiene suerte) y en el servicio en vivo (si no lo está). Una vez entendidos y documentados, los comportamientos y restricciones de los componentes heredados se pueden compartir entre todos los escuadrones de desarrollo.

Latencias de datos en los servicios

Es probable que los sistemas heredados utilicen estrategias de optimización del rendimiento basadas en el procesamiento por lotes de las actualizaciones para aprovechar el "tiempo de inactividad" nocturno y crear ventanas de lotes durante la noche para procesar los datos. Entonces, aunque una actualización puede enviarse al sistema heredado como parte de una interacción del cliente con una aplicación móvil, el impacto descendente puede depender de una actualización por lotes durante la noche, como la provisión de un servicio en el sistema heredado basado en un exitoso aplicación del cliente, administrada por una aplicación móvil donde la confirmación se proporciona al cliente de inmediato. Esto causa problemas en el diseño del servicio, la implementación y pondrá desafíos en las pruebas de extremo a extremo de la solución. Ciertamente impondrá restricciones a la automatización de pruebas y las perspectivas de probar continuamente el servicio de extremo a extremo.

Pruebas, automatización y pruebas continuas

El desafío de probar un servicio extremo a extremo a partir de componentes tan heterogéneos es bastante grande. En general, los productos modernos del desarrollo de DevOps se pueden probar a través de la automatización y probarse continuamente con pocos problemas. Sin embargo, los componentes legados frágiles tendrán restricciones. Estos serán los entornos y datos. Si un componente heredado se aloja en las instalaciones, generalmente habrá un conjunto de entornos de prueba con los que se puede integrar un nuevo desarrollo para probar.

Estos generalmente se comparten con otros equipos de desarrollo y soporte, y los datos de prueba en el entorno heredado son a menudo difíciles de configurar y difíciles de actualizar. Esto limitará lo que se puede y no se puede hacer para probar el servicio de extremo a extremo.

La prueba de servicio automatizada de extremo a extremo puede realizarse con mucho trabajo y una configuración personalizada, pero será frágil y difícil de mantener y puede generar algunos resultados falsos. Será necesario un enfoque basado en el riesgo para administrar las pruebas de servicio de extremo a extremo y la dinámica de las pruebas será diferente entre los componentes modernos y heredados.

El componente heredado a menudo se trata como una API de terceros sobre la que tenemos poco control. Se debe considerar la opción de posiblemente anular el componente heredado. Pero, como sea que esté hecho, no será perfecto. Se basará en el riesgo y requerirá comprensión y acuerdo como enfoque.

Al crear un servicio de extremo a extremo en un entorno híbrido, a menudo nos enfrentamos al punto de encuentro entre dos mundos diferentes. Necesitamos una comprensión clara de cómo funcionan esas dos operaciones y los riesgos involucrados en su configuración única, ya que cada desarrollo que incorpore componentes heredados será individual. Siempre habrá dificultades. Sin embargo, hacer todo lo posible por anticipado los reducirá y solo aumentará sus posibilidades de éxito.

Descubre la innovación

Para asegurar el éxito empresarial, ahora y a futuro, es imprescindible maximizar el retorno de la inversión existente en software, a la vez que innovar y adoptar nuevas tecnologías. Los retos que hay abordar para competir en un mundo de TI Híbrida incluyen DevOps, Seguridad, Gestión de riesgos y Análisis predictivo. Puedes obtener más información sobre cómo abordar estos retos e innovar en este enlace.