Menú Cerrar

Promoción de mejores prácticas en AWS

Adopción del marco de buena arquitectura de AWS

Morris & Opazo

Marco de buena arquitectura de AWS

Construya su base de AWS con las prácticas recomendadas en la nube

Promoción de mejores prácticas en AWS

Crear un sistema de software es muy parecido a construir un edificio: si los cimientos no son sólidos, los problemas estructurales podrían socavar la integridad del edificio. Al diseñar soluciones tecnológicas, descuidar los elementos fundamentales crea desafíos para crear un sistema eficiente. Morris & Opazo utiliza el marco de buena arquitectura de Amazon Web Services (AWS), que proporciona un conjunto consistente de mejores prácticas con las que los clientes pueden evaluar su arquitectura.

The Framework

El marco de buena arquitectura se ha desarrollado para ayudar a los arquitectos de la nube a crear una infraestructura segura, de alto rendimiento, resistente y eficiente para sus aplicaciones. Basado en cinco pilares (excelencia operativa, seguridad, confiabilidad, rendimiento eficiente y optimización de costos), Framework proporciona un enfoque consistente para que los clientes y socios evalúen arquitecturas e implementen diseños que escalarán con el tiempo.

Un enfoque estructurado de la arquitectura en la nube

 

La oferta de Morris & Opazo Well-Architected Review tiene como objetivo educar a los clientes sobre las mejores prácticas arquitectónicas para diseñar y operar sistemas confiables, seguros, eficientes y rentables en la nube. Esta oferta se desarrolló en torno al marco de buena arquitectura de Amazon Web Services (AWS), que ayuda a los clientes a comprender los pros y los contras de las decisiones tomadas al crear sistemas en AWS.

Ayudamos a los clientes a tomar decisiones informadas sobre su arquitectura y comprender el impacto potencial de esas decisiones.

Aprenda a reducir o mitigar los riesgos antes de que sucedan

Aprenda las mejores prácticas

Cree un enfoque consistente para revisar arquitecturas

Habilite un enfoque en las funciones de valor agregado, no en la extinción de incendios

Construir una cartera de pedidos

Influir en las arquitecturas futuras

Principios generales de diseño

 
El marco de buena arquitectura identifica un conjunto de principios generales de diseño para facilitar un buen diseño en la nube:

Deje de adivinar sus necesidades de capacidad

Elimine las conjeturas sobre las necesidades de capacidad de su infraestructura. Cuando toma una decisión sobre la capacidad antes de implementar un sistema, es posible que termine sentado en costosos recursos inactivos o lidiando con las implicaciones de rendimiento de la capacidad limitada. Con la computación en la nube, estos problemas pueden desaparecer. Puede usar tanta o tan poca capacidad como necesite, y escalar hacia arriba o hacia abajo automáticamente.

Sistemas de prueba a escala de producción

En la nube, puede crear un entorno de prueba a escala de producción bajo demanda, completar sus pruebas y luego retirar los recursos. Debido a que solo paga por el entorno de prueba cuando se está ejecutando, puede simular su entorno en vivo por una fracción del costo de las pruebas en las instalaciones.

Automatice para facilitar la experimentación arquitectónica

La automatización le permite crear y replicar sus sistemas a bajo costo y evitar el gasto del esfuerzo manual. Puede realizar un seguimiento de los cambios en su automatización, auditar el impacto y volver a los parámetros anteriores cuando sea necesario.

Permitir arquitecturas evolutivas

Permitir arquitecturas evolutivas. En un entorno tradicional, las decisiones arquitectónicas a menudo se implementan como eventos estáticos y únicos, con algunas versiones principales de un sistema durante su vida útil. A medida que un negocio y su contexto continúan cambiando, estas decisiones iniciales pueden dificultar la capacidad del sistema para cumplir con los requisitos comerciales cambiantes. En la nube, la capacidad de automatizar y probar bajo demanda reduce el riesgo de impacto de los cambios de diseño. Esto permite que los sistemas evolucionen con el tiempo para que las empresas puedan aprovechar las innovaciones como práctica estándar.

Impulsar arquitecturas usando datos

En la nube, puede recopilar datos sobre cómo sus elecciones arquitectónicas afectan el comportamiento de su carga de trabajo. Esto le permite tomar decisiones basadas en hechos sobre cómo mejorar su carga de trabajo. Su infraestructura en la nube es un código, por lo que puede usar esos datos para informar sus opciones de arquitectura y mejoras a lo largo del tiempo.

