En la chamba tenemos un custom RPC basado en @Netty_Project y #ProtoBuf, es de las piezas que más me gustan, es super eficiente y nos facilita crear servers de servicios robustos y sobre todo, es interoperable con otras tecnologías fuera de la JVM.
Igual se desarrollaron unas clases para crear clientes que abstraen la "complejidad" de protobuf, así como agregan una capa de resiliencia y en nuestro código solo vemos interfaces de negocio, es una gran idea y nos facilita desacoplarse de nuestra capa de comunicación custom.
Con todo esto, el equipo ha construido todo el middleware que soporta las operaciones de negocio, tanto los servers como los clientes proporcionan telemetría básica y las métricas que generan son bastante útiles para monitoreo.
Este sistema distribuido sin duda tiene sus retos, como por ejemplo es difícil hacer un rastreo de los diversos servicios que se usan en cada request que entran por web.
Para ello pues Distributed Tracing resuelve el problema, @OpenTracing & @OpenCensusIO son APIs que se pueden usar para ello, aunque en realidad, para la mayoría de las tecnologías existentes, ya se han implementado las instrumentaciones, solo es integrarlas a tu código.
Pero en nuestro caso, por tener un custom RPC tuvimos que implementar la instrumentación nosotros mismos. No fue tan difícil y sobre todo nos ayudó mucho tener el agente de DataDog en los nodos de Kubernetes para reportarlo al APM.
Nos está dando mucha visibilidad sobre cómo los diferentes servicios se comunican entre sí, latencias, dependencias y en errores graves a entender donde se origino el problema y nos ha ayudado a corregir problemas de configuración (servicios mal nombrados)
El siguiente paso es, que los diversos clientes que usan nuestra API, delimiten de su lado una traza y nos propaguen esa información, teniendo eso listo, hacer la depuración en caso de errores será mucho más sencillo.
Entonces, mi recomendación es que si tienes alguna especie de sistema distribuido, es muy útil implementar Distributed Tracing. Es una gran pieza dentro de la observabilidad que debe tener tu plataforma de servicios.
please unroll @threadreaderapp

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Domingo Suarez Torres

Domingo Suarez Torres Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(