От 0 до 1: Apache APISIX и путь Apache

API7.ai

December 16, 2019

Uncategorized

Apache APISIX — это очень молодой проект, который был открыт в июне этого года, присоединился к CNCF Panorama в июле и вошел в Apache Incubator в октябре. Сегодня я расскажу вам, как APISIX прошел путь от 0 до 1 и попал в Apache Incubator.

На данный момент в Apache APISIX 17 коммиттеров из 16 разных компаний, что делает его очень ориентированным на сообщество проектом. Каждый коммиттер имеет один голос и участвует в принятии важных решений, таких как выпуск новых версий, выбор новых коммиттеров и членов PPMC.

Apache Way

Apache Way — это концепция, с которой мы все знакомы: сообщество важнее кода. Плохой код можно изменить, и наставники Apache не учат вас писать более качественный код, их больше волнует, здорово ли сообщество и растет ли оно. Если сообщество сильное, плохой код будет переработан в лучший более опытными людьми. Поэтому, пока существует сообщество, проект будет жить, и это самое важное в Apache.

Приоритет почтовой рассылки — еще один важный момент. То, что не появилось в почтовой рассылке, считается несуществующим. Это действительно большая проблема в Китае, так как люди культурно и привычно не любят использовать электронную почту: во-первых, время ответа может затянуться на 1-2 дня; во-вторых, многие вещи в рассылке публичны, а некоторые предпочитают общаться приватно; в-третьих, в рассылке можно использовать только английский язык, хотя уровень английского у китайцев достаточно высок, и мы знаем его лучше, чем большинство других стран. В конце концов, мы учим английский много лет, и есть различные программы для перевода, так что даже грамматические ошибки не являются большой проблемой.

Третий принцип — это элитное управление, где каждый в сообществе Apache вносит вклад, чтобы получить больше голоса, а более высокие звания означают больше обязательств и ответственности.

Четвертый принцип — демократия. Каждый может участвовать в голосовании Apache, даже если вы не входите в сообщество Apache, но не каждый голос имеет силу. Например, когда APISIX входил в Apache Incubator, я мог проголосовать за проект, но должен был написать "no binding", чтобы показать, что я поддерживаю проект, но являюсь наблюдателем. Однако этот голос не был решающим для входа проекта в Apache. Только те, кто внес вклад в инкубатор и признан сообществом, то есть PMC Apache Incubator, их голоса имеют силу. Это демократия сообщества Apache.

Модели управления открытыми сообществами

Мы знаем, что многие открытые проекты находятся под управлением фондов, а некоторые — нет. Проекты под управлением фондов, таких как Linux Foundation и Apache Foundation, имеют модель управления под названием "консенсус сообщества", которая требует обсуждения внутри сообщества и голосования после достижения консенсуса, а не прямого голосования. Если нет обсуждения и консенсуса, то голосование бессмысленно. Это может быть медленно, но только когда все сообщество достигает консенсуса, не будет разногласий в дальнейшем.

Вторая модель — это консенсус коммерческой компании. Если сотрудники коммерческой компании достигают согласия, то PR или функция могут быть объединены, и голос сообщества не имеет значения, так как это проект, контролируемый коммерческой компанией. Если вы вносите код в коммерческую компанию, решение о слиянии находится в руках компании. Это может не иметь значения для отдельных разработчиков, но важно для компаний, участвующих в проекте. Обычно у компаний есть приватные версии, и они хотят внести свои функции обратно в сообщество, но коммерческие компании могут отказать, так как это может конфликтовать с их собственными коммерческими версиями.

Третий тип — это "доброжелательный диктатор", наиболее типичным примером является Python, где один человек решает развитие открытых проектов.

Вышеупомянутые три модели открытых сообществ. Если бизнес выбирает проект, мы обычно рекомендуем проекты Apache или Linux Foundation, так как они юридически безопасны и основаны на консенсусе сообщества. Мы можем вносить вклад в сообщество, чтобы получить больше голоса, создавая таким образом добродетельный круг.

Как попасть в Apache Incubator

В Apache сейчас около 50 проектов в инкубаторе, из которых 10 — из Китая. APISIX — единственный проект от китайского стартапа, который вошел в Apache, в то время как многие другие проекты принадлежат крупным компаниям, таким как Huawei, Ali и Baidu.

Для того чтобы проект попал в Apache Incubator, необходимо понимать следующие термины и шаги:

  • Champion: Это человек, который представляет ваш проект, самая важная роль, с которой нужно связаться в первую очередь. Он должен быть знаком с вами и проектом.
  • Mentor: Наставник проекта. После входа проекта в Apache Incubator, Champion становится наставником. Наставник будет направлять проект от стадии инкубатора до уровня топового проекта Apache, включая выпуск версий Apache, управление брендом, рост сообщества и так далее. Если проект станет топовым, он будет автономным.
  • Proposal: После нахождения Champion и Mentor, следующий шаг — написание Proposal, то есть предложения, в котором описывается, кто вы, какие проблемы решаете, почему хотите присоединиться к Apache, есть ли конфликты в лицензиях, кто начальные коммиттеры, из каких они компаний, есть ли потенциальные риски, как будет развиваться проект и так далее.
  • Discuss: Затем инициируется обсуждение по электронной почте, чтобы узнать, сколько людей заинтересованы в проекте. На этом этапе можно найти заинтересованных PMC, которые присоединятся к программе наставничества.
  • Vote: Наконец, проводится голосование, и если оно проходит, проект может войти в Apache Incubator.

Apache Way и конфликт с китайской культурой открытого кода

Проекты Apache в Китае сталкиваются с множеством вызовов, связанных с различиями в культуре и окружении открытого кода.

Например, китайские инженеры часто чувствуют себя слишком занятыми, работая по 996 (9 утра до 9 вечера, 6 дней в неделю), и у них нет времени и энергии на открытый код. Однако многие инженеры на работе используют открытые проекты и пишут функции для них, но они не отправляют PR и не обсуждают код в сообществе заранее, что является культурным различием.

В плане коммуникации Apache призывает к открытым обсуждениям в почтовой рассылке, но многие китайские разработчики предпочитают непубличные способы общения, такие как WeChat, QQ и телефон. Особенно если PPMC проекта в основном из одной компании, функция может быть утверждена на утреннем совещании, но не появится в рассылке, что не соответствует культуре Apache.

Что касается голосования, многие разработчики могут чувствовать, что их английский недостаточно хорош, или они слабы в общении, и не хотят выражать свое мнение в рассылке и не участвуют в голосовании. В итоге их игнорируют. Поэтому нужно накапливать "вклады", помогать другим и постепенно увеличивать свое влияние. Apache — это фонд, состоящий из индивидуалов. Каждый представляет только себя, а не компанию. Голос каждого PMC равен.

Что касается званий, в Apache высшая должность называется Apache Foundation Chair, а руководитель каждого проекта — VP, затем PMC (Project Management Council), Committer, Contributor, что похоже на корпоративную иерархию. Но в Apache, даже если ваше звание высокое, это не значит, что у вас больше голоса, это скорее обязательство. Например, при голосовании за нового коммиттера в Apache APISIX, голос председателя инкубатора и мой голос равны. Звание в Apache — это скорее почетное звание. Apache Foundation — это некоммерческая организация, которая подчеркивает вклад, и здесь возникает конфликт культур.

Проблемы авторского права

Авторское право — это очень важный вопрос. Недавний арест автора Nginx произошел из-за проблем с авторским правом. Прежде чем проект официально войдет в Apache Incubator, все коммиттеры и компании должны подписать CLA, заявляя, что они передают все авторские права на проект Apache Foundation. После входа в Apache Incubator, самым важным этапом является выпуск первой версии Apache, которая устраняет риски в лицензии, чтобы пользователи могли использовать проект с уверенностью. Поэтому коммерческие компании могут использовать проекты Apache без проблем с неясным авторским правом.

В заключение, Apache APISIX — это быстро развивающийся открытый проект, и я надеюсь, что вы будете участвовать и вносить свой вклад. Спасибо.

Tags: