¿Como diseñar y operar soluciones confiables, seguras, eficientes y rentables en la nube?

Maria Eugenia Guerra Soler
Bancolombia Tech
Published in
7 min readOct 11, 2023

El desafío

En la actualidad, aprovisionar soluciones y servicios en nube es una tarea que podemos realizar de forma casi inmediata. Sin embargo, el desafío no está en el despliegue de nuestras soluciones, sino en que estas cumplan con las mejores prácticas de seguridad, rendimiento, eficiencia, excelencia operacional y fiabilidad.

Es importante considerar estos aspectos cuando diseñamos la arquitectura de nuestra solución, así evitamos la apertura de brechas de seguridad y garantizamos la generación de soluciones costo eficientes que operen de la mejor manera, lo cual se traduce en entregar mejores resultados al negocio.

Tener soluciones con una buena arquitectura aumenta en gran medida la posibilidad de éxito comercial. En este articulo nos enfocaremos en el marco de buena arquitectura de AWS.

AWS Well Architected Framework

AWS Well-Architected Framework describe los conceptos claves, los principios de diseño y las prácticas recomendadas de arquitectura para diseñar y ejecutar cargas de trabajo en la nube.

El objetivo de este marco es permitir a los clientes evaluar y mejorar sus arquitecturas y comprender mejor el impacto comercial de sus decisiones de diseño. Esto a partir de un conjunto de preguntas fundamentales que le permiten comprender cómo una arquitectura específica se alinea con las mejores prácticas de la nube.

El Marco de buena arquitectura de AWS está fundamentado en 6 pilares, las cuales explicaremos a continuación:

Los 6 Pilares del AWS Well Architected Framework

Al momento de construir soluciones tecnológicas, es necesario que tengamos fundamentos sólidos para así diseñar sistemas confiables y eficientes. Es por esto que debemos conocer los 6 pilares que conforman el marco de buena arquitectura; los cuales constituyen una guía de principios para ayudar a los arquitectos de nube a crear y evaluar sus arquitecturas e implementar sistemas capaces de escalar a medida que crece la demanda en el tiempo.

Los 6 Pilares del AWS Well Architected Framework

1. Excelencia Operacional

Ejecutar y operar cargas de trabajo de manera eficaz, entregando valor al negocio, garantizando la mejora continua de los procesos y procedimientos.

Principios de Diseño

  • Realizar operaciones como código.
  • Realizar cambios reversibles, pequeños y frecuentes.
  • Documentación actualizada.
  • Mejorar los procedimientos operativos con frecuencia: mientras su carga de trabajo evoluciona, haga que sus procedimientos también lo hagan.
  • Anticipar los errores: realice ejercicios “premortem” para identificar los posibles orígenes de errores de manera que se puedan eliminar o mitigar.
  • Aprender de todos los errores operativos: implemente mejoras a partir de las lecciones aprendidas de todos los eventos y los errores operativos. Desarrolle un plan de mitigación que limite o evite la reaparición del problema.

2-Seguridad

Capacidad para proteger la información, los sistemas y activos mientras se entrega valor al negocio.

Principios de diseño

  • Implementar una sólida base de identidad: Implementar la seguridad utilizando el principio de mínimo privilegio.
  • Proteger data en tránsito y en reposo.
  • Aplicar seguridad en todas las capas.
  • Mantener la trazabilidad: monitoreo, alertas y auditoría de acciones y cambios.
  • Prepararse para eventos de seguridad.
  • Mantener las personas alejada de los datos: reducir o eliminar el acceso directo o procesamiento manual de los datos.

3-Fiabilidad

Capacidad de una carga de trabajo de realizar su función prevista de forma correcta y constante cuando se espera.

Principios de diseño

  • Recuperarse de los errores automáticamente.
  • Probar los procedimientos de recuperación.
  • Escale horizontalmente para aumentar la disponibilidad de la carga de trabajo agregada.
  • Dejar de suponer la capacidad.
  • Administrar los cambios en la automatización.

4- Eficiencia en el desempeño

Habilidad para utilizar recursos informáticos de manera eficiente para cumplir con los requisitos del sistema y mantener esa eficiencia a medida que la demanda cambia y la tecnología evoluciona.

Principios de diseño

  • Democratice las tecnologías avanzadas: consumir tecnologías como servicio.
  • Utilizar arquitecturas sin servidor.
  • Experimente con más frecuencia.
  • Considere la afinidad mecánica: Comprenda de qué manera se consumen los servicios en la nube y siempre utilice el enfoque tecnológico que se adapte mejor a sus objetivos de carga de trabajo.

5-Optimización de Costos

Capacidad para ejecutar sistemas a fin de entregar valor de negocio al menor precio.

Principios de diseño

  • Implementación de la administración financiera en la nube.
  • Adopción de un modelo de consumo.
  • Medir la eficiencia.
  • Análisis y asignación de gastos.
  • Dejar de gastar dinero en tareas complicadas eliminando carga operativa.

6-Sustentabilidad

Mejorar continuamente los impactos de sustentabilidad al reducir el consumo de energía y aumentar la eficiencia en todos los componentes de una carga de trabajo al maximizar los beneficios de los recursos aprovisionados y minimizar los recursos totales requeridos.

Principios de diseño

  • Entender el impacto de su carga de trabajo.
  • Establecer objetivos de sustentabilidad.
  • Maximizar el uso: diseño eficiente asegurando la máxima utilización de los recursos de energía y de hardware.
  • Anticipar la adopción de Software y Hardware más eficiente.
  • Uso de servicios administrados.
  • Reducir el impacto de su carga de trabajo: reducir la cantidad de energía o recursos necesarios para utilizar sus servicios.

AWS Well Architected Tool

Esta herramienta está diseñada para revisar el estado de nuestras aplicaciones con respecto a las mejores prácticas de arquitectura, por medio de la cual debemos responder una serie de preguntas que estan divididas por cada uno de los pilares y que mediante su análisis nos permite determinar cuáles son las prácticas recomendadas para nuestra carga de trabajo, así como generar un informe de resultados con el plan de mejora que necesitamos ejecutar para mitigar los riesgos identificados. El servicio está destinado a quienes participan en el desarrollo de productos técnicos, como: arquitectos, los desarrolladores, los miembros del equipo de operaciones, lideres técnicos.

La herramienta se puede integrar con AWS Trusted Advisory y AWS Service Catalog AppRegistry, para obtener información de la carga de trabajo de forma automática para las preguntas soportadas.

Flujo del AWS Well-Architected Tool

¿Como iniciar a utilizar la herramienta?

Defina su carga de trabajo

Entre a la consola de AWS Well-Architected Tool, cree una nueva carga de trabajo y especifique sus propiedades, debe seleccionar la(s) regiones de aws donde se encuentra desplegada la aplicación, asi como indicar si utiliza otro proveedor de nube o instalaciones on premises.

Definición de la carga de trabajo.

Seleccione el o los enfoques a aplicar

Para mejorar la aplicación del marco de buena arquitectura , los enfoques proporcionan plantillas con cuestionarios contextualizados y orientados a diferentes casos de uso (ML, Serverless, Analitica de Datos, IoT, SaaS), por medio de los cuales se pueden agregar un conjunto de preguntas adicionales que se deben tener en cuenta en caso de que nuestra aplicación así lo requiera . Adicionalmente podemos configurar enfoques personalizados y utilizarlos en la herramienta.

Enfoques Disponibles

Revisión de Arquitectura

Inicie la revisión lo cual lo llevara a responder las preguntas correspondientes por cada pilar. Si una de las preguntas no aplica a su carga de trabajo puede marcarla como no aplicable por completo o marcar específicamente una práctica particular.

Puede editar la configuración para priorizar la ejecución de los pilares de acuerdo con su necesidad.

Ejemplo: Pregunta Pilar Fiabilidad

Generación de Informe Plan de Mejora

Tenemos un panel desde donde podemos observar los hallazgos encontrados y su nivel de riesgo, así como el plan de mejora a ejecutar con los links a la documentación ampliada de la práctica recomendada, de forma adicional podemos descargar el informe completo de la ejecución en formato pdf.

Para abordar los hallazgos encontrados, se sugiere priorizar por la criticidad del riesgo en orden (alto, medio, bajo) e incluir la ejecución de estas recomendaciones dentro del plan de trabajo de la aplicación.

Adicionalmente es importante la transparencia y veracidad de nuestras respuestas al momento de diligenciar las preguntas es la clave para garantizar que los resultados estén acorde a la realidad de lo que tenemos, debemos recordar que no existen respuestas buenas o malas.

Como buena práctica debemos realizar la revisión de nuestras soluciones al menos 1 vez al año o cada vez que la aplicación sufra cambios representativos esto para garantizar la mejora continua durante el ciclo de vida de la carga de trabajo.

Finalmente, quiero mencionar que la ejecución de la herramienta no tiene ningún costo asociado, por lo que los invito a utilizarla, revisar sus arquitecturas e identificar las mejoras a realizar, así como a aplicar cada uno de los principios de diseño que nos enseña el AWS Well Architected Framework al momento de crear, diseñar y operar cargas de trabajo en la nube.

Referencias:

https://aws.amazon.com/es/architecture/well-architected/

https://aws.amazon.com/es/well-architected-tool/

https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html

--

--

Maria Eugenia Guerra Soler
Bancolombia Tech

Ingeniero Cloud, apasionada por la tecnologia y la computación en la Nube