Overview
The article features an interview with Yuri Shkuro, the Jaeger Project Lead at Uber, discussing the development and open sourcing of Jaeger, a distributed tracing system. It highlights the importance of open source in Uber's engineering culture and the community's growth around Jaeger since its inception.
What You'll Learn
1
How to contribute to an open source project effectively
2
Why open sourcing software can enhance community engagement
3
When to consider transitioning from closed source to open source
Key Questions Answered
What are the benefits of open sourcing Jaeger?
Open sourcing Jaeger has allowed for broader community contributions, increased visibility, and support from major companies like RedHat and Google. This collaboration has enhanced the project's capabilities and user adoption, making it a vital tool for distributed tracing in microservices.
How did Jaeger evolve from an internal tool to an open source project?
Jaeger was developed internally at Uber to address the challenges of distributed tracing. It evolved by integrating features from existing tools like Zipkin and OpenTracing, ultimately being open sourced to leverage community contributions and enhance its functionality.
What role did the Cloud Native Computing Foundation (CNCF) play in Jaeger's growth?
The CNCF hosted Jaeger, which provided significant exposure and support for the project. This affiliation helped promote Jaeger at major events and encouraged best practices in governance and documentation, leading to a stronger community and project sustainability.
What challenges did Jaeger face during its development?
Jaeger initially faced challenges due to its dependency on Zipkin, which limited its flexibility. The team decided to remove this dependency, allowing Jaeger to become an independent tracing solution with enhanced features and capabilities tailored for diverse use cases.
Key Statistics & Figures
Jaeger GitHub stars
over 6,000
This metric reflects Jaeger's popularity and community engagement since its open sourcing.
Jaeger commits in 2018
over 13,000
This indicates the active development and contributions to Jaeger during that year.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Backend
Jaeger
Jaeger is used for distributed tracing in microservices, allowing developers to track and troubleshoot interactions between services.
Specification
Opentracing
OpenTracing provides a standard API for distributed tracing, which Jaeger implements to ensure compatibility with various systems.
Tool
Zipkin
Zipkin was initially used as a reference for building Jaeger, influencing its design and functionality.
Key Actionable Insights
1Engaging with the open source community can lead to unexpected use cases and improvements for your project.By interacting with users and contributors, developers can gain insights into unique challenges faced by others, which can inform future development and feature enhancements.
2Documentation is crucial for the success of an open source project.Investing time in thorough documentation ensures that new users can easily understand and utilize the software, which can significantly increase adoption and community contributions.
3Fostering a respectful and collaborative community is essential for open source success.Building a culture that values feedback and collaboration helps create software that is beneficial not only to your organization but also to the broader community.
Common Pitfalls
1
Assuming that simply open sourcing a project will guarantee its success.
Many projects remain unnoticed on platforms like GitHub without proper promotion and community engagement. It's essential to actively promote the project and foster a community around it.
2
Neglecting documentation in open source projects.
Poor documentation can lead to user frustration and decreased adoption. Ensuring comprehensive and clear documentation is critical for user onboarding and community contributions.
Related Concepts
Distributed Tracing
Open Source Software Development
Community Engagement In Software Projects
Microservices Architecture