Principios y objetivos de la Arquitectura Continua

Compartir esta publicación

Crear y mantener una arquitectura de software que siga siendo sostenible en el tiempo es un reto para los arquitectos y desarrolladores de software. Los arquitectos de software solían cumplir todos los requisitos, proporcionar todas las funciones y planificar todos los componentes del sistema a la vez con una gran arquitectura de software por adelantado, lo que implica completar y perfeccionar los diseños arquitectónicos antes de comenzar las implementaciones. Otra posibilidad es que los equipos produzcan arquitecturas emergentes, en las que los equipos de desarrollo comienzan a entregar la funcionalidad y dejan que los diseños arquitectónicos surjan, con poca planificación por adelantado. Desgraciadamente, ninguno de estos métodos tiene éxito a la hora de ofrecer una arquitectura sostenible. 

Principios de la arquitectura continua

En cuanto a la «Arquitectura Continua«, se trata de utilizar las herramientas adecuadas para tomar las decisiones correctas y apoyar la Entrega Continua, la Integración Continua y la Prueba Continua. La «arquitectura continua» es un enfoque basado en una caja de herramientas, no en un proceso formal.

Se basa en los siguientes principios que describen cómo los arquitectos de software pueden elaborar continuamente arquitecturas de software en el mundo actual de Agile, DevOps y la nube:

  • Céntrate en los atributos de calidad, no en los requisitos funcionales. Los requisitos de atributos de calidad impulsan la arquitectura.
  • Diseña para el cambio: aprovecha el «poder de lo pequeño». Los componentes grandes, monolíticos y fuertemente acoplados son difíciles de cambiar. En su lugar, aprovecha los elementos de software pequeños y poco acoplados.
  • La arquitectura de productos es más eficiente que el diseño de soluciones puntuales para proyectos y centra al equipo en sus clientes.
  • Retrasar las decisiones de diseño hasta que sean absolutamente necesarias: Diseñar arquitecturas basadas en hechos, no en suposiciones. No tiene sentido diseñar e implementar capacidades que quizá nunca se utilicen: es una pérdida de tiempo y recursos.
  • Arquitectura para construir, probar, desplegar y operar: La mayoría de las metodologías de arquitectura se centran exclusivamente en las actividades de construcción de software, pero los arquitectos e ingenieros también deben preocuparse por las pruebas, el despliegue y el funcionamiento para apoyar la entrega continua.
  • Modela la organización de tus equipos según el diseño del sistema en el que estas trabajando: La organización de los equipos determina la arquitectura y el diseño de los sistemas en los que trabajan.

Estos principios proporcionan un modelo útil, pero no son prescriptivos. Se complementan con las siguientes cuatro actividades esenciales:

  1. «Concéntrate en los atributos de calidad, que son los requisitos transversales clave que debe abordar una buena arquitectura.
  2. Impulsa las decisiones arquitectónicas, que son la principal unidad de trabajo de las actividades arquitectónicas.
  3. Conoce tu deuda técnica, cuya comprensión y gestión es clave para una arquitectura sostenible.
  4. Implementa bucles de retroalimentación, que nos permitan iterar a través del ciclo de vida del desarrollo de software y comprender el impacto de las decisiones arquitectónicas. La automatización es un aspecto clave de los bucles de retroalimentación eficaces.

Además, la arquitectura continua incluye una «caja de herramientas» arquitectónicas que incorpora un conjunto de herramientas probadas, como registros de decisiones, árboles de utilidad y tácticas arquitectónicas. Los arquitectos e ingenieros de software pueden ampliar esta caja de herramientas según sea necesario, añadiendo herramientas relevantes para sus contextos.

La Arquitectura Continua parte de sus problemas en lugar de promover modelos genéricos de organización o arquitectura. Hace operativo el cambio de proyecto a producto y aprovecha la potencia de las prácticas modernas de ingeniería de software. Es verdaderamente abierta. 

El objetivo de la Arquitectura Continua en el contexto de la Entrega Continua es acelerar el proceso de desarrollo y entrega de software aplicando sistemáticamente una perspectiva y disciplina de arquitectura de forma continua a lo largo del proceso.

Cómo aportar una perspectiva de arquitectura al proceso global, siguiendo cinco componentes clave de dicho proceso:

Información y seguimiento continuos

Integración continua (CI)

Liberación y despliegue continuos

Pruebas continuas

Implementación de la nube híbrida

La Arquitectura Continua también opera en dos dimensiones, el tiempo y la escala. La dimensión temporal aborda cómo los arquitectos de software habilitan las prácticas arquitectónicas en un mundo de ciclos de entrega cada vez más rápidos. Mientras que la dimensión de la escala examina el nivel en el que operan los arquitectos de software. Los principios de la Arquitectura Continua se aplican sistemáticamente a todas las escalas, pero el nivel de enfoque y las herramientas utilizadas pueden variar.

Una ventaja clave de la Arquitectura Continua es que está impulsada por la retroalimentación; de hecho, el equipo solicita activamente la retroalimentación de los equipos de desarrollo, los equipos de pruebas, los equipos de DevOps y sus socios comerciales. Utilizan este feedback para probar continuamente la arquitectura y gobernar la evolución de la misma basándose en los datos. Estos datos se recogen a través de una serie de canales, por ejemplo, el «prototipado», las pruebas A/B, los bucles de retroalimentación de las pruebas continuas, las revisiones manuales y la inspección automatizada del código o cualquier número de enfoques que proporcionen una retroalimentación sustantiva sobre las cualidades de la arquitectura.

Objetivos de la arquitectura continua

Crear una arquitectura que pueda evolucionar con las aplicaciones, que sea comprobable, que pueda responder a la retroalimentación y que, de hecho, sea impulsada por la retroalimentación.

Para hacer realidad la arquitectura empresarial

Para que la arquitectura de la solución sea sostenible

Crear estrategias útiles en el mundo real, que se puedan poner en práctica

Los arquitectos de software crean productos a largo plazo, no sólo soluciones para proyectos. Los arquitectos de software tienen que considerar las actividades de arquitectura como una pasarela que sigue la vida de un producto (ya que pasa por diferentes etapas: de la cuna a la tumba).

Los arquitectos de software tienen que tomar decisiones, diseñar nuevas características, reconsiderar/reformar lo que han hecho dado el nuevo contexto en el que se encuentran. El diseño tiene que ser robusto ante futuros cambios.

Los arquitectos de software construyen productos con una visión holística. Detrás de esto hay dos ideas diferentes pero complementarias. En primer lugar, los arquitectos de software contemplan la arquitectura desde una perspectiva de pila completa, teniendo en cuenta todas las diferentes capas sobre las que se construyen los productos: infraestructura, red, middleware, aplicación y urbanismo. Por otro lado, los arquitectos de software también tienen que asegurarse de que el producto encaja bien en el sistema. Aquí los arquitectos de software se centran en la estrategia de integración con otros sistemas con los que los productos tienen que comunicarse.

Los arquitectos de software prueban y validan la arquitectura poniéndola en práctica, no validando documentos. Las diapositivas de Powerpoint y los diagramas de ArchiMate no van a producción. El código desarrollado por su equipo sí. Y cuanto antes, mejor.

Los equipos que aplican la Arquitectura Continua a nivel de aplicación individual pueden notar que permite un modelo de entrega más sostenible y una plataforma más resistente frente a futuros cambios. Las empresas que aprovechan la arquitectura continua a nivel empresarial pueden observar una mayor eficiencia en la entrega de soluciones, un ecosistema más saludable de plataformas comunes y un mayor intercambio de conocimientos.

Si estás interesado en la Arquitectura de Software, te recomiendo que asistas a la Cumbre Global de Arquitectura de Software, que tendrá lugar en Barcelona ( 3 y 4 de octubre ) donde tendrás la oportunidad de hablar de arquitectura continua con los principales arquitectos de software.

Y si tienes un proyecto de arquitectura de software, háznoslo saber, ¡en Apiumhub somos expertos en este campo!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

Acerca de Apiumhub

Apiumhub reúne a una comunidad de desarrolladores y arquitectos de software para ayudarte a transformar tu idea en un producto potente y escalable. Nuestro Tech Hub se especializa en Arquitectura de Software, Desarrollo Web & Desarrollo de Aplicaciones Móviles. Aquí compartimos con usted consejos de la industria & mejores prácticas, basadas en nuestra experiencia.

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

Secured By miniOrange