Fiabilidad

El pilar (pilar) incluye (descripción)

El pilar de fiabilidad ofrece una descripción general de los principios de diseño, las prácticas recomendadas y las preguntas. Puede encontrar orientación normativa sobre la implementación en el documento técnico Pilar de fiabilidad.

Principios de diseño

Hay (recuento) principios de diseño de (pilar-inferior) en la nube:

Definición

Hay (recuento) áreas de prácticas recomendadas de (pilar-inferior) en la nube:

Para lograr la fiabilidad, debe comenzar por las bases: un entorno donde todas las cuotas de servicio y la topología de red se adapten a la carga de trabajo. La arquitectura de la carga de trabajo del sistema distribuido debe estar diseñada para prevenir y reducir los errores. La carga de trabajo debe controlar los cambios en la demanda o los requisitos. Además, debe estar diseñada para detectar los errores y recuperarse de forma automática.

Prácticas recomendadas

Bases

Los requisitos básicos son aquellos cuyo alcance se extiende más allá de una sola carga de trabajo o proyecto. Antes de diseñar cualquier sistema, deben establecerse los requisitos básicos que influyen en la fiabilidad. Por ejemplo, debe tener suficiente ancho de banda de red para su centro de datos.

Con AWS la mayoría de estos requisitos básicos ya están incorporados o se los puede satisfacer según sea necesario. El diseño de la nube hace que esta sea casi ilimitada, de manera que es responsabilidad de AWS satisfacer la necesidad de una capacidad de cómputo y de conexión de red suficiente, lo que le permite cambiar el tamaño del recurso y las asignaciones bajo demanda.

Las siguientes preguntas se enfocan en estas consideraciones para (pilar inferior).

REL 1: ¿Cómo administra las cuotas y las restricciones de servicio?
REL 2: ¿Cómo planifica la topología de red?

Para las arquitecturas de cargas de trabajo basadas en la nube, existen las cuotas de servicio (que también se denominan límites de servicio). Estas cuotas existen para evitar el aprovisionamiento accidental de más recursos de los que necesita y para limitar la tasa de solicitudes en las operaciones de la API a fin de proteger los servicios de un uso inadecuado. A menudo, las cargas de trabajo se encuentran en varios entornos. Usted debe supervisar y administrar estas cuotas para todos los entornos de carga de trabajo. Entre ellos se incluyen varios entornos en la nube (de acceso público y privado) y pueden incluir la infraestructura de su centro de datos existente. Los planes deben incluir las consideraciones sobre la red, como la conectividad dentro del sistema y entre sistemas, la administración de direcciones IP públicas, la administración de direcciones IP privadas y la resolución de nombres de dominio.

Arquitectura de las cargas de trabajo

Una carga de trabajo confiable comienza con la toma de decisiones de diseño inicial para el software y la infraestructura. Sus opciones de arquitectura afectarán el comportamiento de su carga de trabajo en los cinco pilares de Well-Architected. En cuanto a la fiabilidad, debe seguir determinados patrones.

Con AWS, los desarrolladores de cargas de trabajo pueden elegir los lenguajes y las tecnologías que usarán. Los SDK de AWS eliminan la complejidad de la codificación al proporcionar API específicas del lenguaje para los servicios de AWS. Estos SDK, más la elección de lenguajes, permiten a los desarrolladores implementar las prácticas recomendadas de fiabilidad aquí presentadas. Los desarrolladores también pueden leer y aprender sobre cómo Amazon construye y opera software en Amazon Builders' Library.

Las siguientes preguntas se enfocan en estas consideraciones para (pilar inferior).

REL 3: ¿Cómo diseña su arquitectura de servicios para cargas de trabajo?
REL 4: ¿Cómo diseña interacciones en un sistema distribuido para evitar errores?
REL 5: ¿Cómo diseña interacciones en un sistema distribuido para mitigar o tolerar errores?

Los sistemas distribuidos dependen de las redes de comunicación para interconectar los componentes, como servidores o servicios. A pesar de la pérdida de datos o la latencia en estas redes, su carga de trabajo debe operar de manera confiable. Los componentes del sistema distribuido deben funcionar de manera que no afecten negativamente a otros componentes o a la carga de trabajo.

Administración de los cambios

Los cambios en su carga de trabajo o su entorno se deben anticipar y adaptar a fin de lograr un funcionamiento confiable de la carga de trabajo. Los cambios incluyen a aquellos impuestos en su carga de trabajo, como los picos en la demanda, así como también aquellos cambios internos, como las implementaciones de características y los parches de seguridad.

Con AWS, puede monitorear el comportamiento de una carga de trabajo y automatizar la respuesta a los KPI. Por ejemplo, la carga de trabajo puede agregar servidores a medida que esta obtiene más usuarios. Puede controlar quién tiene permiso para realizar cambios en la carga de trabajo y auditar el historial de estos cambios.

Las siguientes preguntas se enfocan en estas consideraciones para (pilar inferior).

REL 6: ¿Cómo monitorea los recursos de las cargas de trabajo?
REL 7: ¿Cómo diseña la carga de trabajo para que se adapte a los cambios en la demanda?
REL 8: ¿Cómo implementa los cambios?

Cuando diseña una carga de trabajo para agregar y eliminar recursos automáticamente en respuesta a los cambios en la demanda, esto no solo aumenta la fiabilidad sino que también asegura que el éxito empresarial no se convierta en una carga. Con el monitoreo, su equipo recibirá una alerta automática cuando los KPI se desvíen de las normas previstas. El registro automático de cambios en su entorno le permite auditar e identificar rápidamente acciones que podrían haber afectado la fiabilidad. Los controles sobre la gestión de cambios aseguran que pueda aplicar las reglas que le brindan la fiabilidad que necesita.

Administración de los errores

En cualquier sistema de complejidad razonable se espera que se produzcan errores. La fiabilidad requiere que la carga de trabajo sea consciente de los errores a medida que ocurren y tome medidas para evitar el impacto en la disponibilidad. Las cargas de trabajo deben ser capaces de resistir errores y reparar problemas automáticamente.

Con AWS, puede aprovechar la automatización para reaccionar a los datos de monitoreo. Por ejemplo, cuando una métrica específica cruza un umbral, puede activar una acción automatizada para remediar el problema. Además, en lugar de tratar de diagnosticar y corregir un recurso con errores que es parte de su entorno de producción, puede reemplazarlo por uno nuevo y realizar el análisis del recurso con errores fuera de banda. Dado que la nube le permite instalar versiones temporales de un sistema entero a bajo costo, puede usar pruebas automatizadas para verificar procesos de recuperación completa.

Las siguientes preguntas se enfocan en estas consideraciones para (pilar inferior).

REL 9: ¿Cómo realiza las copias de seguridad de los datos?
REL 10: Cómo utilizar el aislamiento de errores para proteger su carga de trabajo
REL 11: ¿Cómo diseña la carga de trabajo para tolerar errores de componentes?
REL 12: ¿Cómo prueba la fiabilidad?
REL 13: ¿Cómo planifica la recuperación de desastres (DR)?

Realice regularmente una copia de seguridad de sus datos y pruebe sus archivos de copia de seguridad a fin de garantizar que puede recuperarse de errores lógicos y físicos. Una clave para administrar los errores es la prueba frecuente y automatizada de las cargas de trabajo para ocasionar errores y luego observar cómo se recuperan. Haga esto regularmente y asegúrese de que tales pruebas también se activen después de cambios significativos en la carga de trabajo. Realice un seguimiento activo de los KPI, como el objetivo de tiempo de recuperación (RTO) y el objetivo de punto de recuperación (RPO), a fin de evaluar la resistencia de una carga de trabajo (especialmente en escenarios de prueba de errores). El seguimiento de los KPI lo ayudará a identificar y mitigar puntos únicos de errores. El objetivo es probar a fondo los procesos de recuperación de la carga de trabajo para que esté seguro de que puede recuperar todos sus datos y continuar prestando servicios a sus clientes, incluso en situaciones de problemas recurrentes. Sus procesos de recuperación deben ejercerse tan bien como sus procesos de producción habituales.

Recursos

Consulte los siguientes recursos para obtener más información sobre nuestras prácticas recomendadas de (pilar).

Reliability Pillar: AWS Well-Architected
AWS Well-Architected Reliability Labs
The Amazon Builders' Library: How Amazon builds and operates software
AWS Documentation
AWS Global Infrastructure
AWS Auto Scaling: How Scaling Plans Work
Implementing Microservices on AWS
What Is AWS Backup?