La arquitectura continua ofrece flexibilidad para adaptarse a los nuevos requisitos comerciales y necesidades de los usuarios.

por Isaac Sacolick

Las largas fases de diseño para la arquitectura de software y los sistemas solían ser un paso necesario antes de que los equipos de ingeniería comenzaran a desarrollar aplicaciones y sistemas. Los arquitectos revisarían los requisitos de alto nivel, considerarían los estándares empresariales y diagramarían una arquitectura en las plataformas, los patrones de diseño y los componentes para usar en el proceso de desarrollo de software.

Algunas organizaciones llevan la planificación de la arquitectura un paso más allá si se requieren nuevas tecnologías o componentes de software. Han establecido  juntas de revisión de arquitectura para brindar transparencia en la toma de decisiones, resaltar el riesgo de la arquitectura, alinear presupuestos y examinar otras consideraciones que afectan las prácticas de desarrollo sostenible. Otros cuestionan la efectividad de las juntas de revisión de arquitectura porque obstaculizan la autonomía, interrumpen el flujo de desarrollo y pueden conducir a una documentación excesiva.

Los equipos de desarrollo ágiles buscan autonomía y empoderamiento para responder al cambio en lugar de seguir un plan prescriptivo; este es uno de los valores clave del Manifiesto para el desarrollo ágil de software . Pero los líderes tecnológicos buscan plataformas reutilizables, estándares de desarrollo y modelos operativos sostenibles para lograr eficiencia, calidad y confiabilidad mientras reducen la deuda técnica.

El equilibrio se puede lograr a través de principios de arquitectura continua . El Manifiesto de Arquitectura Continua apoya el “pasar de un antiguo enfoque en cascada donde la arquitectura se realizaba principalmente antes de que se implementaran las características a una pista continua”. Los principios incluyen diseñar “productos a largo plazo, no solo soluciones de proyectos” y “validar la arquitectura mediante la implementación”. Sus principios son adecuados para los equipos que desarrollan arquitecturas en la nube , aprovechan las mejores prácticas de desarrollo y usan pruebas de concepto  y picos ágiles para validar sus soluciones.

Me puse en contacto con Pierre Pureur, arquitecto de software de Continuous Architecture , para conocer sus puntos de vista sobre el manifiesto y las prácticas. Dijo: “El enfoque de arquitectura continua ofrece un camino probado para crear y mantener arquitecturas de software sostenibles en la era de la agilidad, los desarrollos y la nube. Destaca la importancia de las actividades esenciales, incluido el enfoque en los requisitos de los atributos de calidad, la toma de decisiones arquitectónicas, el conocimiento de su deuda técnica y la implementación de circuitos de retroalimentación”.

Automatice la creación de entornos de desarrollo y prueba

Un primer lugar para comenzar con la arquitectura continua puede ser en las prácticas fundamentales de desarrollo, como la automatización de la infraestructura como código (IaC) para acelerar los entornos de desarrollo y prueba. La automatización ayuda a bloquear las configuraciones y los patrones estándar que buscan los arquitectos y proporciona la agilidad que requieren los equipos de desarrollo.

Amir Rozenberg, vicepresidente de gestión de productos de Quali, está de acuerdo y afirma: “Las organizaciones que entregan aplicaciones dependen y deben tener fácil acceso a entornos confiables, fácilmente disponibles y compatibles para potenciar sus canales de entrega continua de software”.

Rozenberg sugiere que los arquitectos se asocien con equipos devops para crear planos de infraestructura en la nube. Él dice: “Los equipos de Devops deben modelar planos de entorno para proporcionar la infraestructura de nube adecuada para sus integrantes comerciales, como equipos de desarrollo, gerentes de productos, evaluadores y preventas de una manera de autoservicio que elimina los tiempos de espera prolongados”.

Tim Lucas, fundador y codirector ejecutivo de Buildkite, está de acuerdo. “Una arquitectura continua, tanto técnica como cultural, requiere compromiso del equipo de desarrollo y del negocio”, dice. Un principio clave que sugiere es “crear un rol dedicado que se centre en la experiencia del desarrollador y sea responsable de ella”. Puede abordar la experiencia del desarrollador facilitando que los equipos de desarrollo se sirvan a sí mismos los entornos y las canalizaciones de implementación necesarias para desarrollar y probar su código. .

