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.

8 min
15 Feb, 2024

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.

Available in English

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.

3. Creación de SLOs y Reglas de Alerta

Short description:

Estableces tus objetivos y el SLO objetivo para una ventana de tiempo específica. Agregas un título, descripción y etiquetas para identificar tu SLO. Eliges una regla de tasa de consumo y la configuras con varias opciones. Guardas la regla y buscas tu SLO. El panel proporciona una visión general, alertas y opciones para editar la disponibilidad o crear nuevas reglas de alerta.

Por ejemplo, el proyecto serverless ID SLO, o tipo de clúster, etc. Estableces tus objetivos para la ventana de tiempo, dependiendo de lo que quieras hacer, y el SLO objetivo, digamos, por ejemplo, 99%. Agregas el título a tu SLO, una breve descripción, lo que hace. Y básicamente, puedes agregar algunas etiquetas para identificar mejor tu SLO. Y si quieres elegir una regla de tasa de consumo, haces clic en la marca allí, y ahí lo tienes. Tienes tu SLO, que te solicita inmediatamente crear una regla de tasa de consumo. Tienes muchas opciones para definir la hora, los grupos de acción, etc. Y puedes seleccionar una acción dependiendo de dónde quieras recibir alertas. Guardas la regla y luego comencemos a buscarla. Puedes comenzar a escribir el nombre de tu SLO. Y como puedes ver, tengo una lista de mis SLO agrupados por el ID del proyecto serverless. Y en este panel, en la pantalla, puedes ver la visión general, las alertas. Puedes ir a acciones, editar la disponibilidad o crear una nueva regla de alerta. Así que resumiendo, algunos puntos clave para esto es que necesitas mejorar continuamente los SLOs, las transformaciones y las tasas de consumo. Necesitas adoptar las herramientas y métricas adecuadas, y necesitas participar en la comunicación entre equipos. Y necesitas tener un acuerdo entre el liderazgo, el cliente, los equipos de SRE o DevOps. Así que aquí hay algunos recursos que he proporcionado para que puedas crear los SLOs, las transformaciones y las alertas de tasa de consumo. Muchas gracias por ver. Que tengas un excelente día en la conferencia DevOpsJS.

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

JSNation Live 2021JSNation Live 2021
19 min
Multithreaded Logging with Pino
Top Content
Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user.In the upcoming version 7, we will solve this problem and increase throughput at the same time: we are introducing pino.transport() to start a worker thread that you can use to transfer your logs safely to other destinations, without sacrificing neither performance nor the developer experience.
React Summit 2023React Summit 2023
28 min
Advanced GraphQL Architectures: Serverless Event Sourcing and CQRS
GraphQL is a powerful and useful tool, especially popular among frontend developers. It can significantly speed up app development and improve application speed, API discoverability, and documentation. GraphQL is not an excellent fit for simple APIs only - it can power more advanced architectures. The separation between queries and mutations makes GraphQL perfect for event sourcing and Command Query Responsibility Segregation (CQRS). By making your advanced GraphQL app serverless, you get a fully managed, cheap, and extremely powerful architecture.

Workshops on related topic

DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Featured WorkshopFree
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
Node Congress 2021Node Congress 2021
245 min
Building Serverless Applications on AWS with TypeScript
Workshop
This workshop teaches you the basics of serverless application development with TypeScript. We'll start with a simple Lambda function, set up the project and the infrastructure-as-a-code (AWS CDK), and learn how to organize, test, and debug a more complex serverless application.
Table of contents:        - How to set up a serverless project with TypeScript and CDK        - How to write a testable Lambda function with hexagonal architecture        - How to connect a function to a DynamoDB table        - How to create a serverless API        - How to debug and test a serverless function        - How to organize and grow a serverless application


Materials referred to in the workshop:
https://excalidraw.com/#room=57b84e0df9bdb7ea5675,HYgVepLIpfxrK4EQNclQ9w
DynamoDB blog Alex DeBrie: https://www.dynamodbguide.com/
Excellent book for the DynamoDB: https://www.dynamodbbook.com/
https://slobodan.me/workshops/nodecongress/prerequisites.html
React Summit 2022React Summit 2022
107 min
Serverless for React Developers
WorkshopFree
Intro to serverlessPrior Art: Docker, Containers, and KubernetesActivity: Build a Dockerized application and deploy it to a cloud providerAnalysis: What is good/bad about this approach?Why Serverless is Needed/BetterActivity: Build the same application with serverlessAnalysis: What is good/bad about this approach?
GraphQL Galaxy 2021GraphQL Galaxy 2021
143 min
Building a GraphQL-native serverless backend with Fauna
WorkshopFree
Welcome to Fauna! This workshop helps GraphQL developers build performant applications with Fauna that scale to any size userbase. You start with the basics, using only the GraphQL playground in the Fauna dashboard, then build a complete full-stack application with Next.js, adding functionality as you go along.

In the first section, Getting started with Fauna, you learn how Fauna automatically creates queries, mutations, and other resources based on your GraphQL schema. You learn how to accomplish common tasks with GraphQL, how to use the Fauna Query Language (FQL) to perform more advanced tasks.

In the second section, Building with Fauna, you learn how Fauna automatically creates queries, mutations, and other resources based on your GraphQL schema. You learn how to accomplish common tasks with GraphQL, how to use the Fauna Query Language (FQL) to perform more advanced tasks.
Node Congress 2022Node Congress 2022
83 min
Scaling Databases For Global Serverless Applications
WorkshopFree
This workshop discusses the challenges Enterprises are facing when scaling the data tier to support multi-region deployments and serverless environments. Serverless edge functions and lightweight container orchestration enables applications and business logic to be easily deployed globally, often leaving the database as the latency and scaling bottleneck.
Join us to understand how PolyScale.ai solves these scaling challenges intelligently caching database data at the edge, without sacrificing transactionality or consistency. Get hands on with PolyScale for implementation, query observability and global latency testing with edge functions.
Table of contents        - Introduction to PolyScale.ai        - Enterprise Data Gravity        - Why data scaling is hard        - Options for Scaling the data tier        - Database Observability        - Cache Management AI        - Hands on with PolyScale.ai
TestJS Summit 2021TestJS Summit 2021
146 min
Live e2e test debugging for a distributed serverless application
WorkshopFree
In this workshop, we will be building a testing environment for a pre-built application, then we will write and automate end-to-end tests for our serverless application. And in the final step, we will demonstrate how easy it is to understand the root cause of an erroneous test using distributed testing and how to debug it in our CI/CD pipeline with Thundra Foresight.

Table of contents:
- How to set up and test your cloud infrastructure
- How to write and automate end-to-end tests for your serverless workloads
- How to debug, trace, and troubleshot test failures with Thundra Foresight in your CI/CD pipelines