The shift from monolithic applications to microservices led to many new challenges we haven’t had before. Especially analyzing problems and tracking down erroneous components of a distributed system has become much more difficult as slicing and decoupling applications advances. We now have to answer questions like: How do we find out which services were involved when processing a specific request and how long did it take to respond? How do we figure out which service is causing a request to fail and why? These issues are addressed by Distributed Tracing tools like Zipkin, Jaeger, OpenTracing and OpenCensus. But how can we leverage the data we are gathering using such tools to gain new insights into our business processes, instead of just focussing on the technical aspects?
25. GOAL: MAKE OBSERVABILITY EASY FOR MODERN APPLICATIONS
vendor-neutral API
wide vendor support
tracer implantation effort
https://opentracing.io/docs/overview/what-is-tracing/
26. GOAL: MAKE OBSERVABILITY EASY FOR MODERN APPLICATIONS
libraries used for collecting tracing and metrics data
ready to use implementation for database engines, kubernetes etc.
tightly coupled to the implementations
opinionated implementation for capturing observability signals
COMPLEMENTARY NOT CONTRADICTORY
vendor-neutral API
wide vendor support
tracer implantation effort
27. GOAL: MAKE OBSERVABILITY EASY FOR MODERN APPLICATIONS
libraries used for collecting tracing and metrics data
ready to use implementation for database engines, kubernetes etc.
tightly coupled to the implementations
opinionated implementation for capturing observability signals
COMPLEMENTARY NOT CONTRADICTORY
vendor-neutral API with default implementations
+ =
vendor-neutral API
wide vendor support
tracer implantation effort
28. GOAL: MAKE OBSERVABILITY EASY FOR MODERN APPLICATIONS
https://github.com/open-telemetry/opentelemetry-java
https://www.w3.org/2018/distributed-tracing/
https://github.com/w3c/trace-context
38. THE NEXT LEVEL
EASY BUG TRIAGE
https://ui.trasier.com/#/account/123456/space/sys-test/search/id/267cd7b7-2d6a-474b-ade2-bf0453881f72
Allocating bugs to the responsible team can be
tricky when there is only a functional description.
39. THE NEXT LEVEL
MOCK SERVICES
OFFER THIRD PARTY SERVICE
TEST-CLIENT
X-CID=ABC123
HEADER
Testing can be hard when you’re integrating with many services.
Especially unreliable integration systems can increase the development
costs unexpectedly.
TEST 1 | MOCK ID=ABC123
BUSINESS TRACING BACKEND
40. THE NEXT LEVEL
MOCK SERVICES
Testing can be hard when you’re integrating with many services.
Especially unreliable integration systems can increase the development
costs unexpectedly.
OFFER THIRD PARTY SERVICE
TEST-CLIENT
MODE=READ
HEADER
X-CID=ABC123
TEST 1 | MOCK ID=ABC123
BUSINESS TRACING BACKEND
41. THE NEXT LEVEL
MOCK SERVICES
Change on the integrator side (Bug, Error, API Change)
Probably bug in our system
Run tests against real backend and against mock at the same time
Test against mock50 (100%) SUCCESS, 0 (0%) ERROR
Test against real backend40 (80%) SUCCESS, 10 (20%) ERROR
Test against real backend40 (80%) SUCCESS, 10 (20%) ERROR
Test against mock40 (80%) SUCCESS, 10 (20%) ERROR
42. THE NEXT LEVEL
REPLAY CONVERSATIONS
OFFER THIRD PARTY SERVICE
REPLAY-CLIENT
BUSINESS TRACING BACKEND
MODE=REPLAY
HEADER
X-CID=ABC123
43. THE NEXT LEVEL
BUSINESS ANALYSIS
The data stored by the business tracing system is the perfect foundation for
extensive research and data analysis. Gathering the equivalent information from
your existing data stores is expensive and may not even be possible.
44. THE NEXT LEVEL
BUSINESS ANALYSIS
The data stored by the business tracing system is the perfect foundation for
extensive research and data analysis. Gathering the equivalent information from
your existing data stores is expensive and may not even be possible.
45. THE NEXT LEVEL
PREDICTIVE ANALYSIS
The chance is to finally take the step to predictive analysis on your actual
business data and processes.
Offer creation errors during the day per product id.
Offer creation errors during the day.