从0到1:Apache APISIX的Apache之道

API7.ai

December 16, 2019

Uncategorized

Apache APISIXは非常に若いプロジェクトで、今年6月にオープンソース化され、7月にCNCFパノラマに参加し、10月にApache Incubatorに入りました。そこで、APISIXがどのようにして0から1になり、Apache Incubatorに入ったかを皆さんと共有したいと思います。

Apache APISIXは現在、16の異なる企業から17人のコミッターがおり、非常にコミュニティベースのプロジェクトです。各コミッターは1票を持ち、リリースや新しいコミッターやPPMCの選出などの重要なことを決定します。

Apache Way

Apache Wayは私たちがよく知っている概念です:コードよりもコミュニティ。悪いコードは変更できますが、Apacheのメンターは高レベルのコードの書き方を教えるのではなく、コミュニティが健全で成長しているかどうかを気にします。良いコミュニティがあれば、悪いコードはより高いレベルの人々によってより良いコードにリファクタリングされます。したがって、コミュニティさえあれば、プロジェクトは存続し、それがApacheで最も重要なことです。

メーリングリストの優先順位も重要なポイントです。メーリングリストに現れなかったものは存在しないものとして扱われます。これは中国では非常に大きな挑戦です。文化的にも習慣的にも、人々はメールを使うのがあまり好きではありません。まず、時間が十分にタイムリーでないこと、メールを送信してから1-2日後に返信を受け取るかもしれないこと。次に、メーリングリストの多くのことは公開されており、一部の人はプライベートでチャットするのが好きです。第三に、メーリングリスト内では英語しか使えませんが、実際には中国人の英語は悪くなく、他のほとんどの国の英語よりもはるかに優れています。結局のところ、私たちは何年も英語を学び、さまざまな翻訳ソフトウェアがあり、文法の誤りがあっても大きな問題ではありません。

第三に、エリートガバナンスがあります。Apacheコミュニティの誰もが貢献することでより多くの発言権を得ることができ、より高いタイトルはより多くのコミットメントと責任を意味します。

第四に、民主主義です。誰でもApacheの投票に参加できます。Apacheコミュニティにいなくても、誰の投票も有効ではありません。例えば、APISIXがApache Incubatorに入ったとき、私はプロジェクトに投票できましたが、その後no bindingと書いて、プロジェクトを支持しフォローしているが、私はオブザーバーであることを示さなければなりませんでした。しかし、この投票はプロジェクトがApacheに入れるかどうかの決定的なものではありませんでした。インキュベーターに貢献し、コミュニティに認められた人、つまりApacheインキュベーターのPMCだけが、彼らの投票が有効です。これがApacheコミュニティの民主主義です。

オープンソースコミュニティのガバナンスモデル

私たちは、多くのオープンソースプロジェクトが財団の下にあること、一部はそうでないことを知っています。Linux FoundationやApache Foundationなどの財団の下にあるプロジェクトは、「コミュニティコンセンサス」と呼ばれるガバナンスモデルを持っています。これは、コミュニティ内で議論し、コンセンサスに達した後に投票することを要求し、直接投票するのではありません。議論とコンセンサスがなければ、投票は意味がありません。この効率は非常に遅いかもしれませんが、コミュニティ全体がコンセンサスに達したときだけ、後ろに異論がありません。

第二に、商業会社のコンセンサスがあります。商業会社の人々がコンセンサスに達すれば、PRや機能をマージすることができ、コミュニティの声は無意味です。なぜなら、それは商業会社がコントロールするプロジェクトであり、商業会社にコードを貢献すれば、マージするかどうかの決定は商業会社の手にあります。これは個人開発者にとっては問題ないかもしれませんが、プロジェクトに関わる会社にとっては問題です。通常、会社はプライベートバージョンを持っており、彼らの機能をコミュニティに貢献したいと思っていますが、商業会社は彼ら自身の商業バージョンと競合するため、それらを拒否するかもしれません。

第三に、慈悲深い独裁者がいます。最も典型的なのはPythonで、個人がオープンソースプロジェクトの開発を決定します。

以上がオープンソースコミュニティの3つのモデルです。ビジネスがプロジェクトを選ぶ場合、一般的にはApache、Linux Foundationのプロジェクトを推薦します。それはまず法的に隠れた危険がなく、次にコミュニティコンセンサスであるため、このようにコミュニティに貢献することでより多くの発言権を得ることができ、良い循環が形成されます。

Apache Incubatorに入る方法

Apacheには現在、約50のインキュベータープロジェクトがあり、そのうち10は中国からのものです。APISIXは現在、国内のスタートアップからApacheに入った唯一のプロジェクトであり、他の多くはHuawei、Ali、Baiduなどの大企業からのものです。

プロジェクトがApache Incubatorに入るためには、以下の用語とステップを理解する必要があります:

  • Champion:彼はあなたのプロジェクトの紹介者で、最初に連絡を取る必要がある最も重要な役割であり、彼はあなたとプロジェクトに精通している必要があります。
  • Mentor:プロジェクトのメンターで、プロジェクトがApache Incubatorに入った後、Championはメンターの役割に変わります。Mentorは、インキュベーター内のプロジェクトからトップレベルのApacheプロジェクトに導き、Apacheバージョンのリリース、ブランド管理、コミュニティの成長などを含みます。トップレベルのプロジェクトになれば、プロジェクトはコミュニティ自治になります。
  • Proposal:ChampionとMentorを見つけた後、次にProposalを書きます。つまり、私が誰で、どのような問題を解決し、なぜApacheに参加したいのか、プロジェクトの現在のコードファイルがApacheライセンスと競合しないか、初期のコミッターは誰で、どの会社から来ているのか、潜在的なリスクはないか、後でどのように開発するかなどを紹介する提案です。
  • Discuss:その後、議論のメールを開始し、これに興味を持つ人がどれだけいるかを見て、興味を持つPMCを見つけて、この段階でMentorの指導プログラムに参加させることができます。
  • Vote:最後に投票があり、投票が通過すれば、プロジェクトはApacheインキュベーターに入ることができます。

Apache Wayと国内オープンソース文化の衝突

中国のApacheプロジェクトは、国内外のオープンソース環境と文化に関連する多くの異なる挑戦に遭遇します。

例えば、国内のエンジニアは忙しすぎると感じ、しばしば996の残業があるため、オープンソースをする時間とエネルギーがありません。しかし、実際には、多くのエンジニアが仕事中にオープンソースプロジェクトを使用し、オープンソースプロジェクトの機能を書きますが、彼らは積極的にPRを提出せず、コミュニティにコードを書く前に議論を開始しません。これは多くの文化的な違いです。

コミュニケーションに関しては、Apacheはメーリングリストでの公開討論を提唱していますが、中国の多くの開発者は非公開の方法、例えばWeChat、QQ、電話などを好みます。特に、プロジェクトのPPMCが同じ会社から来ている場合、機能は朝の会議で決定されるかもしれませんが、メーリングリストには現れません。これはApacheの文化に合致しません。

投票に関しては、多くの開発者は自分の英語が良くないか、人が弱いと感じ、メーリングリストで意見を表明したがらず、投票に参加しません。それで、最終的には無視されます。したがって、他の人を助け、徐々に自分の影響力を高めるために、いくつかの「貢献」を蓄積する必要があります。Apacheは個人で構成される財団です。誰の行動も会社ではなく、自分自身を代表します。各PMCの投票は平等です。

Titleに関しては、Apacheでは、最高の地位はApache Foundation Chairと呼ばれ、各プロジェクトのマネージャーはVP、次にPMC(Project Management Council)、Committer、Contributorで、私たちの企業のタイトル昇進と似た道をたどります。しかし、Apacheでは、たとえ地位が高くなっても、より多くの投票権を持つことを意味しません。それはむしろ義務です。例えば、Apache APISIXの投票で新しいコミッターを選出する場合、インキュベーターの議長の投票と私の投票は同じです。TitleはApacheではむしろ名誉です。Apache Foundationは非営利組織で、貢献を強調し、それが文化の衝突です。

著作権問題

著作権は非常に重要な問題であり、最近起こったNginx作者の逮捕は著作権問題によるものでした。プロジェクトが正式にApache Incubatorに参加する前に、すべてのコミッターと会社はCLAに署名し、プロジェクトのすべての著作権をApache Foundationに寄付することを表明しなければなりません。Apache Incubatorに参加した後、最も重要なマイルストーンは最初のApacheリリースをリリースすることです。これは、ライセンスのリスクをクリアして、ユーザーが安心して使用できるようにすることです。したがって、商業会社はApacheのプロジェクトを使用する際に著作権が不明確な問題がないことが保証されます。

最後に、Apache APISIXは急速に進化しているオープンソースプロジェクトです。皆さんが参加し、より多くの貢献をすることを願っています。ありがとうございます。

Tags: