De 0 a 1: El Camino Apache de Apache APISIX
API7.ai
December 16, 2019
Apache APISIX es un proyecto muy joven, de código abierto desde junio de este año, se unió al Panorama de CNCF en julio y entró en el Apache Incubator en octubre, por lo que compartiré con ustedes cómo APISIX pasó de 0 a 1 y entró en el Apache Incubator.
Apache APISIX ahora tiene 17 committers, de 16 empresas diferentes, y es un proyecto muy basado en la comunidad. Cada committer tiene un voto y decide sobre temas importantes como lanzamientos, elección de nuevos committers y PPMC.
El Camino Apache
El Camino Apache es un concepto que todos conocemos: la comunidad sobre el código. El código malo puede cambiarse, y los mentores de Apache no te enseñan cómo escribir código de mayor nivel, les importa más si la comunidad es saludable y está creciendo, y siempre que haya una buena comunidad, el código malo será refactorizado a mejor código por personas de mayor nivel. Así que, mientras exista la comunidad, el proyecto sobrevivirá, y eso es lo más importante en Apache.
La prioridad de la lista de correo es otro punto importante, aquellos que no aparecen en la lista de correo se tratan como inexistentes. Esto es en realidad un gran desafío en China, cultural y habitualmente a la gente no le gusta mucho usar correos electrónicos: en primer lugar, el tiempo no es lo suficientemente oportuno, tal vez 1-2 días después de enviar un correo para recibir una respuesta; en segundo lugar, muchas cosas en la lista de correo son públicas, a algunas personas les gusta chatear en privado; en tercer lugar, solo puede aparecer inglés dentro de la lista de correo, pero en realidad el inglés de los chinos no es malo, somos mucho mejores que el inglés de la mayoría de los otros países. Después de todo, hemos aprendido inglés durante muchos años, y hay varios software de traducción, incluso si hay errores gramaticales, no es un gran problema.
El tercero es la gobernanza de élite, donde todos en la comunidad de Apache contribuyen para ganar más voz, y los títulos más altos significan más compromiso y responsabilidad.
El cuarto es la democracia, todos pueden participar en la votación de Apache, incluso si no estás en la comunidad de Apache, pero no todos los votos son válidos. Por ejemplo, cuando APISIX entró en el Apache Incubator, yo podía votar por el proyecto, pero tenía que escribir "no binding" después para indicar que apoyaba y seguía el proyecto, pero era un observador, pero este voto no era decisivo para que el proyecto pudiera entrar en Apache. Solo aquellos que han contribuido al incubador y son reconocidos por la comunidad, es decir, el PMC del incubador de Apache, sus votos son válidos, lo cual es la democracia de la comunidad de Apache.
Modelo de gobernanza para comunidades de código abierto
Sabemos que muchos proyectos de código abierto están bajo fundaciones y algunos no. Los proyectos bajo fundaciones, como la Linux Foundation y la Apache Foundation, tienen un modelo de gobernanza llamado "consenso comunitario", que requiere una discusión dentro de la comunidad y una votación después de alcanzar un consenso, en lugar de una votación directa. Si no hay discusión y consenso, entonces la votación no tiene sentido. Esta eficiencia puede ser muy lenta, pero solo cuando toda la comunidad alcanza un consenso, no habrá disidencia detrás.
El segundo es el consenso de la empresa comercial, siempre que las personas de la empresa comercial alcancen un consenso, entonces el PR o la característica puede fusionarse, y la voz de la comunidad es inútil porque es un proyecto controlado por la empresa comercial, y si contribuyes código a la empresa comercial, la decisión de fusionarse está en manos de la empresa comercial. Esto puede no importar a los desarrolladores individuales, pero sí a las empresas involucradas en el proyecto. Por lo general, las empresas tienen versiones privadas, y quieren contribuir sus características a la comunidad, pero las empresas comerciales pueden rechazarlas porque entran en conflicto con sus propias versiones comerciales.
El tercer tipo es el dictador benevolente, más típicamente Python, donde el individuo decide sobre el desarrollo de proyectos de código abierto.
Los anteriores son los tres modelos de comunidades de código abierto, si es un negocio elegir un proyecto, en general recomendaremos proyectos de Apache, Linux Foundation, es primero en lo legal no hay peligro oculto, y en segundo lugar es un consenso comunitario, podemos contribuir a la comunidad de esta manera para obtener más voz, de modo que se forme un círculo virtuoso.
Cómo entrar en el Apache Incubator
Apache ahora tiene cerca de 50 proyectos en incubación, de los cuales 10 son de China. APISIX es ahora el único proyecto de una startup nacional en entrar en Apache, mientras que muchos otros son de grandes empresas como Huawei, Ali y Baidu.
Los siguientes términos y pasos deben entenderse para que un proyecto entre en el Apache Incubator:
- Champion: Es el presentador de tu proyecto, que es el papel más importante al que necesitas acudir primero, y necesita estar familiarizado contigo y con el proyecto.
- Mentor: El mentor del proyecto, después de que el proyecto entra en el Apache Incubator, Champion se transforma en el papel de mentor. El Mentor guiará al proyecto desde un proyecto en incubación hasta un proyecto de nivel superior de Apache, incluyendo lanzar versiones de Apache, gestión de marca, crecimiento de la comunidad, etc. Si se convierte en un proyecto de nivel superior, entonces el proyecto será autónomo de la comunidad.
- Proposal: Después de encontrar Champion y Mentor, el siguiente paso es escribir una Propuesta, es decir, una propuesta que introduce quién soy, qué problemas resuelvo, por qué quiero unirme a Apache, si los archivos de código actuales del proyecto entran en conflicto con la licencia de Apache, quiénes son los committers iniciales, de qué empresas provienen, si hay riesgos potenciales, cómo desarrollarse más tarde, etc.
- Discuss: Luego se iniciará un correo de discusión para ver cuántas personas están interesadas en esto, y algunos PMC interesados pueden unirse al programa de mentoría en esta etapa.
- Vote: Finalmente, hay una votación, y si la votación pasa, el proyecto puede entrar en el incubador de Apache.
El Camino Apache y el choque de la cultura de código abierto nacional
El proyecto Apache en China encontrará muchos desafíos diferentes, que están relacionados con el entorno y la cultura de código abierto en el país y en el extranjero.
Por ejemplo, los ingenieros nacionales sentirán que están demasiado ocupados, a menudo con horas extras 996, por lo que no tienen tiempo y energía para hacer código abierto. Pero en realidad, muchos ingenieros en el trabajo también usarán proyectos de código abierto, escribirán características de proyectos de código abierto, pero no envían PR activamente, y no inician discusiones en la comunidad antes de escribir código, lo cual es una gran diferencia cultural.
En términos de comunicación, Apache aboga por la discusión abierta en la lista de correo, pero muchos desarrolladores en China prefieren formas no públicas de comunicarse, como WeChat, QQ y teléfono. Especialmente si el PPMC de un proyecto es en su mayoría de la misma empresa, una característica puede finalizarse durante la reunión matutina, pero no aparece en la lista de correo, lo cual no está en línea con la cultura de Apache.
En cuanto a la votación, muchos desarrolladores pueden sentir que su inglés no es bueno o que son débiles, y son reacios a expresar sus opiniones en la lista de correo y no participan en la votación. Entonces serán ignorados al final. Así que necesitas acumular algunas "contribuciones" para ayudar a otros y aumentar lentamente tu influencia. Apache es una fundación compuesta por individuos. El comportamiento de cada uno representa solo a uno mismo, no a la empresa. El voto de cada PMC es igual.
En cuanto al Título, en Apache, la posición más alta se llama Presidente de la Fundación Apache, y el gerente de cada proyecto es VP, luego PMC (Consejo de Gestión de Proyectos), Committer, Contributor, que tiene un camino similar a nuestra promoción de títulos corporativos. Pero en Apache, incluso si tu posición se vuelve alta, no significa que tengas más poder de voto, es más una obligación, por ejemplo, para la votación de Apache APISIX para elegir un nuevo committer, el voto del presidente del incubador y mi voto son iguales. El Título es más un honor en Apache. La Fundación Apache es una organización sin fines de lucro que enfatiza la contribución, y ahí es donde chocan las culturas.
Problemas de derechos de autor
Los derechos de autor son un tema muy importante, y los arrestos del autor de Nginx que ocurrieron hace un tiempo se debieron a problemas de derechos de autor. Antes de que un proyecto pueda unirse oficialmente al Apache Incubator, todos los committers y empresas tienen que firmar un CLA declarando que donarán todos los derechos de autor del proyecto a la Fundación Apache. Después de unirse al Apache Incubator, el hito más importante es el lanzamiento de la primera versión de Apache, que es limpiar los riesgos en la licencia para que los usuarios puedan usarla con confianza. Por lo tanto, las empresas comerciales tienen garantizado usar los proyectos de Apache sin el problema de derechos de autor poco claros.
Finalmente, Apache APISIX es un proyecto de código abierto que está evolucionando rápidamente, espero que participen y contribuyan más, Gracias.