0에서 1로: Apache APISIX의 Apache Way
API7.ai
December 16, 2019
Apache APISIX는 매우 젊은 프로젝트로, 올해 6월에 오픈 소스로 공개되었고, 7월에 CNCF Panorama에 합류했으며, 10월에 Apache Incubator에 진입했습니다. 따라서 저는 APISIX가 어떻게 0에서 1로 성장하여 Apache Incubator에 진입했는지 여러분과 공유하려고 합니다.
Apache APISIX는 현재 16개 다른 회사에서 온 17명의 커미터를 보유하고 있으며, 매우 커뮤니티 중심의 프로젝트입니다. 각 커미터는 한 표를 가지고 있으며, 릴리스, 새로운 커미터 및 PPMC 선출과 같은 주요 사항을 결정합니다.
Apache Way
Apache Way는 우리 모두에게 익숙한 개념입니다: 코드보다 커뮤니티가 우선합니다. 나쁜 코드는 변경될 수 있으며, Apache의 멘토들은 더 높은 수준의 코드를 작성하는 방법을 코칭하지 않습니다. 그들은 커뮤니티가 건강하고 성장하는지에 더 관심을 가집니다. 좋은 커뮤니티가 있다면 나쁜 코드는 더 높은 수준의 사람들에 의해 더 나은 코드로 리팩토링될 것입니다. 따라서 커뮤니티가 존재하는 한 프로젝트는 살아남을 것이며, 이것이 Apache에서 가장 중요한 것입니다.
메일링 리스트 우선순위는 또 다른 중요한 점입니다. 메일링 리스트에 나타나지 않은 것은 존재하지 않는 것으로 간주됩니다. 이는 중국에서 매우 큰 도전입니다. 문화적, 습관적으로 사람들은 이메일을 사용하는 것을 좋아하지 않습니다: 첫째, 시간이 충분히 빠르지 않아 이메일을 보낸 후 1-2일 후에 답변을 받을 수 있습니다; 둘째, 메일링 리스트의 많은 내용이 공개되어 있어, 일부 사람들은 비공개로 대화하는 것을 좋아합니다; 셋째, 메일링 리스트 내부에서는 영어만 사용할 수 있지만, 실제로 중국인의 영어 실력은 나쁘지 않습니다. 우리는 다른 대부분의 국가보다 훨씬 더 나은 영어 실력을 가지고 있습니다. 결국 우리는 여러 해 동안 영어를 배웠고, 다양한 번역 소프트웨어가 있기 때문에 문법 오류가 있더라도 큰 문제가 되지 않습니다.
세 번째는 엘리트 거버넌스입니다. Apache 커뮤니티의 모든 사람은 더 많은 발언권을 얻기 위해 기여하며, 더 높은 직함은 더 많은 헌신과 책임을 의미합니다.
네 번째는 민주주의입니다. 모든 사람이 Apache 투표에 참여할 수 있지만, 모든 사람의 투표가 유효한 것은 아닙니다. 예를 들어, APISIX가 Apache Incubator에 진입할 때, 저는 프로젝트에 투표할 수 있었지만, 프로젝트를 지원하고 따르지만 관찰자임을 나타내기 위해 no binding을 작성해야 했습니다. 그러나 이 투표는 프로젝트가 Apache에 진입할 수 있는지에 대한 결정적이지 않았습니다. 인큐베이터에 기여하고 커뮤니티에서 인정받은 사람들, 즉 Apache 인큐베이터의 PMC만이 유효한 투표를 할 수 있습니다. 이것이 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에 가입하려는지, 프로젝트의 현재 코드 파일이 Apache 라이선스와 충돌하는지, 초기 커미터는 누구인지, 어떤 회사에서 왔는지, 잠재적 위험이 있는지, 나중에 어떻게 개발할지 등을 소개합니다.
- Discuss: 그런 다음 논의 이메일을 시작하여 이에 관심이 있는 사람이 얼마나 많은지 확인하고, 이 단계에서 관심 있는 PMC를 찾아 멘토 멘토링 프로그램에 참여할 수 있습니다.
- Vote: 마지막으로 투표가 있으며, 투표가 통과되면 프로젝트는 Apache 인큐베이터에 진입할 수 있습니다.
Apache Way와 국내 오픈 소스 문화의 충돌
중국의 Apache 프로젝트는 많은 다른 도전에 직면할 것입니다. 이는 국내외의 오픈 소스 환경과 문화와 관련이 있습니다.
예를 들어, 국내 엔지니어들은 너무 바쁘다고 느낄 수 있으며, 종종 996 초과 근무를 하기 때문에 오픈 소스를 할 시간과 에너지가 없습니다. 그러나 사실 많은 엔지니어들이 업무 중에도 오픈 소스 프로젝트를 사용하고, 오픈 소스 프로젝트의 기능을 작성하지만, 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는 빠르게 발전하는 오픈 소스 프로젝트입니다. 여러분이 더 많이 참여하고 기여하기를 바랍니다. 감사합니다.