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.

This talk has been presented at DevOps.js Conf 2024, check out the latest edition of this JavaScript Conference.

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
The Talk covers the speaker's personal journey into server-side rendering (SSR) and the evolution of web development frameworks. It explores the use of jQuery for animations in SSR, the challenges faced in integrating React with Umbraco, and the creation of a custom SSR framework. The Talk also discusses the benefits of Next.js and the use of serverless artifacts for deployment. Finally, it highlights the features of Astro, including its function per route capability.
Registro Multihilo con Pino
JSNation Live 2021JSNation Live 2021
19 min
Registro Multihilo con Pino
Top Content
Today's Talk is about logging with Pino, one of the fastest loggers for Node.js. Pino's speed and performance are achieved by avoiding expensive logging and optimizing event loop processing. It offers advanced features like async mode and distributed logging. The use of Worker Threads and Threadstream allows for efficient data processing. Pino.Transport enables log processing in a worker thread with various options for log destinations. The Talk concludes with a demonstration of logging output and an invitation to reach out for job opportunities.
AWS Lambda bajo el capó
Node Congress 2023Node Congress 2023
22 min
AWS Lambda bajo el capó
Top Content
In this Talk, key characteristics of AWS Lambda functions are covered, including service architecture, composition, and optimization of Node.js code. The two operational models of Lambda, asynchronous and synchronous invocation, are explained, highlighting the scalability and availability of the service. The features of Lambda functions, such as retries and event source mapping, are discussed, along with the micro VM lifecycle and the three stages of a Lambda function. Code optimization techniques, including reducing bundle size and using caching options, are explained, and tools like webpack and Lambda Power Tuning are recommended for optimization. Overall, Lambda is a powerful service for handling scalability and traffic spikes while enabling developers to focus on business logic.
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 is a strongly typed, version-free query language that allows you to ask for specific data and get it in JSON format. It simplifies data retrieval and modification by allowing the server to handle all necessary operations. Serverless architectures, such as AWS Lambda, are scalable, cost-effective, and good for event-driven applications. Event sourcing and CQRS are techniques that ensure consistency and separate reading and writing parts of an application. Building a GraphQL API with commands and queries can be achieved using AWS AppSync and DynamoDB. This approach offers low latency, scalability, and supports multiple languages. Challenges include application complexity, data modeling, and tracing, but starting with simplicity and making something work first can lead to success.
Observabilidad para Microfrontends
DevOps.js Conf 2022DevOps.js Conf 2022
24 min
Observabilidad para Microfrontends
Microfrontends follow the microservices paradigm and observability is crucial for debugging runtime production issues. Error boundaries and tracking errors help identify and resolve issues. Automation of alerts improves incident response. Observability can help minimize the time it takes to understand and resolve production issues. Catching errors from the client and implementing boundaries can be done with tools like OpenTelemetry.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Observability with Diagnostics Channel and async local storage allows for high-performance event tracking and propagation of values through calls, callbacks, and promise continuations. Tracing involves five events and separate channels for each event, capturing errors and return values. The span object in async local storage stores data about the current execution and is reported to the tracer when the end is triggered.

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