Las leyes del arquitecto frugal
“Las 7 Leyes de Vogels: Rediseñando la Arquitectura de Sistemas para el Futuro”
Los desarrolladores necesitan convertirse en ‘Arquitectos Frugales’, dijo Werner Vogels, Vicepresidente y Director de Tecnología de Amazon.com, en el evento re:Invent el jueves pasado, compartiendo un conjunto de reglas simples para construir arquitecturas modernas, conscientes de los costos y sostenibles.
Siguiendo esta filosofía, la serie de leyes que propone Vogels, presentadas en su sitio web ‘The Frugal Architect’, abordan un aspecto crucial en la arquitectura de sistemas: integrar el coste como un factor determinante en el diseño y la operación de sistemas tecnológicos.
Estas leyes enfatizan la importancia de alinear los gastos tecnológicos con los objetivos y modelos de negocio, proporcionando una guía valiosa para la creación de estructuras eficientes y económicamente viables, fundamentales en el desarrollo de software y sistemas.
Vamos a hacerles una lectura, pero no te pierdas el parrafo final.
Ley I: “Hacer del Costo un Requerimiento No Funcional.”
"Las empresas pueden fracasar por no considerar el costo en cada etapa del negocio – desde el diseño hasta el desarrollo y la operación."
A pesar de que los arquitectos de sistema ya toman en cuenta el costo de manera implícita, esta ley destaca la necesidad de visibilizar el costo como un requerimiento no funcional explícito, siguiendo la lógica de la evaluación de riesgos y la viabilidad. No es una propuesta revolucionaria, pero resalta la importancia de mantener el costo como una prioridad constante en todas las etapas del ciclo de vida del desarrollo de software, lo cual puede ser una práctica que no todas las metodologías logran enfatizar de manera suficiente.
Ley II: “Los Sistemas que Perduran Alinean el Costo al Negocio.”
"Es importante encontrar la dimensión sobre la cual vas a ganar dinero, y luego asegurarte de que la arquitectura siga el dinero."
La segunda ley sugiere alinear de forma estrecha los gastos de infraestructura y operación con el modelo de negocio subyacente, lo cual es esencial para la sostenibilidad de un sistema. El concepto de “seguir el dinero” resulta una simplificación útil, pues insta a que la arquitectura se diseñe con la rentabilidad en mente, aunque puede sobresimplificar los modelos de negocio que son más complejos y no escalan de manera lineal.
Ley III: “La Arquitectura es una Serie de Compromisos (Trade-offs).”
"Todo falla, todo el tiempo". Ser capaz de defenderse contra el fracaso significa invertir en resiliencia, pero el rendimiento puede pagar el precio."
Esta ley resalta una verdad innegable de la arquitectura de sistemas: toda decisión implica un compromiso. Si bien la necesidad de balancear costo, resiliencia y rendimiento es bien entendida, esta ley pone un enfoque en la ‘frugalidad inteligente’, enfatizando la maximización de valor en lugar de la simple reducción de gastos, lo que va más allá del ahorro e involucra una reflexión sobre la calidad de las inversiones.
Ley IV: “Los Sistemas No Observados Conducen a Costos Desconocidos.”
"Si no puedes medirlo, no puedes gestionarlo". Rastrear la utilización, el gasto, los errores y más, es crucial para la gestión de costos."
El monitoreo es una práctica estándar en la gestión de sistemas; sin embargo, esta ley enfatiza la importancia de hacerlo de manera que fomente prácticas sostenibles y economías en la operación. Aunque la observación meticulosa es esencial para una gestión correcta, la ley reconoce que este enfoque puede llevar a cambios en el comportamiento y la cultura organizacional hacia la eficiencia en costos.
Ley V: “Las Arquitecturas Conscientes de Costos Implementan Controles de Costos.”
"Definir niveles permite compensaciones entre costo y otros requisitos. El control granular sobre los componentes optimiza tanto el costo como la experiencia."
El quinto principio se centra en la idea de la infraestructura ajustable, apoyando la noción de que los sistemas deben permitir optimizaciones de costos basadas en la crítica y la flexibilidad de sus componentes. Aunque en la práctica muchos sistemas ya operan con esta filosofía, particularmente aquellos basados en microservicios, subraya la importancia de hacer estos ajustes de manera deliberada, alineada con la rentabilidad y los ingresos del negocio.
Ley VI: “La Optimización de Costos es Incremental.”
"La frugalidad requiere persistencia – reduciendo incrementalmente latencias y costos de infraestructura, podemos optimizar el costo para servir."
La ley aboga por una visión continuista en la optimización de costos, subrayando que las mejoras son un proceso sin fin y que las pequeñas eficiencias se acumulan para marcar diferencias significativas a gran escala. Reconoce que el ahorro y la optimización no son eventos únicos, sino iterativos, y que los ahorros conseguidos pueden reasignarse a la innovación, una relación que enfatiza el papel de la gestión de costos en la capacidad de innovar de la empresa.
Ley VII: “El Éxito Incuestionable Conduce a Suposiciones.”
"Una de las frases más peligrosas en el lenguaje inglés es: 'Siempre lo hemos hecho de esta manera'."
Esta ley advierte sobre el peligro de la complacencia en el éxito, promoviendo una actitud de cuestionamiento constante y una mentalidad abierta a nuevas tecnologías, enfoques y mejoras. Al destacar la trampa del “siempre lo hemos hecho de esta manera”, motiva una cultura de innovación continua, aunque esta es una idea ya conocida y celebra, va más allá de ser simplemente una práctica recomendada, convirtiéndola en una norma operativa crucial para evitar el estancamiento y promover la adaptabilidad en la tecnología y las prácticas de negocio.
Mientras que estas leyes subrayan la importancia de la eficiencia y la gestión de costos, también plantean una pregunta fundamental: ¿Es posible armonizar estos aspectos con las demandas de un mercado rápido y las expectativas crecientes de servicio al cliente? Este desafío, inherente al mundo tecnológico actual, nos insta a considerar si podemos alcanzar un equilibrio que satisfaga todas estas facetas sin comprometer ninguna de ellas significativamente. La respuesta a esta duda podría definir el futuro de la arquitectura de sistemas y el desarrollo de software.
Este texto es una muestra de contenido generado por un Modelo de Lenguaje, demostrando el potencial de esta tecnología en la co-creación de contenidos. Las respuestas y análisis presentados aquí son el resultado de la interpretación y síntesis de información por parte del LLM, basado en su entrenamiento y las directrices proporcionadas. ¿Quieres saber más?