Mejorar a través de los días de juego

Pruebe el rendimiento de su arquitectura y sus procesos programando regularmente días de juego para simular eventos en producción. Esto lo ayudará a comprender dónde se pueden realizar mejoras y puede ayudar a desarrollar experiencia organizacional en el manejo de eventos.

Principios generales de diseño

 

Crear un sistema de software es muy parecido a construir un edificio. Si los cimientos no son sólidos, los problemas estructurales pueden socavar la integridad y el funcionamiento del edificio. Al diseñar soluciones tecnológicas, si descuida los cinco pilares de la excelencia operativa, la seguridad, la confiabilidad, la eficiencia del rendimiento y la optimización de costos, puede convertirse en un desafío construir un sistema que cumpla con sus expectativas y requisitos.

La incorporación de estos pilares en su arquitectura lo ayudará a producir sistemas estables y eficientes. Esto le permitirá concentrarse en otros aspectos del diseño, como los requisitos funcionales.

Excelencia Operacional

Principios generales de diseño

 

El pilar de la excelencia operativa se enfoca en ejecutar y monitorear sistemas para brindar valor comercial y mejorar continuamente los procesos y procedimientos. Los temas clave incluyen la gestión y automatización de cambios, la respuesta a eventos y la definición de estándares para gestionar con éxito las operaciones diarias.

El pilar de excelencia operativa incluye la capacidad de ejecutar y monitorear sistemas para brindar valor comercial y mejorar continuamente los procesos y procedimientos de soporte.

Criterios de diseño
Hay seis principios de diseño para la excelencia operativa en la nube:

Realizar operaciones como código

En la nube, puede aplicar la misma disciplina de ingeniería que usa para el código de aplicación a todo su entorno. Puede definir toda su carga de trabajo (aplicaciones, infraestructura) como código y actualizarla con código. Puede implementar sus procedimientos de operaciones como código y automatizar su ejecución activándolos en respuesta a eventos. Al realizar operaciones como código, limita el error humano y habilita respuestas coherentes a los eventos.

Anotar documentación

En un entorno local, la documentación se crea a mano, la utilizan las personas y es difícil mantenerla sincronizada con el ritmo del cambio. En la nube, puede automatizar la creación de documentación anotada después de cada compilación (o anotar automáticamente la documentación hecha a mano). La documentación anotada puede ser utilizada por personas y sistemas. Utilice anotaciones como entrada para su código de operaciones.

Anotar documentación

Diseñe cargas de trabajo para permitir que los componentes se actualicen periódicamente. Realice cambios en pequeños incrementos que se puedan revertir si fallan (sin afectar a los clientes cuando sea posible).

Anticiparse al fracaso

A medida que utilice los procedimientos de operaciones, busque oportunidades para mejorarlos. A medida que evolucione su carga de trabajo, evolucione sus procedimientos adecuadamente. Establezca días de juego regulares para revisar y validar que todos los procedimientos sean efectivos y que los equipos estén familiarizados con ellos.

Aprenda de todas las fallas operativas

Impulse la mejora a través de las lecciones aprendidas de todos los eventos y fallas operativas. Comparta lo aprendido entre equipos y en toda la organización.

Seguridad

 

 

El pilar de seguridad se enfoca en proteger la información y los sistemas. Los temas clave incluyen la confidencialidad y la integridad de los datos, la identificación y la gestión de quién puede hacer qué con la gestión de privilegios, la protección de los sistemas y el establecimiento de controles para detectar eventos de seguridad.

El pilar de seguridad incluye la capacidad de proteger la información, los sistemas y los activos al tiempo que brinda valor comercial a través de evaluaciones de riesgos y estrategias de mitigación.

Criterios de diseño
Hay siete principios de diseño para la seguridad en la nube:

Implementar una sólida base de identidad

Implemente el principio de privilegio mínimo y haga cumplir la separación de funciones con la autorización adecuada para cada interacción con sus recursos de AWS. Centralice la gestión de privilegios y reduzca o incluso elimine la dependencia de las credenciales a largo plazo.

Habilitar trazabilidad

Supervise, alerte y audite acciones y cambios en su entorno en tiempo real. Integre registros y métricas con sistemas para responder y tomar medidas automáticamente.

Aplicar seguridad en todas las capas

En lugar de centrarse únicamente en la protección de una sola capa exterior, aplique un enfoque de defensa en profundidad con otros controles de seguridad. Aplicar a todas las capas (por ejemplo, red perimetral, VPC, subred, balanceador de carga, cada instancia, sistema operativo y aplicación).

Automatice las mejores prácticas de seguridad

A medida que utilice los procedimientos de operaciones, busque oportunidades para mejorarlos. Los mecanismos de seguridad automatizados basados en software mejoran su capacidad para escalar de manera segura de manera más rápida y rentable. Cree arquitecturas seguras, incluida la implementación de controles que se definen y administran como código en plantillas controladas por versión. A medida que evoluciona su carga de trabajo, evolucione sus procedimientos de manera adecuada. Establezca días de juego regulares para revisar y validar que todos los procedimientos sean efectivos y que los equipos estén familiarizados con ellos.

Proteja los datos en tránsito y en reposo

Clasifique sus datos en niveles de confidencialidad y use mecanismos, como cifrado, tokenización y control de acceso, según corresponda.

Mantenga a las personas alejadas de los datos

Crear mecanismos y herramientas para reducir o eliminar la necesidad de acceso directo o procesamiento manual de datos. Esto reduce el riesgo de pérdida o modificación y error humano al manejar datos confidenciales.

Prepárese para los eventos de seguridad

Prepárese para un incidente con un proceso de gestión de incidentes que se alinee con los requisitos de su organización. Ejecute simulaciones de respuesta a incidentes y use herramientas con automatización para aumentar su velocidad de detección, investigación y recuperación.

Fiabilidad

El pilar de confiabilidad se enfoca en la capacidad de prevenir y recuperarse rápidamente de fallas para satisfacer la demanda comercial y de los clientes. Los temas clave incluyen elementos fundamentales en torno a la configuración, los requisitos de proyectos cruzados, la planificación de la recuperación y cómo manejamos el cambio.

El pilar de confiabilidad incluye la capacidad de un sistema para recuperarse de las interrupciones de la infraestructura o del servicio, adquirir recursos informáticos de manera dinámica para satisfacer la demanda y mitigar las interrupciones, como errores de configuración o problemas de red transitorios.

Criterios de diseño
Hay cinco principios de diseño para la confiabilidad en la nube:

Procedimientos de recuperación de prueba

En un entorno local, a menudo se realizan pruebas para demostrar que el sistema funciona en un escenario particular. Las pruebas no suelen utilizarse para validar las estrategias de recuperación. En la nube, puede probar cómo falla su sistema y puede validar sus procedimientos de recuperación. Puede usar la automatización para simular diferentes fallas o para recrear escenarios que condujeron a fallas antes.

Esto expone vías de falla que puede probar y rectificar antes de un escenario de falla real, lo que reduce el riesgo de que fallen componentes que no se han probado antes.

Recuperarse automáticamente de una falla

Al monitorear un sistema en busca de indicadores clave de rendimiento (KPI), puede activar la automatización cuando se infringe un umbral. Esto permite la notificación automática y el seguimiento de fallas, y procesos de recuperación automatizados que solucionan o reparan la falla. Con una automatización más sofisticada, es posible anticipar y remediar fallas antes de que ocurran.

Escale horizontalmente para aumentar la disponibilidad del sistema agregado

Reemplace un recurso grande con múltiples recursos pequeños para reducir el impacto de una sola falla en el sistema general. Distribuya las solicitudes entre múltiples recursos más pequeños para asegurarse de que no compartan un punto común de falla.

Deja de adivinar la capacidad

Una causa común de falla en los sistemas locales es la saturación de recursos, cuando las demandas de un sistema exceden la capacidad de ese sistema (este suele ser el objetivo de los ataques de denegación de servicio). En la nube, puede monitorear la demanda y la utilización del sistema, y automatizar la adición o eliminación de recursos para mantener el nivel óptimo para satisfacer la demanda sin un aprovisionamiento excesivo o insuficiente.

Gestionar el cambio en la automatización

Los cambios en su infraestructura deben realizarse mediante la automatización. Los cambios que deben administrarse son cambios en la automatización.

Eficiencia en el desempeño

El pilar de la eficiencia del rendimiento se centra en el uso eficiente de los recursos informáticos y de TI. Los temas clave incluyen la selección de los tipos y tamaños de recursos correctos en función de los requisitos de la carga de trabajo, la supervisión del rendimiento y la toma de decisiones informadas para mantener la eficiencia a medida que evolucionan las necesidades comerciales.

El pilar de la eficiencia del rendimiento incluye la capacidad de usar los recursos informáticos de manera eficiente para cumplir con los requisitos del sistema y mantener esa eficiencia a medida que cambia la demanda y evolucionan las tecnologías.

Criterios de diseño
Hay cinco principios de diseño para la eficiencia del rendimiento en la nube:

Democratizar las tecnologías avanzadas

Las tecnologías que son difíciles de implementar pueden volverse más fáciles de consumir al llevar ese conocimiento y complejidad al dominio del proveedor de la nube. En lugar de que su equipo de TI aprenda a alojar y ejecutar una nueva tecnología, simplemente pueden consumirla como un servicio.

Por ejemplo, las bases de datos NoSQL, la transcodificación de medios y el aprendizaje automático son tecnologías que requieren una experiencia que no está distribuida uniformemente entre la comunidad técnica. En la nube, estas tecnologías se convierten en servicios que su equipo puede consumir mientras se enfoca en el desarrollo de productos en lugar del aprovisionamiento y administración de recursos.

Sea global en minutos

Implemente fácilmente su sistema en varias regiones de todo el mundo con solo unos pocos clics. Esto le permite proporcionar una latencia más baja y una mejor experiencia para sus clientes a un costo mínimo.

Escale horizontalmente para aumentar la disponibilidad del sistema agregado

En la nube, las arquitecturas sin servidor eliminan la necesidad de ejecutar y mantener servidores para llevar a cabo actividades informáticas tradicionales. Por ejemplo, los servicios de almacenamiento pueden actuar como sitios web estáticos, eliminando la necesidad de servidores web, y los servicios de eventos pueden alojar su código por usted.

Esto no solo elimina la carga operativa de administrar estos servidores, sino que también puede reducir los costos transaccionales porque estos servicios administrados operan a escala de la nube.

Experimenta más a menudo

Con recursos virtuales y automatizables, puede realizar rápidamente pruebas comparativas utilizando diferentes tipos de instancias, almacenamiento o configuraciones.

Simpatía mecánica

Utilice el enfoque tecnológico que mejor se alinee con lo que está tratando de lograr. Por ejemplo, tenga en cuenta los patrones de acceso a los datos al seleccionar la base de datos o los enfoques de almacenamiento.

Optimización de costos

La optimización de costos se enfoca en evitar costos innecesarios. Los temas clave incluyen comprender y controlar dónde se gasta el dinero, seleccionar el número correcto y más adecuado de tipos de recursos, analizar el gasto a lo largo del tiempo y escalar para satisfacer las necesidades comerciales sin gastar de más.

El pilar de optimización de costes incluye la capacidad de ejecutar sistemas para ofrecer valor comercial al precio más bajo.

Criterios de diseño
Hay cinco principios de diseño para la optimización de costos en la nube:

Adoptar un modelo de consumo

Pague solo por los recursos informáticos que necesita y aumente o disminuya el uso según los requisitos comerciales, no mediante el uso de pronósticos elaborados. Por ejemplo, los entornos de desarrollo y prueba normalmente solo se usan durante ocho horas al día durante la semana laboral. Puede detener estos recursos cuando no estén en uso para un ahorro de costos potencial del 75 % (40 horas frente a 168 horas).

Medir la eficiencia general

Mida el resultado comercial de la carga de trabajo y los costos asociados con su entrega. Utilice esta medida para conocer las ganancias que obtiene al aumentar la producción y reducir los costos.

Deje de gastar dinero en las operaciones del centro de datos

AWS realiza el trabajo pesado de almacenamiento, apilamiento y alimentación de servidores, para que pueda concentrarse en sus clientes y proyectos de la organización en lugar de en la infraestructura de TI.

Analizar y atribuir gastos

La nube facilita la identificación precisa del uso y el costo de los sistemas, lo que luego permite la atribución transparente de los costos de TI a los propietarios de cargas de trabajo individuales. Esto ayuda a medir el retorno de la inversión (ROI) y brinda a los propietarios de cargas de trabajo la oportunidad de optimizar sus recursos y reducir costos.

Use servicios administrados y de nivel de aplicación para reducir el costo de propiedad

En la nube, los servicios administrados y de nivel de aplicación eliminan la carga operativa de mantener servidores para tareas como el envío de correo electrónico o la administración de bases de datos. Dado que los servicios administrados operan a escala de la nube, pueden ofrecer un menor costo por transacción o servicio.