incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: [VOTE] Accept Zipkin into the Apache Incubator
Date Mon, 27 Aug 2018 11:29:55 GMT
+1 (binding)

Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem


On Mon, Aug 27, 2018 at 11:14 AM Mick Semb Wever <mck@apache.org> wrote:

> After a brief discussion¹ I would like to call a VOTE to accept Zipkin
> into the Apache Incubator.
> The full proposal is available on the wiki² and is pasted below in text
> form as well.
>
> This vote will run at least 72 hours. Please VOTE as follows:
>
> [ ] +1 Accept Zipkin into the Apache Incubator
> [ ] +0 No opinion
> [ ] -1 Do not accept Zipkin into the Apache Incubator because…
>
> regards,
> Mick
>
> [1]
> https://lists.apache.org/thread.html/54798a5059db1d5716ed9910a15c92945509a25ec3b7ccb6b1215c53@%3Cgeneral.incubator.apache.org%3E
> [2] https://wiki.apache.org/incubator/ZipkinProposal
>
>
>
> = Abstract =
> Zipkin is a distributed tracing system. It helps gather timing data needed
> to troubleshoot latency problems in microservice architectures. It manages
> both the collection and lookup of this data. Zipkin’s design is based on
> the Google Dapper paper.
>
> = Proposal =
> Zipkin provides a defined data model and payload type for distributed
> trace data collection. It also provides an UI and http api for querying the
> data. Its server implements this api and includes abstractions for storage
> and transport of trace payloads. The combination of these parts avoid
> lock-in to a specific tracing backend. For example, Zipkin includes
> integration with different open source storage mechanisms like Apache
> Cassandra and Elasticsearch. It also includes bridges to convert collected
> data and forward it to service offerings such as Amazon X-Ray and Google
> Stackdriver. Ecosystem offering extend this portability further.
>
> While primarily focused on the system, Zipkin also includes tracing
> libraries which applications use to report timing information. Zipkin's
> core organization includes tracer libraries written in Java, Javascript,
> Go, PHP and Ruby. These libraries use the formats mentioned above to report
> data, as well "B3" which is a header format needed to send trace
> identifiers along with production requests. Many Zipkin libraries can also
> send data directly to other services such as Amazon X-Ray and Google
> Stackdriver, skipping any Zipkin infrastructure. There are also more Zipkin
> tracing libraries outside the core organization than inside it. This is due
> to the "OpenZipkin" culture of promoting ecosystem work.
>
> = Background =
> Zipkin began in 2012 at Twitter during a time they were investigating
> performance problems underlying the "fail whale" seen by users. The name
> Zipkin is from the Turkish word for harpoon: the harpoon that will kill the
> failures! Incidentally, Zipkin was not the first tracing system, it had
> roots in a former system at Twitter named BigBrotherBird. It is due to
> BigBrotherBird that the de-facto tracing headers we still use today include
> the prefix "X-B3".
>
> In 2015, a community of users noticed the project was not healthy in so
> far as it hadn't progressed and often didn't accept pull requests, and the
> Cassandra backend was stuck on an unmaintained library. For example, the
> Apache Incubator H-Trace project started in some ways as a reaction to the
> inability to customize the code. The root cause of this was Twitter moving
> to internal storage (Manhattan) and also the project not being managed as a
> product. By mid 2015, the community regrouped as OpenZipkin and the
> codebase moved from Twitter to an org also named OpenZipkin. This led to
> fast progress on concerns including initially a server rewrite and Docker
> based deployment.
>
> In 2018, the second version of the data model completed, and along the
> way, many new libraries became standard, including javascript, golang and
> PHP. The community is dramatically larger than 2015, and Zipkin remains the
> most popular tracing system despite heavy competition.
>
> = Rationale =
> Zipkin is a de-facto distributed tracing system, which is more important
> as architectures become more fine grained due to popularity of microservice
> or even serverless architectures. Applications transition to use more
> complex communication including asynchronous code and service mesh,
> increasing the need for tools that visualize the behavior of requests as
> they map across an architecture.
>
> Zipkin's server is focused only on distributed tracing. It is meant to be
> used alongside existing logging and metrics systems. Generally, the
> community optimizes brown field concerns such as interop over breaking
> changes such as experimental features. The combination of code and
> community make Zipkin a safe and easier choice for various sites to
> introduce or grow their observability practice.
>
> = Initial Goals =
> The initial goals are to mature OpenZipkin's community process. For
> example, while OpenZipkin has a good collaborative process, it lacks
> formality around project management functions defined in the Apache
> Software Foundation (ASF). We also seek out help with brand abuse which is
> becoming common practice in the competitive landscape, yet demotivates
> volunteers. Towards volunteers, help with on boarding summer of code and
> funding for those who cannot afford to get to conferences on their own
> would be nice. Finally, we occasionally have organizations who are
> constrained to only work with foundation projects: ASF is often mentioned,
> and being in the ASF removes this collaboration roadblock.
>
> Zipkin will not move all existing code into Apache. In fact, most Zipkin
> ecosystem exists outside our org! The goal is to start with the data
> formats and server code. Possibly the java client-side libraries can move
> initially as well, depending on community feedback.
>
> = Current Status =
> == Meritocracy ==
> Zipkin is an active community of contributors who are encouraged to become
> committers. A Zipkin committer understands the importance of seeking
> community feedback, and the gravity of brown field concerns. Committers
> express diverse interest by contributing beyond their sites immediate needs
> and acknowledging features require diverse need before being merged into
> the core repositories. A camaraderie between committers and not yet
> committers exists and is re-inforced with face to face meetups where
> possible. We expect this to continue and build with incubation and ideally
> acceptance into the Apache Software Foundation (ASF).
>
> Zipkin encourages involvement from its community members, and the issues
> are open and available to any developers who wish to contribute to the
> project. The Zipkin team currently seeks help and asks for suggestions
> utilizing zipkin-user and zipkin-dev Google groups and Gitter chat on
> https://gitter.im/openzipkin/zipkin. While all contributions are
> reviewed, generally a "rule of three" policy on diverse need must be met
> before a feature is considered standard.
>
> == Community ==
> Zipkin has a highly active and growing community of users and developers.
> The community is currently fostered on chat
> https://gitter.im/openzipkin/zipkin and issues in their respective GitHub
> repositories, notably the main server:
> https://github.com/openzipkin/zipkin
>
> There are well over 1000 users in the chat room and hundreds who
> contributed code to code in the main OpenZipkin GitHub org. Interest
> metrics have grown dramatically: For example, in three years and a month
> from when Zipkin began until the time OpenZipkin formed, its main
> repository accumulated 2400 GitHub stars. In the same time after, it
> accumulated over 6700. Other metrics such as blog count and community
> meetings have similarly gone way up. We expect further growth as more learn
> about Zipkin and can engage with Zipkin through the guidance of the Apache
> Software Foundation (ASF).
>
> == Core Developers ==
> The core contributors are a diverse group comprised of both unaffiliated
> developers and those hailing from small to large companies. They are
> scattered geographically, and some are highly experienced industry as well
> as open source developers. Though their backgrounds may be diverse, the
> contributors are united in their belief in community driven software
> development.
>
> More detailed information on the core developers and contributors in
> general can be found under the section on homogeneous developers.
>
> == Alignment ==
> Zipkin adoption is growing, and it is no longer feasible for it to remain
> as an isolated project. Apache is experienced in dealing with software that
> is very widely accepted and has a growing audience. The proposers believe
> that the Zipkin team can benefit from the ASF's experience and its broad
> array of users and developers.
>
> Zipkin supports several Apache projects and options exist for integration
> with others. Apache CXF, Apache Camel, Apache Incubator SkyWalking and
> Apache Incubator HTrace all utilize Zipkin APIs in their core repositories.
> Many more do via community extensions. Apache Maven is primarily use by
> Zipkin, and can be used by projects who build upon Zipkin projects.
>
> == Known Risks ==
> === Orphaned products ===
> Zipkin is already being utilized at multiple companies that are actively
> participating in improving the code. The thriving community centered around
> Zipkin has seen steady growth, and the project is gaining traction with
> developers. The risks of the code being abandoned are minimal.
>
> === Inexperience with Open Source ===
> Zipkin rebooted its community in July 2015 and grown there for over three
> years. Additionally, many of the committers have extensive experience with
> other open source projects. Zipkin fosters a collaborative and
> community-driven environment.
>
> In the interest of openly sharing technology and attracting more community
> members, several of our developers also regularly attend conferences in
> North America and Europe to give talks about Zipkin. Zipkin meetups are
> also planned every few months for developers and community members to come
> together in person and discuss ideas.
>
> === Homogenous Developers ===
> At the time of the writing, OpenZipkin's core 12 developers all work at
> different companies around the globe. Most operate their own tracing sites,
> but some no longer operate sites at all: staying for the community we've
> built. Our ASF champion, Mick Semb Wever, is both a committer and an
> experienced ASF member.
>
> The Zipkin developers thrive upon the diversity of the community. The
> Zipkin gitter channel is always active, and the developers often
> collaborate on fixes and changes in the code. They are always happy to
> answer users' questions as well.
>
> Zipkin is interested in continuing to expand and strengthen its network of
> developers and community members through the ASF.
>
> === Reliance on Salaried Developers ===
> Zipkin has one full time salaried developer, Adrian Cole. Though some of
> the developers are paid by their employer to contribute to Zipkin, many
> Zipkin developers contribute code and documentation on their own time and
> have done so for a lengthy period. Given the current stream of development
> requests and the committers' sense of ownership of the Zipkin code, this
> arrangement is expected to continue with Zipkin' induction into the ASF.
>
> === Relationships with Other Apache Products ===
> Zipkin, Apache Incubator Skywalking and Apache Incubator HTrace address
> similiar use cases. Most similarities are between Zipkin and HTrace: Zipkin
> hopes to help serve the community formerly served by HTrace, but
> understands the data services focus of HTrace may require different
> tooling. SkyWalking addresses more feature surface than Zipkin. For
> example, metrics collection is not a goal of Zipkin, yet it is a goal of
> SkyWalking. SkyWalking accepts Zipkin formats and can be used as a
> replacement server. SkyWalking PPMC member, Sheng Wu, has been a routine
> member of Zipkin design discussions and has offered to help Zipkin through
> ASF process.
>
> While Zipkin does not directly rely upon any Apache project, zipkin
> supports several Apache projects. Apache CXF, Apache Camel, Apache
> Incubator SkyWalking, Apache Incubator Dubbo, Apache Incubator ServiceComb
> and Apache Incubator HTrace all utilize Zipkin APIs in their core
> repositories. Many more do via community extensions. Apache Maven is
> primarily use by Zipkin, and can be used by projects who build upon Zipkin
> projects.
>
> === A Excessive Fascination with the Apache Brand ===
> Zipkin recognizes the fortitude of the Apache brand, but the motivation
> for becoming an Apache project is to strengthen and expand the Zipkin
> community and its user base. While the Zipkin community has seen steady
> growth over the past several years, association with the ASF is expected to
> expedite this pattern of growth. Development is expected to continue on
> Zipkin under the Apache license whether or not it is supported by the ASF.
>
> == Documentation ==
> The Zipkin project documentation is publicly available at the following
> sites:
>
>   * https://zipkin.io: project overview
>   * http://zipkin.io/zipkin-api/#/: swagger specification
>   * https://github.com/openzipkin/b3-propagation: header formats
>   * https://zipkin.io/zipkin/: Javadocs for the Zipkin server
>
> == Initial Source ==
> The initial source is located on GitHub in the following repositories:
>
>   * git://github.com/OpenZipkin/zipkin.git
>   * git://github.com/OpenZipkin/zipkin-dependencies.git
>   * git://github.com/OpenZipkin/zipkin-api.git
>   * git://github.com/OpenZipkin/b3-propagation.git
>   * git://github.com/OpenZipkin/docker-zipkin.git
>   * git://github.com/OpenZipkin/docker-zipkin-dependencies.git
>   * git://github.com/openzipkin/zipkin-reporter-java
>   * git://github.com/openzipkin/brave
>   * git://github.com/openzipkin/zipkin-aws
>   * git://github.com/openzipkin/docker-zipkin-aws
>   * git://github.com/openzipkin/zipkin-azure
>   * git://github.com/openzipkin/docker-zipkin-azure
>   * git://github.com/openzipkin/zipkin-gcp
>   * git://github.com/openzipkin/docker-zipkin-gcp
>   * git://github.com/openzipkin/brave-cassandra
>   * git://github.com/openzipkin/docker-jre-full
>   * git://github.com/openzipkin/brave-karaf
>
> Depending on community progress, other repositories may be moved as well
>
> == Source and Intellectual Property Submission Plan ==
> Zipkin's initial source is licensed under the Apache License, Version 2.0.
> https://github.com/openzipkin/zipkin/blob/master/LICENSE
>
> All source code is copyrighted to 'The OpenZipkin Authors', to which the
> existing core community(members list in Initial Committers) has the rights
> to re-assign to the ASF.
>
> == External Dependencies ==
> This is a listing of Maven coordinates for all of the external
> dependencies Zipkin uses. All of the dependencies are in Sonatype and their
> licenses should be accessible.
>
> == Cryptography ==
> Zipkin contains no cryptographic algorithms.
>
> = Required Resources =
> == Mailing Lists ==
>   * Zipkin-dev: for development discussions
>   * Zipkin-user: for community discussions
>   * Zipkin-private: for PPMC discussions
>   * Zipkin-commits: for code changes
>
> == Git Repositories ==
> The Zipkin team is experienced in git and requests to transfer GitHub
> repositories(list in Initial Source) to Apache.
>
> == Issue Tracking ==
> The community would like to continue using GitHub Issues.
>
> = Initial Committers =
>   * Zoltán Nagy
>   * Adrian Cole, Pivotal
>   * Bas van Beek
>   * Brian Devins
>   * Eirik Sletteberg
>   * Jeanneret Pierre-Hugues
>   * Jordi Polo Carres
>   * José Carlos Chávez
>   * Kristof Adriaenssens
>   * Lance Linder
>   * Mick Semb Wever,
>   * Tommy Ludwig
>
> = Champion =
>  * Michael Semb Wever, mck@apache.org
>
> = Mentors =
>  * Michael Semb Wever, mck@apache.org
>  * Andriy Redko, reta@apache.org
>  * John D. Ament, johndament@apache.org
>  * Willem Ning Jiang, ningjiang@apache.org
>
> = Sponsoring Entity =
> We are requesting the Apache Incubator to sponsor this project.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> For additional commands, e-mail: general-help@incubator.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message