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:
-
Recuperarse de los errores automáticamente: Si monitorea una carga de trabajo para obtener los indicadores clave de rendimiento (KPI), puede activar el proceso de automatización cuando se supera un límite. Estos KPI deben ser una medida del valor comercial, no de los aspectos técnicos de la operación del servicio. Esto permite la notificación automática, el seguimiento de los errores y los procesos de recuperación automatizados que solucionan o reparan el error. Con una automatización más sofisticada, es posible anticipar y corregir los errores antes de que ocurran.
-
Probar los procedimientos de recuperación: En un entorno en las instalaciones, a menudo se realizan pruebas para demostrar que la carga de trabajo funciona en una situación particular. Por lo general, las pruebas no se utilizan para validar las estrategias de recuperación. En la nube, puede realizar pruebas para detectar de qué forma se producen errores en su carga de trabajo y puede validar los procedimientos de recuperación. Puede utilizar la automatización para simular diferentes errores o para recrear las situaciones que llevaron a errores con anterioridad. Este enfoque expone las rutas de los errores que puede probar y corregir antes de que ocurra una situación de error real, de manera que se reduce el riesgo.
-
Escale horizontalmente para aumentar la disponibilidad de la carga de trabajo agregada: Reemplace un recurso grande por varios recursos pequeños para reducir el impacto de un solo error en toda la carga de trabajo. Distribuya las solicitudes en varios recursos más pequeños para asegurarse de que no compartan un punto común de error.
-
Dejar de suponer la capacidad: Una causa común de los errores en las cargas de trabajo en las instalaciones es la saturación de recursos cuando las demandas que se le asignan a una carga de trabajo exceden su capacidad (este suele ser el objetivo de los ataques de denegación de servicio). En la nube, puede monitorear la demanda y la utilización de la carga de trabajo. Además, puede automatizar el proceso de incorporación o eliminación de recursos a fin de mantener el nivel óptimo para satisfacer la demanda sin llegar a un aprovisionamiento excesivo o insuficiente. Aún existen límites, pero algunas cuotas se pueden controlar y otras se pueden administrar (consulte la sección Administrar cuotas y restricciones de servicio).
-
Administrar los cambios en la automatización: Los cambios en su infraestructura deben realizarse mediante la automatización. Entre los cambios que deben administrarse se incluyen los cambios en la automatización, que luego se pueden seguir y revisar.
Definición
Hay (recuento) áreas de prácticas recomendadas de (pilar-inferior) en la nube:
- Bases
- Arquitectura de las cargas de trabajo
- Administración de los cambios
- Administración de los errores
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).
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).
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-ArchitectedAWS 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?