Von 0 zu 1: Der Apache Way von Apache APISIX

API7.ai

December 16, 2019

Uncategorized

Apache APISIX ist ein sehr junges Projekt, das im Juni dieses Jahres als Open Source veröffentlicht wurde, im Juli dem CNCF Panorama beitrat und im Oktober in den Apache Incubator aufgenommen wurde. Daher möchte ich mit Ihnen teilen, wie APISIX von 0 auf 1 gewachsen ist und in den Apache Incubator aufgenommen wurde.

Apache APISIX hat jetzt 17 Committer aus 16 verschiedenen Unternehmen und ist ein sehr gemeinschaftsbasiertes Projekt. Jeder Committer hat eine Stimme und entscheidet über wichtige Dinge wie Veröffentlichungen, die Wahl neuer Committer und PPMC.

Apache Way

Der Apache Way ist ein Konzept, das uns allen vertraut ist: Community über Code. Schlechter Code kann geändert werden, und die Mentoren von Apache coachen Sie nicht darin, wie man höherwertigen Code schreibt. Sie kümmern sich mehr darum, ob die Community gesund und wachsend ist. Solange es eine gute Community gibt, wird schlechter Code von höher qualifizierten Personen zu besserem Code refaktorisiert. Solange die Community existiert, wird das Projekt überleben, und das ist das Wichtigste bei Apache.

Die Priorität der Mailingliste ist ein weiterer wichtiger Punkt. Dinge, die nicht in der Mailingliste erscheinen, werden als nicht existent behandelt. Dies ist in China tatsächlich eine sehr große Herausforderung, da Menschen kulturell und gewohnheitsmäßig nicht sehr gerne E-Mails verwenden: Erstens ist die Zeit nicht rechtzeitig genug, vielleicht dauert es 1-2 Tage, bis eine E-Mail gesendet und eine Antwort erhalten wird; zweitens sind viele Dinge in der Mailingliste öffentlich, einige Leute bevorzugen private Gespräche; drittens darf in der Mailingliste nur Englisch erscheinen, aber eigentlich ist das Englisch der Chinesen nicht schlecht, wir sind viel besser als das Englisch der meisten anderen Länder. Schließlich haben wir viele Jahre Englisch gelernt, und es gibt verschiedene Übersetzungssoftware, selbst wenn es grammatikalische Fehler gibt, ist das kein großes Problem.

Das dritte ist die Elite-Governance, bei der jeder in der Apache-Community durch Beiträge mehr Mitspracherecht erhält, und höhere Titel bedeuten mehr Engagement und Verantwortung.

Das vierte ist die Demokratie, jeder kann an der Apache-Abstimmung teilnehmen, auch wenn Sie nicht in der Apache-Community sind, aber nicht jede Stimme ist gültig. Zum Beispiel, als APISIX in den Apache Incubator aufgenommen wurde, konnte ich für das Projekt abstimmen, aber ich musste danach "no binding" schreiben, um anzuzeigen, dass ich das Projekt unterstützte und verfolgte, aber ich war ein Beobachter, aber diese Stimme war nicht entscheidend dafür, ob das Projekt in Apache aufgenommen werden konnte. Nur diejenigen, die zum Incubator beigetragen haben und von der Community anerkannt sind, d.h. die PMC des Apache Incubators, ihre Stimmen sind gültig, das ist die Demokratie der Apache-Community.

Governance-Modell für Open-Source-Communities

Wir wissen, dass viele Open-Source-Projekte unter Stiftungen stehen und einige nicht. Projekte unter Stiftungen, wie die Linux Foundation und die Apache Foundation, haben ein Governance-Modell namens "Community-Konsens", das eine Diskussion innerhalb der Community und eine Abstimmung nach Erreichen eines Konsenses erfordert, anstatt einer direkten Abstimmung. Wenn es keine Diskussion und keinen Konsens gibt, dann ist die Abstimmung bedeutungslos. Diese Effizienz kann sehr langsam sein, aber nur wenn die gesamte Community einen Konsens erreicht, gibt es keine Meinungsverschiedenheiten im Hintergrund.

Das zweite ist der Konsens der kommerziellen Unternehmen, solange die Leute des kommerziellen Unternehmens einen Konsens erreichen, dann kann der PR oder das Feature zusammengeführt werden, und die Stimme der Community ist nutzlos, weil es ein Projekt ist, das von dem kommerziellen Unternehmen kontrolliert wird, und wenn Sie Code an das kommerzielle Unternehmen beitragen, liegt die Entscheidung, ob er zusammengeführt wird, in den Händen des kommerziellen Unternehmens. Dies mag für einzelne Entwickler keine Rolle spielen, aber für die an dem Projekt beteiligten Unternehmen. Normalerweise haben Unternehmen private Versionen, und sie möchten ihre Features an die Community zurückgeben, aber die kommerziellen Unternehmen könnten sie ablehnen, weil sie mit ihren eigenen kommerziellen Versionen in Konflikt stehen.

Das dritte ist der wohlwollende Diktator, am typischsten ist Python, wo die Einzelperson über die Entwicklung von Open-Source-Projekten entscheidet.

Die oben genannten sind die drei Modelle von Open-Source-Communities, wenn es ein Unternehmen ist, das ein Projekt auswählt, empfehlen wir im Allgemeinen Apache-, Linux Foundation-Projekte, es ist erstens rechtlich unbedenklich, und zweitens ist es ein Community-Konsens, wir können auf diese Weise zur Community beitragen, um mehr Mitspracherecht zu erhalten, so dass ein positiver Kreislauf entsteht.

Wie man in den Apache Incubator kommt

Apache hat jetzt fast 50 Incubator-Projekte, davon 10 aus China. APISIX ist jetzt das einzige Projekt eines inländischen Startups, das in Apache aufgenommen wurde, während viele andere von großen Unternehmen wie Huawei, Ali und Baidu stammen.

Die folgenden Begriffe und Schritte müssen verstanden werden, damit ein Projekt in den Apache Incubator aufgenommen werden kann:

  • Champion: Er ist der Einführer Ihres Projekts, das ist die wichtigste Rolle, die Sie zuerst ansprechen müssen, und er muss Sie und das Projekt gut kennen.
  • Mentor: Der Mentor des Projekts, nachdem das Projekt in den Apache Incubator aufgenommen wurde, wird der Champion zur Rolle des Mentors. Der Mentor wird das Projekt von einem Projekt im Incubator zu einem Top-Level-Apache-Projekt führen, einschließlich der Veröffentlichung von Apache-Versionen, Markenmanagement, Wachstum der Community und so weiter. Wenn es ein Top-Level-Projekt wird, dann wird das Projekt gemeinschaftlich autonom.
  • Proposal: Nachdem Sie Champion und Mentor gefunden haben, ist der nächste Schritt, ein Proposal zu schreiben, d.h. einen Vorschlag, der vorstellt, wer ich bin, welche Probleme ich löse, warum ich Apache beitreten möchte, ob die aktuellen Code-Dateien des Projekts mit der Apache-Lizenz in Konflikt stehen, wer die anfänglichen Committer sind, aus welchen Unternehmen sie kommen, ob es potenzielle Risiken gibt, wie die spätere Entwicklung aussehen soll, usw.
  • Discuss: Dann wird eine Diskussions-E-Mail initiiert, um zu sehen, wie viele Leute daran interessiert sind, und einige interessierte PMCs können in diesem Stadium gefunden werden, um dem Mentor-Mentoring-Programm beizutreten.
  • Vote: Schließlich gibt es eine Abstimmung, und wenn die Abstimmung erfolgreich ist, kann das Projekt in den Apache Incubator aufgenommen werden.

Apache Way und der Zusammenprall mit der inländischen Open-Source-Kultur

Das Apache-Projekt in China wird auf viele verschiedene Herausforderungen stoßen, die mit der Open-Source-Umgebung und -Kultur im In- und Ausland zusammenhängen.

Zum Beispiel werden inländische Ingenieure sich zu beschäftigt fühlen, oft mit 996 Überstunden, so dass sie keine Zeit und Energie haben, Open Source zu betreiben. Aber tatsächlich verwenden viele Ingenieure bei der Arbeit auch Open-Source-Projekte, schreiben Features für Open-Source-Projekte, aber sie reichen keine PRs ein und initiieren keine Diskussionen in der Community, bevor sie Code schreiben, was viele kulturelle Unterschiede aufzeigt.

In Bezug auf die Kommunikation befürwortet Apache offene Diskussionen in der Mailingliste, aber viele Entwickler in China bevorzugen nicht-öffentliche Kommunikationswege wie WeChat, QQ und Telefon. Besonders wenn die PPMC eines Projekts größtenteils aus demselben Unternehmen stammt, kann ein Feature während der Morgenbesprechung finalisiert werden, aber es erscheint nicht in der Mailingliste, was nicht der Apache-Kultur entspricht.

In Bezug auf Abstimmungen fühlen sich viele Entwickler möglicherweise, dass ihr Englisch nicht gut genug ist oder sie schwach sind, und sie zögern, ihre Meinungen in der Mailingliste zu äußern und nehmen nicht an Abstimmungen teil. Dann werden sie am Ende ignoriert. Daher müssen Sie einige "Beiträge" ansammeln, um anderen zu helfen und langsam Ihren Einfluss zu erhöhen. Apache ist eine Stiftung, die aus Einzelpersonen besteht. Das Verhalten jedes Einzelnen repräsentiert nur sich selbst, nicht das Unternehmen. Die Stimme jedes PMC ist gleich.

In Bezug auf Titel ist in Apache die höchste Position der Apache Foundation Chair, und der Manager jedes Projekts ist VP, dann PMC (Project Management Council), Committer, Contributor, was einem ähnlichen Pfad wie unserer Unternehmens-Titelbeförderung entspricht. Aber in Apache bedeutet selbst eine hohe Position nicht mehr Stimmkraft, es ist eher eine Verpflichtung, zum Beispiel für die Apache APISIX-Abstimmung zur Wahl eines neuen Committers, die Stimme des Incubator-Chairs und meine Stimme sind gleich. Titel sind in Apache eher eine Ehre. Die Apache Foundation ist eine gemeinnützige Organisation, die Beiträge betont, und dort prallen die Kulturen aufeinander.

Urheberrechtsfragen

Das Urheberrecht ist ein sehr wichtiges Thema, und die vor einiger Zeit erfolgten Verhaftungen des Nginx-Autors waren auf Urheberrechtsprobleme zurückzuführen. Bevor ein Projekt offiziell dem Apache Incubator beitreten kann, müssen alle Committer und Unternehmen ein CLA unterzeichnen, das besagt, dass sie das gesamte Urheberrecht des Projekts an die Apache Foundation spenden. Nach dem Beitritt zum Apache Incubator ist der wichtigste Meilenstein die Veröffentlichung der ersten Apache-Version, um die Risiken in der Lizenz zu bereinigen, damit Benutzer sie sicher verwenden können. Daher ist es für kommerzielle Unternehmen sicher, die Projekte von Apache zu verwenden, ohne das Problem eines unklaren Urheberrechts.

Schließlich ist Apache APISIX ein Open-Source-Projekt, das sich schnell entwickelt, ich hoffe, Sie werden teilnehmen und mehr beitragen, Danke.

Tags: