Skip to content

OpenZipkin's 5 year anniversary

Adrian Cole edited this page Apr 16, 2020 · 45 revisions
  • This is not yet complete *

Today, March 16, 2020, we celebrate 5 years since Eirik Sletteberg clicked send on the pivotal Moving Zipkin out in the open email. Below will discuss why this email was special, and how its spirit impacts us positively today. We'll review what OpenZipkin is and the major accomplishments of the last five years. We'll close with some recent developments in 2020.

If you want to chat with us about the project, we're always available on Gitter. If you are a fan, make sure you star our main repository.

Without further adieu, let's talk about that email!

Why was this email important?

Eirik and Mick worked on Zipkin at Finn.no at the time. They had responsibility to run their Zipkin site, but were dependent on Twitter to improve Zipkin. Zipkin was still managed by Twitter at the time, and their needs were different than the external community. For example, when Twitter switched internally from Cassandra onto a non-open source alternative, it resulted in neglect in the Cassandra component. This was a dilemma for those who had no access to the alternative, and desired to run Cassandra!

There were other differences in priority client side as well. For example, Twitter was originally a ruby on rails application and so its first tracing library was Ruby. When they moved to Finagle (Scala), the Ruby tracer became neglected (this was later recreated as zipkin-ruby). Even sites that ran Finagle had other libraries to trace. Hence, two years before Eirik's email, Kristof invented a Java tracing library Brave, still used today.

Differences continued into how projects run. For example, Twitter was operating largely as a mono repo and it was typical to build distributions from source (to deploy to Mesos/Aurora at the time). Outside Twitter, deployments were very different. Few used Mesos or Aurora, even if they used similar container technology like Docker. This meant end users had to individually build this Scala project from source, usually with some modifications, to ultimately turn it into something they could deploy.

These forces led to Eirik's email, and the culture of OpenZipkin that remains today. Sites owners want not just problems solved, but ownership to solve them. After some months of deliberation, Twitter decided to get behind the community. This resulted in effort on their part for both the external and internal migrations. For example, it required a major change to switch from a push to a pull model for Zipkin code deployments internally. Twitter deserve a lot of credit, not just for the initial code drop of Zipkin, but also the effort it took to create and readjust to its new home.

What did OpenZipkin result in?

The "Moving Zipkin out in the open" email transformed into a new GitHub org OpenZipkin. OpenZipkin committers are from different companies, usually volunteers who were at one point running a Zipkin site. No committer has more rights than another in OpenZipkin, and no company has more than two committers either. Committers routinely move in and out of focus as they switch roles or jobs, but the community itself behaves the same.

For the last 5 years, OpenZipkin transformed the server experience. Zoltán reinvented our DevOps experience, leading to a Dockerized build, fully automated release process and integrations such as Prometheus. The team rewrote the server (Spring Boot + Armeria). We reverse engineered and documented the B3 header format and historical data formats. Then, OpenZipkin created the most widely supported tracing format Zipkin v2. The UI was refreshed two times, first by Eirik, who converted it into pure Javascript, then by Raja who renovated it further. Finally, LINE supported a complete rewrite, led by Igarashi.

Instrumentation side was a similar combination of overhaul and new. With Jordi on point, folks at Medidata re-owned the abandoned zipkin-ruby. PH at Criteo donated zipkin4net, something later also re-owned also by Medidata. Eirik created zipkin-js currently led by José Carlos. José Carlos invented zipkin-php and co-leads zipkin-go invented by Bas. Kristof retired from Brave, but it's in good hands you'll see Jorge, Jorg and Rag ever present on Java tracing.

We also have deep integrations run by the community. Kafka is not just a traced technology, but also a transport to move traces. There are too many to thank, but notably Jorge leads all things Kafka for us. Tommy weaved in our RabbitMQ integration. Cassandra remains an solid storage option, particularly high throughput sites. Mick and Lance are behind most of the thought work there. Elasticsearch support has been a continual effort, created and endured even today by Rag. Rag also co-leads zipkin-gcp with the Spring Cloud GCP team at Google, as well zipkin-aws originally created by Lance and Brian.

OpenZipkin supported existing tracing libraries and designed completely fresh ones such as zipkin-go and zipkin-php. Volunteers built a new website adorned with a snazzy new logo.

The core Zipkin team held workshops and pow-wows, in some cases leading and other cases following other end users. We transformed our support model from google groups and 7 accounts on IRC in 2015 to an online community of over 2000 on Gitter. Jorg is on constant watch for issues, recently getting us under 200 on our main repo (which has had over 3000 issues to date!). Jorg and Tommy also keep a keen eye on our docs, to help ensure they are readable by those who read docs :D

In short, Zipkin is constantly refreshed by volunteers who support and mentor each other: the site-centric spirit is as real today as when it started 5 years ago.

What's new this year

New Committer

New Site docs

New UI

TODO: short description and link to switching to lens as still most don't know this happened!

Project Updates

TODO: links to last release notes with one-line summary

Clone this wiki locally