Tenga en cuenta las necesidades del cliente y del usuario al definir las arquitecturas de producción

Mientras que los equipos de desarrollo buscan productividad a través de la automatización, los líderes empresariales, incluidos los gerentes de producto, los científicos de datos y los oficiales de cumplimiento, también buscan agilidad de la arquitectura en los entornos de producción. Eso a menudo significa ampliar y reducir los entornos de producción debido a la demanda de los usuarios. A veces significa activar múltiples entornos en función de los requisitos de cumplimiento.

Lucas agrega un principio de diseño clave para los entornos de producción y sugiere “invertir en la reducción de fallas porque para que algo sea continuo, las interrupciones deben reducirse”.

Para los científicos de datos, la integración y las implementaciones a menudo tienen requisitos diferentes a los que son comunes para los equipos de desarrollo de software. Michael Berthold, cofundador y director ejecutivo de KNIME, dice: “El proceso de producción de ciencia de datos creado durante la integración es diferente de lo que creó el equipo de ciencia de datos, y el monitoreo en producción puede resultar en una actualización y reimplementación automáticas”.

La supervisión del uso y la infraestructura puede desencadenar la ampliación y reducción de entornos, pero la supervisión de modelos también puede desencadenar un cambio de configuración o una redistribución. Berthold dice que para las canalizaciones de ciencia de datos y aprendizaje automático, “el ciclo de implementación puede ser activado automáticamente por el proceso de monitoreo que verifica el proceso de ciencia de datos en producción, y solo un cambio grave obliga a reiniciar todo el proceso”.

La arquitectura debe centrarse en las posibilidades futuras

Los líderes empresariales a menudo se enfocan en oportunidades a corto plazo, y los equipos de desarrollo hacen sus mejores intentos para desarrollar componentes de software modulares y extensibles. Algunas mejores prácticas para soportar una arquitectura continua incluyen:

  • Desarrollo con arquitecturas nativas de la nube y sin servidor
  • Estandarización de canalizaciones de implementación
  • Apoyar las prácticas de prueba continuas
  • Creación de microservicios y soporte del ciclo de vida de la API
  • Aprovechar las soluciones de código bajo donde las plataformas simplifican y ayudan a evitar soluciones personalizadas

Vince Padua, vicepresidente ejecutivo y director de innovación y tecnología de Axway, se enfoca en arquitecturas abiertas y dice: “La integración y la colaboración B-to-B acelerarán su transformación digital construida sobre la base de las API y la nube. Debido a que los enfoques nativos de la nube y API primero han madurado hasta convertirse en una arquitectura abierta a todo, el tiempo y el costo de la innovación a través de asociaciones y colaboración han disminuido significativamente”.

Muchas empresas ahora están invirtiendo en software personalizado para experiencias de clientes, integraciones y flujos de trabajo digitalizados y deben considerar las mejores prácticas para preparar sus inversiones para el futuro. Padua sugiere: “Dado que el área de superficie de la empresa está centrada en API, se desbloquea más innovación al desagregar y reagrupar ofertas y cadenas de suministro en industrias y verticales. Hay inversiones significativas y oportunidades de crecimiento de puesta en marcha en las ofertas B-to-B para viajes, logística, almacenamiento, fabricación, préstamos, seguros y venta minorista boutique”.

Practicar la arquitectura continua requiere equilibrar lo que la empresa necesita hoy y lo que los equipos de desarrollo requieren para ser productivos, al mismo tiempo que se tiene una visión de cómo la organización puede admitir cambios, extensiones y nuevos requisitos futuros. Parte de la comprensión es que el equipo que trabaja en la implementación actual probablemente cambiará con el tiempo, por lo que los arquitectos buscan soluciones básicas que sean fáciles de aprender, que permitan a los nuevos miembros del equipo realizar cambios en el código sin temor y que tengan suficiente cobertura de prueba para validar los cambios. . La arquitectura continua reconoce la necesidad de desarrollar con patrones reutilizables, pero reconoce que la creación de un modelo perfecto no es realista dada la rapidez con la que cambian las necesidades comerciales y evolucionan las tecnologías.

Fuente: https://www.infoworld.com/article/3662290/3-ways-devops-can-support-continuous-architecture.html

Deja una respuesta