Diseña SLO

En esta página, se proporciona información que podrías necesitar antes de crear un objetivo de nivel de servicio (SLO).

Para obtener una introducción a los SLO, consulta la Descripción general de los objetivos de nivel de servicio.

Tipo de SLI y objetivos de cumplimiento

Cloud Service Mesh admite los siguientes tipos de indicadores de nivel de servicio:

  • Latencia: cuánto demora un servicio en mostrar una respuesta a una solicitud, medido en milisegundos
  • Disponibilidad: Es la fracción de tiempo que un servicio responde de forma correcta.
  • Otro: Es un tipo de SLO personalizable según tus métricas configurables.

También debes definir el objetivo de cumplimiento que esperas de tu servicio. En general, los SLO no deben ser más altos de lo tus usuarios necesitan o lo que les resulta significativo. Ten en cuenta el punto en que los usuarios pueden notar la degradación del servicio. Por ejemplo, si tus usuarios no pueden distinguir entre una latencia de 300 ms o 500 ms en tu servicio, usa el valor más alto como el límite de latencia en el SLO. Resulta más costoso cumplir con el valor más bajo, y los usuarios no notarán la diferencia.

Cuando configures un objetivo de cumplimiento, considera los requisitos de usuario final para tu servicio. Por ejemplo, una herramienta interna que usan los empleados para reservar días de vacaciones puede funcionar bien con un objetivo de disponibilidad del 99% (unos 3 días de tiempo de inactividad por año). Sin embargo, es posible que un servicio crítico para una tienda en línea necesite una disponibilidad del 99.999% (alrededor de 5 minutos de tiempo de inactividad por año).

Períodos de cumplimiento

Además de definir un objetivo para un SLI, un SLO especifica un período en el que se mide el SLI. Por ejemplo, la disponibilidad del 99% en un día difiere de la disponibilidad del 99% en un mes. El primer SLO no sería permiten más de 14 minutos de tiempo de inactividad consecutivos (24 horas * 1%), mientras que segundo SLO permitiría un tiempo de inactividad consecutivo de hasta ~7 horas (30 días * 1%).

El período de cumplimiento es muy importante cuando se incluye un SLO en un Acuerdo de Nivel de Servicio (ANS) con tus usuarios. Un ANS es un contrato con los usuarios del servicio que, por lo general, especifica las consecuencias de no cumplir con los SLO. Tener o no un ANS con tus usuarios es una decisión a nivel del producto o de la empresa, pero, por cuestiones de supervisión, debes especificar un período de cumplimiento para tus SLO cuando los creas.

Cuando configuras los SLO, debes elegir el tipo de período de cumplimiento:

  • Calendario: cuando seleccionas Calendario para Tipo de período, también debes especificar el valor de Duración del período, que puede ser un día, una semana o un mes. Los períodos no se superponen y tienen fechas de inicio y de finalización fijas en el calendario. El cumplimiento solo se puede evaluar al final del período.

  • Progresivo: cuando seleccionas Progresivo para Tipo de período, también debes especificar la cantidad de días en Duración del período, por ejemplo, 30 días. A diferencia de los períodos basados en el calendario, los períodos progresivos no tienen fechas de inicio ni de finalización fijas. Cloud Service Mesh evalúa los SLO de forma continua con un el período de cumplimiento. Los datos más antiguos del cálculo anterior se eliminan del cálculo actual a medida que se reemplazan por datos nuevos. Un período progresivo proporciona más medidas de cumplimiento porque cada día obtienes una medida de cumplimiento de los últimos 30 días, en lugar de obtener una por mes. Sin embargo, los servicios pueden pasar del cumplimiento y al incumplimiento, y viceversa, a medida que el estado del SLO cambia a diario.

Porcentaje de error aceptable

Otro concepto importante de la supervisión es el porcentaje de error aceptable. Un SLO especifica un SLI y un objetivo de valor que mide el éxito del servicio en el período de cumplimiento. El porcentaje de error aceptable de un SLO representa la cantidad total de tiempo que un servicio puede estar en un estado de no cumplimiento antes de violar su SLO. Por lo tanto, un porcentaje de error aceptable es 100% - SLO%. Por ejemplo, si tienes un SLO con un período de cumplimiento progresivo, una disponibilidad de 30 días y un objetivo de cumplimiento del 99.99%, tu porcentaje de error aceptable corresponde al 0.01% de 30 días: un poco más de 4 minutos de tiempo de inactividad permitido cada 30 días. Un servicio que debe cumplir con un SLO del 100% no tiene un porcentaje de error aceptable.

Los porcentajes de error aceptables te permiten realizar un seguimiento de cuántas mediciones incorrectas de SLI pueden obtenerse durante el resto del período de cumplimiento antes de que el servicio viole el SLO. Puedes usar el porcentaje de error aceptable para administrar tareas de mantenimiento, como la implementación de versiones nuevas. Cuando el porcentaje de error aceptable está cerca de agotarse, no es un buen momento para tomar medidas riesgosas, como implementar actualizaciones nuevas. Por el contrario, si tienes un porcentaje de error aceptable completo cerca del final de un período de cumplimiento, es posible que desees iniciar funciones nuevas, ya que el riesgo de incumplir el SLO es menor.

Si mides un SLO con un período de cumplimiento basado en el calendario, Service Mesh inicia el porcentaje de error aceptable en el valor máximo y lo reduce con el tiempo, lo que activa un incumplimiento del SLO cuando el porcentaje de error aceptable es inferior a 0. Cloud Service Mesh restablece el porcentaje de error aceptable del SLO al final del período de cumplimiento.

Si estás midiendo un SLO durante un período de cumplimiento progresivo, siempre estarás al final de un período de cumplimiento. En lugar de comenzar desde cero, los datos antiguos se descartan de forma continua, y todo el tiempo se agregan datos nuevos. Si un período de cumplimiento deficiente excede la ventana de cumplimiento, y si el SLO cumple con los requisitos, el porcentaje de error aceptable aumenta. En cualquier momento, un error budget ≥ 0 indica un período de SLO progresivo compatible, y un error budget < 0 indica un período de SLO progresivo que no cumple con los requisitos.

Próximos pasos