Diseñar objetivos de nivel de servicio
En esta página se proporciona información que puede necesitar antes de crear un objetivo de nivel de servicio (SLO).
Para obtener una introducción a los SLOs, consulta la información general sobre 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: tiempo que tarda un servicio en devolver una respuesta a una solicitud, medido en milisegundos.
- Disponibilidad: la fracción del tiempo que un servicio responde correctamente.
- Otro: tipo de SLO personalizable basado en las métricas que configures.
También defines el objetivo de cumplimiento que quieres que tenga tu servicio. Por lo general, los SLOs no deben ser más altos de lo necesario o significativo para tus usuarios. Piensa en el momento en el que los usuarios podrían notar una degradación del servicio. Por ejemplo, si tus usuarios no pueden distinguir entre una latencia de 300 ms o de 500 ms en tu servicio, usa el valor más alto como umbral de latencia en el SLO. Cuanto menor sea el valor, más caro será cumplirlo y los usuarios no notarán la diferencia.
Cuando definas un objetivo de cumplimiento, ten en cuenta los requisitos de los usuarios finales de tu servicio. Por ejemplo, una herramienta interna que usan los empleados para reservar vacaciones puede funcionar bien con un objetivo de disponibilidad del 99 % (unos 3 días de inactividad al año). Sin embargo, un servicio crítico para una tienda online puede necesitar una disponibilidad del 99,999 % (unos 5 minutos de tiempo de inactividad al año).
Periodos de cumplimiento
Además de definir un objetivo para un SLI, un SLO especifica un periodo durante el que se mide el SLI. Por ejemplo, una disponibilidad del 99% en un solo día no es lo mismo que una disponibilidad del 99% en un mes. El primer SLO no permitiría más de 14 minutos de inactividad consecutiva (24 horas * 1%), mientras que el segundo SLO permitiría una inactividad consecutiva de hasta 7 horas (30 días * 1%).
El periodo de cumplimiento es especialmente 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 de tu servicio que suele especificar las consecuencias de no cumplir los OLS. Tener o no un SLA con tus usuarios es una decisión de producto o de negocio, pero, a efectos de monitorización, debes especificar un periodo de cumplimiento para tus SLOs al crearlos.
Cuando configuras SLOs, eliges el tipo de periodo de cumplimiento:
Calendario: si seleccionas Calendario como Tipo de periodo, también debes especificar la Duración del periodo, que puede ser un día, una semana o un mes. Los periodos no se solapan y se fijan a las fechas de inicio y finalización del calendario. El cumplimiento solo se puede evaluar al final del periodo.
Continuo: si selecciona Continuo como Tipo de periodo, también debe especificar el número de días del Periodo; por ejemplo, 30 días. A diferencia de los periodos de calendario, los periodos continuos no tienen fechas de inicio ni de finalización fijas. Cloud Service Mesh evalúa continuamente los SLOs con un periodo de cumplimiento continuo. Los datos más antiguos del cálculo anterior se excluyen del cálculo actual a medida que se sustituyen por datos nuevos. Un periodo continuo proporciona más mediciones de cumplimiento, ya que cada día se obtiene una medición del cumplimiento de los últimos 30 días, en lugar de una al mes. Sin embargo, los servicios pueden estar entre el cumplimiento y el incumplimiento, ya que el estado del SLO cambia a diario.
Presupuestos de errores
Otro concepto de monitorización importante es el presupuesto de error. Un objetivo de nivel de servicio especifica un indicador de nivel de servicio y un valor objetivo que mide el éxito del servicio en el periodo de cumplimiento. El presupuesto de errores de un objetivo de nivel de servicio representa el tiempo total que un servicio puede incumplir antes de infringir su objetivo de nivel de servicio. Por lo tanto, el presupuesto de error es 100% - SLO%
. Por ejemplo, si tienes un SLO de disponibilidad de 30 días con un objetivo de cumplimiento del 99,99 %, tu presupuesto de errores es del 0,01% de 30 días, es decir, poco más de 4 minutos de tiempo de inactividad permitido cada 30 días. Un servicio que debe cumplir un objetivo de nivel de servicio del 100% no tiene presupuesto de errores.
Los presupuestos de errores te permiten hacer un seguimiento de cuántas mediciones de SLI incorrectas se pueden producir durante el resto del periodo de cumplimiento antes de que el servicio incumpla el objetivo de nivel de servicio. Puedes usar el presupuesto de errores para gestionar tareas de mantenimiento, como la implementación de nuevas versiones. Cuando el presupuesto de errores está a punto de agotarse, no es un buen momento para llevar a cabo acciones arriesgadas, como implementar nuevas actualizaciones. Por el contrario, si tienes un presupuesto de errores completo cerca del final de un periodo de cumplimiento, puede que te interese lanzar nuevas funciones, ya que el riesgo de incumplir el objetivo de nivel de servicio es menor.
Si mides un objetivo de nivel de servicio con un periodo de cumplimiento de calendario, Service Mesh empieza el presupuesto de errores con el valor máximo y lo reduce con el tiempo. Cuando el presupuesto de errores baja de 0, se activa una infracción del objetivo de nivel de servicio. Cloud Service Mesh restablece el presupuesto de errores del objetivo de nivel de servicio al final del periodo de cumplimiento.
Si mides un SLO durante un periodo de cumplimiento continuo, siempre estarás al final de un periodo de cumplimiento. En lugar de empezar desde cero, los puntos de datos antiguos se van descartando continuamente y se van añadiendo puntos de datos nuevos. Si un periodo de cumplimiento deficiente se sale de la ventana de cumplimiento y el objetivo de nivel de servicio se cumple, el presupuesto de errores aumenta. En cualquier momento, error budget ≥ 0
indica una ventana de SLO acumulativo que cumple los requisitos y error budget < 0
indica una ventana de SLO acumulativo que no los cumple.
Siguientes pasos
Consulta más información sobre los SLOs en el libro Site Reliability Engineering de Google: