Observabilidad sin servidor: Donde se encuentran los SLOs y las transformaciones

Rate this content
Bookmark

Esta charla explora el caso de uso de los SLOs y las transformaciones durante la migración al ecosistema sin servidor. La charla comienza presentando las razones por las cuales los SLOs son importantes en el marco de SRE/DevOps. Luego analiza casos de uso específicos de los SLOs, las herramientas utilizadas para medir la eficiencia de los SLOs y presenta los principales obstáculos encontrados al definir y cumplir con los SLOs en el proceso de migración a un ecosistema sin servidor, especialmente al lidiar con las tasas de consumo y las transformaciones.

Al final de la charla, la audiencia podrá suscribirse a los siguientes puntos clave:

Los SLOs son importantes en un marco de SRE/DevOps y existen numerosas ventajas al implementarlos siempre y cuando se adhieran a un proceso de mejora continua.

Adoptar las herramientas y métricas adecuadas es fundamental en la implementación de los SLOs.

La migración a un entorno sin servidor añade presión al sistema de observabilidad y es posible que las tasas de consumo y las transformaciones tengan efectos negativos. Nuestro caso de uso mostrará cómo es posible mitigar estos desafíos y aprender de situaciones similares.

FAQ

La Observabilidad sin servidor se refiere a la capacidad de monitorear y analizar sistemas que operan en un entorno sin servidor, donde las métricas y los eventos son recolectados para evaluar el rendimiento y la salud del sistema.

En Elastic, los SLOs dependen de las transformaciones para resumir y organizar los datos de manera que permitan medir adecuadamente el cumplimiento de los objetivos de nivel de servicio establecidos.

Las transformaciones son tareas persistentes que convierten índices de búsqueda existentes en índices resumidos, facilitando nuevos análisis y conocimientos sobre el comportamiento de los datos en Elastic.

Un buen SLO es específico, medible, centrado en el usuario, cuantificable, alcanzable y tiene un marco de tiempo definido. Un mal SLO, por otro lado, es vago, subjetivo, carece de métricas cuantificables y no tiene un umbral o ventana de observación definidos.

La alerta de tasa de consumo se calcula midiendo la velocidad a la que se están consumiendo los presupuestos de errores de los SLOs en distintas ventanas de tiempo, ayudando a identificar y priorizar problemas sostenidos en la calidad del servicio.

Las alertas de tasa de consumo ayudan a reducir la fatiga de alertas, mejoran la experiencia del usuario con un marco de alerta flexible y preciso, y permiten una mejor gestión de las prioridades en caso de problemas de servicio.

Para crear un SLO en un índice serverless, se selecciona el tipo de índice, se agregan filtros de consulta para las métricas deseadas, se establecen los objetivos de nivel de servicio y se configura una regla de tasa de consumo para monitorear el cumplimiento del SLO.

Virginia Diana Todea
Virginia Diana Todea
8 min
15 Feb, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla proporciona una introducción a la Observabilidad sin servidor y los SLOs, explicando el concepto de los SLOs y su dependencia de las transformaciones. Destaca la interdependencia entre los SLOs, los SLAs y los SLIs y discute la importancia de los SLOs bien definidos. La charla también demuestra cómo crear y monitorear los SLOs y las reglas de alerta, enfatizando los beneficios de las alertas de tasas de consumo para reducir la fatiga de alerta y mejorar la experiencia del usuario.

1. Introducción a la Observabilidad sin servidor y SLOs

Short description:

Hola, soy Diana Toda. Estoy aquí para presentar la Observabilidad sin servidor donde los SLOs se encuentran con las transformaciones. Discutiremos el concepto, la dependencia de los SLOs en las transformaciones, la arquitectura de transformación de SLOs, la alerta de tasa de consumo y tendremos una breve demostración. Los indicadores de nivel de servidor son una medida del nivel de servicio, definidos como una proporción de elementos buenos sobre el total de eventos. Los objetivos de nivel de servicio son los valores objetivo para un nivel de servicio, y el presupuesto de errores es la cantidad tolerada de errores.

Hola, DevOps.js. Soy Diana Toda. Soy una SRE en Elastic, y estoy aquí para presentar la Observabilidad sin servidor donde los SLOs se encuentran con las transformaciones. Así que vamos a hablar sobre el concepto, la dependencia de los SLOs en las transformaciones, la arquitectura de transformación de SLOs, la alerta de tasa de consumo y vamos a tener una breve demostración. Así que un poco de contexto. Con la migración de Elastic a serverless, tuvimos la necesidad de idear una nueva idea en torno a las agregaciones de resumen. Elastic tiene una infraestructura de múltiples clústeres y necesitábamos alejarnos de las agregaciones de resumen y búsqueda debido a algunas de sus limitaciones. Entonces comenzamos a crear las transformaciones.

Comencemos con algunas definiciones. Los indicadores de nivel de servidor, como probablemente ya saben, son una medida del nivel de servicio proporcionado. Por lo general, se definen como una proporción de elementos buenos sobre el total de eventos, y van desde 0 hasta 100%. Algunos ejemplos son la disponibilidad, el rendimiento, la latencia de las solicitudes, las tasas de error. Los objetivos de nivel de servicio son un valor objetivo para un nivel de servicio medido por un SLI. Por encima del umbral, el servicio cumple con los requisitos. Por ejemplo, el 95% de las solicitudes exitosas se sirven en menos de 100 milisegundos. El presupuesto de errores se define como 100% menos el SLO. Por lo tanto, es la cantidad de errores que se tolera, y la tasa de consumo es la velocidad a la que estamos consumiendo el presupuesto de errores durante un período de tiempo definido. Es muy útil para

2. Codependencia entre SLOs, SLAs y SLIs

Short description:

Entonces tenemos una codependencia entre SLOs, SLAs y SLIs. ¿Cómo reconocemos un buen SLO versus un mal SLO? Un SLO bien definido se enfoca en un aspecto crucial de la calidad del servicio, proporciona claridad, medibilidad y alineación con las expectativas del usuario. La arquitectura de SLO se basa en transformaciones para resumir los datos fuente en índices centrados en entidades. Las transformaciones te permiten convertir índices existentes y obtener nuevos conocimientos y análisis. La alerta de tasa de consumo calcula la velocidad a la que los SLOs están fallando con el tiempo, lo que ayuda a priorizar los problemas. Ha reducido la fatiga de alerta, mejorado la experiencia del usuario y tiene una buena precisión. Pasemos a la demostración donde puedes crear y monitorear SLOs.

alertando antes de agotar el presupuesto de errores. Entonces tenemos una codependencia entre SLOs, SLAs y SLIs. Entonces, ¿cómo reconocemos un buen SLO versus un mal SLO? Un mal SLO es vago, subjetivo, carece de métricas cuantificables, tiene un umbral indefinido y ninguna ventana de observación. Un buen SLO es específico y medible, centrado en el usuario, cuantificable y alcanzable, y tiene un marco de tiempo definido. Entonces, un SLO bien definido se enfoca en un aspecto crucial de la calidad del servicio, proporciona claridad, medibilidad y alineación con las expectativas del usuario, que son elementos esenciales para una monitorización y evaluación efectivas de la confiabilidad del servicio. La arquitectura del SLO, básicamente, se basa en la superficie de transformación para resumir los datos fuente en índices de resumen. Para admitir un grupo por o la función de partición, Elastic ha agregado una segunda capa que resume los datos de resumen en un índice centrado en entidades para cada SLO. Este índice también alimenta la experiencia de búsqueda para permitir a los usuarios buscar y ordenar por cualquier dimensión del SLO. Entonces, ¿qué son las transformaciones? Las transformaciones son tareas persistentes que te permiten convertir los índices de búsqueda existentes de Elastic en índices resumidos, que brindan oportunidades para nuevos conocimientos y análisis. Por ejemplo, puedes usar transformaciones para pivotar tus datos en índices centrados en entidades que resumen el comportamiento de los usuarios, sesiones u otras entidades en tus datos. O puedes usar transformaciones para encontrar el último documento entre todos los documentos que tienen una clave única específica.

La alerta de tasa de consumo calcula la velocidad a la que los SLOs están fallando en múltiples ventanas de tiempo, es menos sensible a las fluctuaciones a corto plazo al centrarse en desviaciones sostenidas, y puede darte una indicación de cuán severamente se está degradando el servicio y ayuda a priorizar múltiples problemas al mismo tiempo. Aquí tenemos un gráfico de alerta de tasa de consumo con múltiples ventanas. Entonces tenemos dos ventanas para cada severidad, una corta y una larga. La ventana corta es 1/12 de la ventana larga, por lo que cuando la tasa de consumo para ambas ventanas excede el umbral, se activa la alerta. Los beneficios de la alerta de tasa de consumo son que reduce la fatiga de alerta, mejora la experiencia del usuario, tiene un marco de alerta flexible y una buena precisión. La desventaja en este momento es que tienes muchas opciones de configuración, pero esto se mejorará en futuras versiones de Elasticsearch. Así que es hora de la demostración. Aquí hay una demostración que he preparado para ti sobre las transformaciones. Puedes ver cómo crear las transformaciones allí. Puedes verificar los datos detrás de ellas. Tienes estadísticas, JSON, mensajes, y una vista previa. Y puedes verificar el estado de cada transformación. Puede estar degradado, saludable, o incluso fallido. Si tienes algún problema, puedes solucionarlo directamente desde esta pantalla. Así que intentemos crear algunos SLOs. Vas a observability, SLOs y creas un nuevo SLO. Eliges el tipo de índice que deseas, el índice. En mi caso, usaré un índice serverless y un campo de tiempo de siete días. Agregas tu filtro de consulta de interés, la consulta buena que deseas para tu SLO y la consulta total. Después, tienes una selección interesante aquí para particionar por.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.
Registro Multihilo con Pino
JSNation Live 2021JSNation Live 2021
19 min
Registro Multihilo con Pino
Top Content
Casi todos los desarrolladores piensan que agregar una línea de registro más no disminuiría el rendimiento de su servidor... ¡hasta que el registro se convierte en el mayor cuello de botella para sus sistemas! Creamos uno de los registradores JSON más rápidos para Node.js: pino. Una de nuestras decisiones clave fue eliminar todo el "transporte" a otro proceso (o infraestructura): redujo tanto el consumo de CPU como de memoria, eliminando cualquier cuello de botella del registro. Sin embargo, esto creó fricción y disminuyó la experiencia del desarrollador al usar Pino y los transportes en el proceso es la característica más solicitada por nuestro usuario.En la próxima versión 7, resolveremos este problema y aumentaremos el rendimiento al mismo tiempo: estamos introduciendo pino.transport() para iniciar un hilo de trabajo que puedes usar para transferir tus registros de forma segura a otros destinos, sin sacrificar ni el rendimiento ni la experiencia del desarrollador.
AWS Lambda bajo el capó
Node Congress 2023Node Congress 2023
22 min
AWS Lambda bajo el capó
Top Content
En esta charla explico cómo funciona el servicio AWS Lambda, explicando la arquitectura, cómo escala y cómo un desarrollador debería pensar cuando diseñan su software utilizando funciones Lambda
Arquitecturas Avanzadas de GraphQL: Event Sourcing y CQRS sin servidor
React Summit 2023React Summit 2023
28 min
Arquitecturas Avanzadas de GraphQL: Event Sourcing y CQRS sin servidor
GraphQL es una herramienta poderosa y útil, especialmente popular entre los desarrolladores frontend. Puede acelerar significativamente el desarrollo de aplicaciones y mejorar la velocidad de la aplicación, la descubribilidad de la API y la documentación. GraphQL no es solo adecuado para API simples, puede impulsar arquitecturas más avanzadas. La separación entre consultas y mutaciones hace que GraphQL sea perfecto para el event sourcing y Command Query Responsibility Segregation (CQRS). Al hacer que tu aplicación GraphQL avanzada sea sin servidor, obtienes una arquitectura completamente administrada, económica y extremadamente potente.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Los productos de trazado modernos funcionan combinando diagnostics_channel con AsyncLocalStorage. Construyamos juntos un trazador para ver cómo funciona y qué puedes hacer para hacer que tus aplicaciones sean más observables.
Observabilidad para Microfrontends
DevOps.js Conf 2022DevOps.js Conf 2022
24 min
Observabilidad para Microfrontends
Los equipos están creciendo cada vez más siguiendo la arquitectura de microfrontends. La observabilidad para los equipos a gran escala se vuelve aún más importante para poder identificar posibles problemas en tiempo de ejecución, así como separar las responsabilidades. En esta presentación aprenderemos cómo lograrlo.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Construyendo Aplicaciones Serverless en AWS con TypeScript
Node Congress 2021Node Congress 2021
245 min
Construyendo Aplicaciones Serverless en AWS con TypeScript
Workshop
Slobodan Stojanović
Slobodan Stojanović
Este masterclass te enseña los conceptos básicos del desarrollo de aplicaciones serverless con TypeScript. Comenzaremos con una función Lambda simple, configuraremos el proyecto y la infraestructura como código (AWS CDK) y aprenderemos cómo organizar, probar y depurar una aplicación serverless más compleja.
Tabla de contenidos:        - Cómo configurar un proyecto serverless con TypeScript y CDK        - Cómo escribir una función Lambda testeable con arquitectura hexagonal        - Cómo conectar una función a una tabla DynamoDB        - Cómo crear una API serverless        - Cómo depurar y probar una función serverless        - Cómo organizar y hacer crecer una aplicación serverless


Materiales mencionados en el masterclass:
https://excalidraw.com/#room=57b84e0df9bdb7ea5675,HYgVepLIpfxrK4EQNclQ9w
Blog de DynamoDB de Alex DeBrie: https://www.dynamodbguide.com/
Excelente libro para DynamoDB: https://www.dynamodbbook.com/
https://slobodan.me/workshops/nodecongress/prerequisites.html
Masterclass de Serverless para Desarrolladores de React
React Summit 2022React Summit 2022
107 min
Masterclass de Serverless para Desarrolladores de React
WorkshopFree
Tejas Kumar
Tejas Kumar
Introducción a serverlessAntecedentes: Docker, Contenedores y KubernetesActividad: Construir una aplicación con Docker y desplegarla en un proveedor de nubeAnálisis: ¿Qué es bueno/malo de este enfoque?Por qué se necesita/mejora ServerlessActividad: Construir la misma aplicación con serverlessAnálisis: ¿Qué es bueno/malo de este enfoque?
Construyendo un backend serverless nativo de GraphQL con Fauna
GraphQL Galaxy 2021GraphQL Galaxy 2021
143 min
Construyendo un backend serverless nativo de GraphQL con Fauna
WorkshopFree
Rob Sutter
Shadid Haque
2 authors
¡Bienvenido a Fauna! Este masterclass ayuda a los desarrolladores de GraphQL a construir aplicaciones de alto rendimiento con Fauna que se escalan a cualquier tamaño de base de usuarios. Comienzas con lo básico, utilizando solo el playground de GraphQL en el panel de Fauna, luego construyes una aplicación completa de pila completa con Next.js, agregando funcionalidad a medida que avanzas.

En la primera sección, Comenzando con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.

En la segunda sección, Construyendo con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.
Escalando Bases de Datos para Aplicaciones Globales sin Servidor
Node Congress 2022Node Congress 2022
83 min
Escalando Bases de Datos para Aplicaciones Globales sin Servidor
WorkshopFree
Ben Hagan
Ben Hagan
Este masterclass discute los desafíos que enfrentan las empresas al escalar la capa de datos para admitir implementaciones multi-región y entornos sin servidor. Las funciones de borde sin servidor y la orquestación de contenedores livianos permiten que las aplicaciones y la lógica empresarial se implementen fácilmente a nivel mundial, dejando a menudo la base de datos como el cuello de botella de latencia y escalabilidad.
Únase a nosotros para comprender cómo PolyScale.ai resuelve estos desafíos de escalabilidad, almacenando en caché de manera inteligente los datos de la base de datos en el borde, sin sacrificar la transaccionalidad o la consistencia. Aprenda a implementar, observar consultas y realizar pruebas de latencia global con funciones de borde utilizando PolyScale.
Tabla de contenidos        - Introducción a PolyScale.ai        - Gravedad de los datos empresariales        - Por qué es difícil escalar los datos        - Opciones para escalar la capa de datos        - Observabilidad de la base de datos        - Gestión de caché con IA        - Aprenda a utilizar PolyScale.ai
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
TestJS Summit 2021TestJS Summit 2021
146 min
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
WorkshopFree
Serkan Ozal
Oguzhan Ozdemir
2 authors
En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD