Implementing distributed tracing in FaaS
Microservices as well as functions have changed the way applications are built and deployed now a days. Adoption of these distributed architectures have helped teams to implement scalable, efficient and reliable systems. Operational tasks like debugging have became quite tricky with this change. With functions, these tasks become more complicated when you have message queues like Kafka in between. Having a system to which we can ask questions about state of our services is really crucial. Distributed tracing helps to have observability in our system. It helps to get more insight into how our services are communicating.
This talk will be a walk through about my journey of implementing distributed tracing in functions which run on a Function as a Service platform, called Fission. It will also brief about changes made to the Fission’s components, as well Jaeger’s client library along the way.
- What is observability?
- Logging and metrics
- Distributed tracing
- About Fission
- Fission function environments
- About Jaeger
- Instrumenting applications using client libraries
- Architecture of demo application
- Kafka as message queue
- Instrumenting the functions
- Modifications made to the Fission’s environments
- Propagating the context through Kafka
- Changes made to Fission
- Changes made to Jaeger’s Python library
- It is better to have basic idea about microservices
Bhavin is working with InfraCloud Technologies, Pune. His main area of interest are Free/Libre and Open Source Software, DevSecOps, containers and Kubernetes. Have contributed to Fission as well Jaeger’s components.