Microsoft Azure Well-Architected Framework: ¿qué es y para qué sirve?

Marco Buena Arquitectura en Azure: equilibrio

En marco del Build 2020, Microsoft lanzó una ruta de aprendizaje sobre el “Marco de Buena Arquitectura” de Azure. Este marco ayuda a muchas personas en la creación de soluciones en la nube alineadas con los requisitos técnicos y de negocio identificados.

Si pensamos en una arquitectura ideal de una solución de software, seguramente elegiríamos el entorno más seguro, con mayor rendimiento, con máxima disponibilidad y eficacia posible. En un mundo ideal, sería lo que decimos ante un comité de Arquitectura en nuestra organización.

No obstante, en el mundo real, esto no siempre es posible: normalmente el entorno ideal impacta en el costo, entendiendo como “costo” el dinero de servicios mensuales, el tiempo de construcción y el costo de operación. Las organizaciones no tienen las mismas posibilidades de inversión económica, dependiendo su tamaño, situación particular y prioridades, y esto puede impactar directamente en las decisiones de arquitectura que se tomen.

El “Marco de Buena Arquitectura” ayuda a las personas a tomar decisiones basadas en el costo, las prioridades de la organización y el riesgo. En esta publicación vamos a conocer algunos detalles que te ayudarán a comprenderlo mejor.

¿Qué es el “Marco de Buena Arquitectura” de Azure?

El Marco de “Buena Arquitectura” es en sí mismo un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Este marco se compone por 5 pilares y un conjunto de principios:

  • Los 5 pilares son: optimización de costos, excelencia operativa, eficiencia del rendimiento, confiabilidad y seguridad.
  • Los principios de diseño son aspectos que se deben tener en cuenta en cualquier sistema, e incluyen: la evolución de la arquitectura, el uso de los datos para tomar decisiones, la formación y procesos del equipo de trabajo, y la automatización.

El Rol de la Arquitectura y del Arquitect@

El rol del equipo de arquitectura en las organizaciones es vital: son aquellas personas que equilibran y alínean los requisitos de la organización con las capacidades técnicas necesarias para crear soluciones (y ahora seguramente entenderás la foto de esta publicación). Si estas capacidades no están disponibles, son los encargados de acompañar en la formación y habilitación de los colaboradores para maximizar los resultados.

La arquitectura final de una solución saludable es un equilibrio único entre riesgo, costo y capacidades en todo el sistema, sus componentes y personas. Entender esto es clave, y si no comprendemos que las personas juegan un rol fundamental corremos un riesgo de desequilibrar el sistema en su completitud.

El “Marco de Buena Arquitectura” de Azure ayuda a las organizaciones a lograr ese equilibrio. En si mismo no es una guía aplicable a todos los sistemas que diga “que hacer y que no hacer”, sino que proporciona el marco necesario para tomar las mejores decisiones posibles de acuerdo a diversos aspectos.

Pilares del Marco

No existe un único enfoque que sirva a todas las personas y sistemas para diseñar una arquitectura, pero hay algunos conceptos universales que se aplican independientemente de la arquitectura, la tecnología o el proveedor de servicios en la nube.

Ilustración en la que se muestran los pilares del Marco de arquitectura de Azure

El Marco de “Buena Arquitectura” de Azure consta de cinco pilares:

  • Optimización de costos; este pilar indica que se debe diseñar una arquitectura de nube para que sea rentable. Si una arquitectura no es rentable desde el punto de vista de su desarrollo y operaciones, debemos revisarlo. Esto nos lleva a identificar toda ineficacia y desperdicio en el gasto de los servicios en la nube y construcción de la solución para garantizar que el dinero se invierta sea sólo en aquello a lo que se puede sacar más partido. Este enfoque puede resultar duro para las personas más técnicas, pero desde el rol del equipo de arquitectura es MUY importante tenerlo en cuenta.
Ilustración en la que se muestran una calidad, velocidad y eficacia cada vez mayores al tiempo que los costos se mantienen bajos.
  • Excelencia operativa: diseñar pensando en cómo se va a operar es fundamental, y esto involucra prácticas modernas como DevOps. No tenemos que dudarlo: implementar simples pero efectivas prácticas de agilidad, integración continua, despliegue continuo, pruebas continuas y monitoreo abarcativo nos permiten tender a la excelencia operativa y reducir costos. Y no debemos olvidarnos que incluir en la arquitectura base y su construcción aspectos como supervisión, detección de errores y problemas antes que se produzcan ó antes que los clientes se den cuenta, reducen costos que a veces pueden estar ocultos en los sistemas que diseñamos y construimos.
  • Eficacia del rendimiento: este punto es interesante, dado que incluye capacidades nativas de la nube para PaaS (escalabilidad) y características que tenga la solución de software construida (estar preparada para aprovechar la escalabilidad). ¿Qué significa esto? Muy simple: la demanda de servicios puede cambiar si por ejemplo estamos en un “hot-sale”, por lo que es importante que la arquitectura que diseñamos y construimos pueda ajustarse a este cambio. No basta con “escalar” si dicho escalamiento no puede ser aprovechado eficazmente por la solución.
Ilustración en la que se muestra cómo los recursos de la nube se escalan de forma dinámica en función de la demanda, lo que resulta en un uso muy eficiente. Cuando los recursos se implementan en un nivel fijo, el resultado es un uso ineficaz cuando hay poca demanda y escasez durante los períodos de alta demanda.
  • Confiabilidad: ¿qué es peor que un servicio crítico o al menos necesario no esté disponible? Sí, hay algo peor: que no podamos recuperarlo. Es importante que un sistema sea confiable, pero no necesariamente porque no falle, dado que como hemos visto a veces hay limitaciones económicas que impiden tener alta disponibilidad. Es importante considerar en el diseño de un sistema que los mecanismos de recuperación tras un error cumplan con los plazos de tiempo requeridos por las partes interesadas y los clientes.
Ilustración en la que se muestran dos máquinas virtuales en una red virtual. Una de las máquinas aparece como errónea, mientras que la otra trabaja para atender las solicitudes de los clientes.
  • Seguridad: los datos son, finalmente, el elemento más valioso para las organizaciones modernas. Es por eso que la seguridad en la protección de acceso y la protección de uso es fundamental. El mundo del software moderno es una red inimaginable de APIs que exponen y consumen servicios, y que en la mayoría de los casos están expuestas en forma pública. Velar por la seguridad, limitación de superficie de ataque y respuesta ante amenazas desde el diseño de la arquitectura y su construcción es un pilar fundamental.
Ilustración en la que se muestran los tipos de amenazas y ataques de seguridad que podrían afectar a los datos en la nube.

Como hemos visto, los 5 pilares son aspectos guía que nos ayudan a tomar mejores decisiones. En sí mismo son simples, si bien tienen una complejidad a medida que nos sumergimos en sus detalles.

Principios de Diseño del Marco

Además de los 5 pilares comentados, una “Buena Arquitectura” incluye algunos principios de diseño que queremos repasar para comprender el marco en forma integral:

  • Permitir la evolución de la arquitectura: ninguna arquitectura es estática, por eso es importante que la arquitectura diseñada y construida pueda evolucionar mediante el aprovechamiento de nuevos servicios, herramientas y tecnologías a medida que estén disponibles en el proveedor.
  • Usar los datos para tomar decisiones: en las organizaciones modernas, la recopilación de datos en sí misma no sirve si no se diseñan modelos de análisis y uso para tomar decisiones. Asimismo, recopilar datos de la solución de software y analizarlos nos sirve para tomar decisiones sobre la arquitectura: desde los datos de costos hasta el rendimiento o la carga de usuarios, el uso de los datos le orienta para tomar las decisiones adecuadas en el entorno final (que es cambiante y dinámico). Inclusive, estos datos nos pueden ayudar a escalar (o no) una aplicación en el momento que se necesite.
  • Formar y desarrollar al Equipo de Trabajo: la tecnología en la nube evoluciona rápidamente, y un aspecto importante es que las personas que están detrás del diseño, construcción y mantenimiento de las soluciones que se soportan sobre la nube estén formadas y desarrolladas. Hay una parte que depende de las motivaciones personales, y hay otra que depende de los líderes y los procesos de cada área.
  • Automatizar, automatizar y automatizar: tal como lo especifica Microsoft: “la automatización de actividades manuales reduce los costos operativos, minimiza los errores cometidos en los pasos manuales y proporciona coherencia entre entornos”. Corto, simple y sencillo de entender :-).

Próximos Pasos

Te invitamos a conocer el Marco de la “Buena Arquitectura” a través de la ruta de aprendizaje en Microsoft Learn, como así también a conocer más detalles profundos en la documentación oficial.

¡Gracias por leer!

Pablo Ariel Di Loreto

View all posts
5 3 votes
Valora la Publicación
Subscribe
Notify of
guest
0 Comentarios
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x