Información general del marco de - Recomendaciones de AWS

Información general del marco de

El marco de análisis de la resiliencia se desarrolló mediante la identificación de las propiedades de resiliencia deseadas de una carga de trabajo. En efecto, le interesa que las propiedades deseadas sean ciertas en relación con el sistema. Por lo general, la resiliencia se mide en función de la disponibilidad, por lo que las características de un sistema distribuido de alta disponibilidad tienen cinco propiedades: redundancia, capacidad suficiente, salida puntual, salida correcta y aislamiento de errores. Estas propiedades se muestran en el siguiente diagrama.

Relaciones entre las propiedades de resiliencia deseadas
  • Redundancia: la tolerancia a errores se logra mediante redundancia que elimine los únicos puntos de error (SPOF). La redundancia puede abarcar desde los componentes de recambio de la carga de trabajo hasta las réplicas completas de todo el conjunto de aplicaciones. Al considerar la redundancia para las aplicaciones, es importante tener en cuenta el nivel de redundancia que proporcionan la infraestructura, los almacenes de datos y las dependencias que utiliza. Por ejemplo, Amazon DynamoDB y Amazon Simple Storage Service (Amazon S3) proporcionan redundancia mediante la replicación de los datos en varias zonas de disponibilidad dentro de una región, y AWS Lambda ejecuta las funciones en varios nodos de trabajo dentro de varias zonas de disponibilidad. Para cada servicio que utilice, tenga en cuenta lo que proporciona el servicio y lo que debe diseñar.

  • Capacidad suficiente: la carga de trabajo necesita recursos suficientes para funcionar según lo previsto. Estos recursos pueden ser memoria, ciclos de CPU, subprocesos, almacenamiento, rendimiento, cuotas de servicio y muchos otros.

  • Salida puntual: cuando los clientes utilizan la carga de trabajo, esperan que desempeñe la función prevista en un periodo de tiempo razonable. A menos que el servicio incluya un acuerdo de nivel de servicio (SLA) en materia de latencia, sus expectativas se basan generalmente en datos empíricos; es decir, en su propia experiencia. Por lo general, se considera que esta experiencia media del cliente es la latencia mediana (P50) del sistema. Si la carga de trabajo tarda más de lo esperado, esta latencia puede afectar a la experiencia de los clientes.

  • Salida correcta: es necesario que la salida del software de la carga de trabajo sea correcta para que proporcione la funcionalidad prevista. Un resultado incorrecto o incompleto puede ser peor que no recibir respuesta alguna.

  • Aislamiento de errores: cuando se produce un error, el aislamiento de errores restringe el alcance del impacto al contenedor de errores previsto. Garantiza que se produzca el error en todos los componentes específicos de la carga de trabajo y, al mismo tiempo, evita que un error se propague en cascada a otros componentes no deseados. También ayuda a limitar el alcance del impacto de la carga de trabajo en los clientes. El aislamiento de errores es algo diferente de las cuatro propiedades anteriores, ya que acepta que ya se ha producido un error, pero este debe contenerse. Puede crear un aislamiento de errores en la infraestructura, las dependencias y las funciones de software.

Cuando se infringe una propiedad deseada, esta infracción puede provocar que una carga de trabajo no esté disponible o que se perciba que no está disponible. A partir de estas propiedades de resiliencia deseadas y de nuestra experiencia trabajando con muchos clientes de AWS, hemos identificado cinco categorías de errores comunes: únicos puntos de error, carga excesiva, latencia excesiva, configuraciones incorrectas y errores, y destino compartido, que abreviamos como SEEMS, por sus siglas en inglés. Estas categorías proporcionan un método coherente para clasificar los posibles modos de error y se describen en la siguiente tabla.

Categoría de error

Infracción

Definición

Únicos puntos de error (SPOF)

Redundancia

Un error en un solo componente interrumpe el sistema debido a la falta de redundancia del componente.

Carga excesiva

Capacidad suficiente

El consumo excesivo de un recurso debido a una demanda o un tráfico excesivos impide que el recurso desempeñe la función esperada. Esto puede incluir que se alcancen límites y cuotas, lo que provoca la limitación y el rechazo de las solicitudes.

Latencia excesiva

Salida puntual

El procesamiento del sistema o la latencia del tráfico de red superan el tiempo esperado, los objetivos de nivel de servicio (SLO) o los acuerdos de nivel de servicio (SLA) esperados.

Configuraciones incorrectas y errores

Salida correcta

Los errores de software o una mala configuración del sistema provocan una salida incorrecta.

Destino compartido

Aislamiento de errores

Un error provocado por cualquiera de las anteriores categorías de error sobrepasa los límites de aislamiento de errores previstos y se extiende en cascada a otras partes del sistema o a otros clientes.