Esta publicación de blog se escribió en colaboración con el equipo de Lightrun: Itai Tieger, Roy Chen y Tom Granot. Itai es un líder de equipo de I + D especializado en ciberseguridad, con más de 10 años de experiencia en la industria. Roy es un ingeniero de software con más de 6 años de experiencia diversa en múltiples disciplinas. Tom es ingeniero de soluciones y ex ingeniero de confiabilidad del sitio.
Una aplicación que se ejecuta en producción es una bestia difícil de domar.
La mayoría de los desarrolladores experimentados, los que pasaron suficientes noches o sábados por la mañana tratando de romper un error de producción desagradable, intentarán crear la imagen más clara posible para ellos mismos mientras escriben su código, para que puedan entender lo que realmente está sucediendo en el sistema durante un incidente.
Para hacer la vida más fácil, los desarrolladores pueden usar una combinación de una pila de observabilidad robusta para recopilar, transformar y ver registros en toda la aplicación, junto con una plataforma de observabilidad en tiempo real que puede aumentar el flujo de registros sin presionar código nuevo, volver a implementar o incluso reiniciando el servicio. Así es como Elastic y Lightrun pueden domesticar a esa bestia juntos.
La tala es un problema difícil
Si bien escribir registros es relativamente fácil, consumirlos es un juego de pelota completamente diferente:
- Los registros tienen un formato incoherente : la mayoría del software moderno es una telaraña de muchos proyectos de código abierto diferentes, dependencias de terceros y paquetes internos. Todas estas piezas se registran de acuerdo con diferentes metodologías y en formatos siempre ligeramente diferentes.
- La información que se registra es inconsistente : dado que la mayoría de estos componentes están escritos por diferentes desarrolladores que trabajan de acuerdo con diferentes estilos de registro (o ninguno), el valor real que se puede derivar de los registros varía considerablemente.
- Los archivos de registro se distribuyen en cada host específico : los registros a menudo no están fácilmente disponibles en un solo archivo, sino que se distribuyen en varios archivos en diferentes lugares del sistema de archivos. La división y rotación de registros, la práctica de fragmentar los registros en archivos pequeños que se sobrescriben con el tiempo, también causa frustración al intentar localizar una línea de registro específica que se capturó hace un tiempo.
- Los registros se distribuyen en varios hosts: nuestras aplicaciones no son seres únicos, sino que se distribuyen en varias instancias, se organizan en clústeres de Kubernetes y se empaquetan en contenedores. Averiguar donde en la topología de la aplicación una pieza específica de información es también puede ser complicado.
- Los registros son costosos de almacenar : los registros persistentes a lo largo del tiempo en el disco, especialmente a medida que la implementación de más y más software se vuelve más fácil, significa que se consume una tonelada de espacio con el único propósito de almacenar archivos de registro, lo que puede resultar costoso y rápido.
- Los registros son costosos de analizar: analizar enormes cantidades de información es una tarea que consume tiempo y recursos.
Esto, por supuesto, no impide que los desarrolladores inicien sesión; por el contrario, la explosión absoluta de complejidad en el software moderno solo nos anima a registrar más , por lo que podemos estar absolutamente seguros de que tendremos la información exacta que necesitamos más adelante.
Acceso completo a la nota desde el Blog de Elastic, link en el enlace.