El código que hacemos vive y tiene razón de ser al momento de llegar a producción… ¿Cómo sabemos que tan efectivo es ? Solo podemos saber midiendolo.
Presentada por Isaac Ruiz Guerra en SG Virtual Conference 2020
1. Observabilidad.
Todo lo que hay que saber.
Isaac Ruiz Guerra.
Software Architect/BackEnd Developer/Cloud
@ SPS
Staff de @javamexico, @jvm_mx
Unidos compartiendo y aprendiendo
#SGVirtual
2. Observabilidad.
• Agenda
• Preámbulo
• ¿A que nos enfrentamos?
• Sistemas distribuidos
• Propiedades
• Mensajes
• ¿Por qué es importante?
• Observabilidad
• Logs
• Métricas
• Tracing
• ¿ Para qué?
• Lo que viene.
10. Así las cosas…
• ¿A que nos enfrentamos?
• Damos poca información.
• Memoria, HHDD, CPU, RED
• Dependemos de otros.
• Es limitado.
• Nos toca entrar a áreas que usualmente desconocemos
• Necesitamos interactuar más con las otras áreas
• Holístico le dicen.
• (Ejem) SO, lenguajes, red, personas, entorno, etc, etc, etc.
https://pixabay.com/es/illustrations/buda-lotus-armon%C3%ADa-la-paz-3746389/ Gratis para usos comerciales. No es necesario reconocimiento
11. Así las cosas…
• ¿A qué nos enfrentamos?
• Sistemas distribuidos.
https://www.youtube.com/watch?v=ACL_YVPD3gw
https://www.youtube.com/watch?v=pAmHHQJ0zwY
12. Debemos saber de ...
• Sistemas distribuidos.
• Ningún sistema es inmune a los fallos
• Debemos estar listos para recuperar un estado
• Maquinas de estado.
• Cuando distribuimos un sistema también distribuimos
los lugares donde algo puede fallar…. Abusados ahí!.
• Debemos saber que está pasando en todo el sistema
• ¿Sólo se debe monitorear lo que falla?¿Y lo
demás?¿Que tanto más?
El viaje de Chihiro y todos sus personajes son propiedad de Hayao Miyazaki
20. Debemos ver mas
cosas…
• Preguntas que quizá antes no hacíamos
• ¿Está vivo?
• ¿Puede ejecutar una tarea?
• ¿Puede recibir más carga?
Las tarjetas son marca registrada de Kazuki Takahashi.
21. Debemos ver mas
cosas…
Las tarjetas son marca registrada de Kazuki Takahashi.
How to Build Observable Distributed Systems
#SoftwareArchitecture #DistributedSystems #DistributedTracing
https://www.youtube.com/watch?v=ACL_YVPD3gw
22. Es necesario un Perfil integral.
• También tenemos que conocer más sobre como están diseñado
nuestros servicios.
23. Tipos de Mensajes. I
• Sistemas distribuidos. Mensajes. Point to Point
Microservicio 1 Microservicio 1
Microservicio 1
Microservicio 1
24. Tipos de Mensajes. II
• Sistemas distribuidos. Publish/Subscribe
Microservicio 1 Microservicio 1
Microservicio 1
Microservicio 1
BUS
25. Tipos de Mensajes. III
• Sistemas distribuidos. ¿Dónde es más sencillo hacer el trace?
Microservicio 1 Microservicio 1
Microservicio 1
Microservicio 1
Microservicio 1 Microservicio 1
Microservicio 1
Microservicio 1
BUS
27. Abusados.
• ¿Por qué es importante?
La defensa Bart.
Los simspons son creación Matt Groening y propiedad de FOX.
28. Abusados.
• Para minimizar que nos apliquen la defensa Bart.
• Porque lo exige la industria.
• Porque nos facilita varias tareas.
• Debug
• Monitoreo
• Porque sirve para cumplir con los objetivos del negocio, para darle
valor al negocio.
• Para reflexionar.
29. Evita la defensa Bart.
• Antes de iniciar cualquier optimización, solicita un estado actual de
las cosas(Status Quo).
31. Observability
This emag explores the topic of
observability in-depth, covering the role
of the "three pillars of observability"
• Monitoring.
• Logging.
• And distributed tracing.
https://www.infoq.com/minibooks/ema
g-apm-observability
https://www.infoq.com/presentations/serverless-observability
The Present and Future of Serverless Observability.
34. ¿Loggin o Monitoreo? ¿Yo que hago?
• Logging
• Visualización de datos sobre el estado de una aplicación o servicio.
• Los famosos: “aquí toy”, “aquí no toy”, “por acá no debería pasar”, “pasé por aquí”
• Visualización de eventos originados por una aplicación o servicio.
• Shutdow, running, error connection, File Not found, sin espacio en disco, etc.etc
• Básicamente, vemos a detalle los cambios del estado de una aplicación o
servicio.
• Medición (monitoreo).
• Visualización sobre el cambio de valores dentro de un rango.
• Valores relacionados con una serie de tiempo.
45. Observabilidad.
How to Build Observable Distributed Systems
#SoftwareArchitecture #DistributedSystems #DistributedTracing
https://www.youtube.com/watch?v=ACL_YVPD3gw
49. Nos ayuda a ponernos en el lugar del
cliente.
• Finanzas
• ¿Hay más fallos en los retiros en quincena?
• Los tiempos de respuesta aumentan o se mantienen igual.
• ¿Cuanto tarda una apertura de cuenta? ¿Cuánto prometimos que tardaría?
• Retail
• ¿Todas los POS están activos?
• ¿Por qué nunca tenemos los dos POS en funcionamiento?
• Cantidad de productos promedio que se llevan
• Movil
• Hay más fallos en Android o en iphone
• Quienes lo usan más?
50. Backend Usuario
Es muy valioso poder tener una manera aunque sea limitada de lo que podría estar experimentando nuestros clientes.
59. Observabilidad
• Predicciones. Index free logs aggregation.
• Tienen que ir saliendo mejores herramientas para hacer esto.
https://github.com/oklog/oklog
Kubectl logs
https://blog.papertrailapp.com/how-to-live-tail-kubernetes-logs/
En un capítulo de los simsons, Bart le dice a Marge, “Me siento mal, no quiero ir a la escuela, tengo fiebre y la lengua hinchada”…. Marge le pide que abra la lengua y le dice “confiaré en ti, porque no se como tienes la lenguaje cuando estás sano”.