من 0 إلى 1: طريقة Apache في Apache APISIX
API7.ai
December 16, 2019
Apache APISIX هو مشروع حديث جدًا، تم إصداره كمشروع مفتوح المصدر في يونيو من هذا العام، وانضم إلى CNCF Panorama في يوليو، ودخل إلى Apache Incubator في أكتوبر. لذلك، سأشارك معكم كيف انتقل APISIX من الصفر إلى الواحد ودخل إلى Apache Incubator.
يحتوي Apache APISIX الآن على 17 مُساهمًا (committer) من 16 شركة مختلفة، وهو مشروع قائم على المجتمع بشكل كبير. كل مُساهم لديه صوت واحد ويشارك في اتخاذ القرارات الرئيسية مثل الإصدارات، وانتخاب مُساهمين جدد، وPPMC.
طريقة Apache
طريقة Apache هي مفهوم مألوف لنا جميعًا: المجتمع فوق الكود. يمكن تغيير الكود السيئ، ومرشدو Apache لا يوجهونك حول كيفية كتابة كود أفضل، بل يهتمون أكثر بما إذا كان المجتمع صحيًا وينمو. طالما يوجد مجتمع جيد، سيتم إعادة هيكلة الكود السيئ إلى كود أفضل من قبل أشخاص أكثر خبرة. لذلك، طالما يوجد المجتمع، سيبقى المشروع، وهذا هو الأهم في Apache.
أولوية قائمة البريد الإلكتروني هي نقطة مهمة أخرى، حيث يتم التعامل مع أي شيء لم يظهر في قائمة البريد على أنه غير موجود. هذا يمثل تحديًا كبيرًا في الصين، حيث لا يحب الناس استخدام البريد الإلكتروني بشكل كبير بسبب العادات الثقافية: أولاً، الوقت غير مناسب، فقد يستغرق الأمر يومًا أو يومين للحصول على رد؛ ثانيًا، العديد من الأشياء في قائمة البريد تكون عامة، وبعض الناس يفضلون الدردشة بشكل خاص؛ ثالثًا، يجب أن تكون اللغة الإنجليزية هي اللغة المستخدمة في قائمة البريد، ولكن في الواقع، اللغة الإنجليزية لدى الصينيين ليست سيئة، بل هي أفضل بكثير من معظم الدول الأخرى. بعد كل شيء، لقد تعلمنا الإنجليزية لسنوات عديدة، وهناك برامج ترجمة مختلفة، وحتى إذا كانت هناك أخطاء نحوية، فهي ليست مشكلة كبيرة.
ثالثًا، هناك حكم النخبة، حيث يساهم كل فرد في مجتمع Apache للحصول على صوت أكبر، والعناوين الأعلى تعني التزامًا ومسؤولية أكبر.
رابعًا، هناك الديمقراطية، حيث يمكن للجميع المشاركة في التصويت في Apache، حتى لو لم تكن جزءًا من مجتمع Apache، ولكن ليس كل الأصوات صالحة. على سبيل المثال، عندما دخل APISIX إلى Apache Incubator، كان بإمكاني التصويت للمشروع، ولكن كان عليّ كتابة "no binding" بعد ذلك للإشارة إلى أنني أؤيد وأتابع المشروع، ولكنني كنت مراقبًا، وهذا التصويت لم يكن حاسمًا لدخول المشروع إلى Apache. فقط أولئك الذين ساهموا في الحضانة وحصلوا على اعتراف المجتمع، أي PMCs في Apache Incubator، أصواتهم صالحة، وهذه هي ديمقراطية مجتمع Apache.
نموذج حكم مجتمعات المصادر المفتوحة
نعلم أن العديد من مشاريع المصادر المفتوحة تكون تحت مؤسسات وبعضها ليس كذلك. المشاريع تحت المؤسسات، مثل مؤسسة Linux ومؤسسة Apache، لديها نموذج حكم يسمى "إجماع المجتمع"، والذي يتطلب مناقشة داخل المجتمع والتصويت بعد الوصول إلى إجماع، وليس التصويت مباشرة. إذا لم تكن هناك مناقشة وإجماع، فإن التصويت يكون بلا معنى. قد تكون هذه الكفاءة بطيئة جدًا، ولكن فقط عندما يصل المجتمع بأكمله إلى إجماع، لن يكون هناك خلافات لاحقة.
النوع الثاني هو إجماع الشركات التجارية، حيث يكفي أن يتفق الأشخاص في الشركة التجارية، ثم يمكن دمج PR أو ميزة، وصوت المجتمع لا قيمة له لأن المشروع يتحكم فيه الشركة التجارية، وإذا كنت تساهم بالكود للشركة التجارية، فإن قرار الدمج يكون بيد الشركة التجارية. قد لا يهم هذا المطورين الأفراد، ولكنه يهم الشركات المشاركة في المشروع. عادةً ما يكون لدى الشركات إصدارات خاصة، ويريدون المساهمة بميزاتهم مرة أخرى في المجتمع، ولكن قد ترفضها الشركات التجارية لأنها تتعارض مع إصداراتها التجارية.
النوع الثالث هو الديكتاتور الخيّر، وأبرز مثال على ذلك هو Python، حيث يقرر الفرد تطور مشاريع المصادر المفتوحة.
هذه هي النماذج الثلاثة لمجتمعات المصادر المفتوحة، إذا كانت شركة تختار مشروعًا، بشكل عام نوصي بمشاريع Apache أو مؤسسة Linux، لأنها أولاً لا تحتوي على مخاطر قانونية، وثانيًا هي إجماع المجتمع، ويمكننا المساهمة في المجتمع بهذه الطريقة للحصول على صوت أكبر، مما يشكل دائرة حميدة.
كيف تدخل إلى 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: ثم يتم بدء مناقشة عبر البريد الإلكتروني لمعرفة عدد الأشخاص المهتمين بهذا، ويمكن العثور على بعض PMCs المهتمين للانضمام إلى برنامج الإرشاد في هذه المرحلة.
- Vote: أخيرًا، يتم التصويت، وإذا تمت الموافقة على التصويت، يمكن للمشروع دخول Apache Incubator.
طريقة Apache وصدام الثقافة المحلية للمصادر المفتوحة
يواجه مشروع Apache في الصين العديد من التحديات المختلفة، والتي ترتبط ببيئة وثقافة المصادر المفتوحة في الداخل والخارج.
على سبيل المثال، يشعر المهندسون المحليون بأنهم مشغولون جدًا، وغالبًا ما يعملون لساعات طويلة (996)، لذلك ليس لديهم الوقت والطاقة للعمل على المصادر المفتوحة. ولكن في الواقع، يستخدم العديد من المهندسين مشاريع المصادر المفتوحة في العمل، ويكتبون ميزات لها، ولكنهم لا يقدمون PR بشكل نشط، ولا يبدأون مناقشات في المجتمع قبل كتابة الكود، وهذا يعكس العديد من الاختلافات الثقافية.
فيما يتعلق بالتواصل، تدعو Apache إلى المناقشة المفتوحة في قائمة البريد، ولكن العديد من المطورين في الصين يفضلون طرقًا غير عامة للتواصل، مثل WeChat وQQ والهاتف. خاصة إذا كان PPMC للمشروع معظمهم من نفس الشركة، فقد يتم إقرار ميزة خلال اجتماع الصباح، ولكنها لا تظهر في قائمة البريد، وهذا لا يتوافق مع ثقافة Apache.
بخصوص التصويت، قد يشعر العديد من المطورين بأن لغتهم الإنجليزية ليست جيدة أو أنهم ضعفاء، ولا يرغبون في التعبير عن آرائهم في قائمة البريد ولا يشاركون في التصويت. وبالتالي، يتم تجاهلهم في النهاية. لذلك، تحتاج إلى تراكم بعض "المساهمات" لمساعدة الآخرين وزيادة تأثيرك ببطء. Apache هي مؤسسة مكونة من أفراد. كل شخص يمثل نفسه فقط، وليس الشركة. كل صوت من PMCs متساوٍ.
بخصوص العنوان، في Apache، أعلى منصب يسمى Apache Foundation Chair، ومدير كل مشروع هو VP، ثم PMC (مجلس إدارة المشروع)، Committer، Contributor، الذي يشبه مسار الترقية في الشركات. ولكن في Apache، حتى إذا أصبح منصبك مرتفعًا، فهذا لا يعني أن لديك صوتًا أكبر، بل هو التزام أكثر، على سبيل المثال، بالنسبة لتصويت Apache APISIX لانتخاب مُساهم جديد، صوت رئيس الحضانة وصوتي متساويان. العنوان في Apache هو أكثر من كونه شرفًا. مؤسسة Apache هي منظمة غير ربحية تؤكد على المساهمة، وهذا هو مكان صدام الثقافات.
قضايا حقوق النشر
حقوق النشر هي قضية مهمة جدًا، وقد كانت الاعتقالات التي حدثت لمؤلف Nginx مؤخرًا بسبب قضايا حقوق النشر. قبل أن ينضم المشروع رسميًا إلى Apache Incubator، يجب على جميع المُساهمين والشركات التوقيع على CLA ينص على أنهم يتبرعون بجميع حقوق النشر للمشروع إلى مؤسسة Apache. بعد الانضمام إلى Apache Incubator، أهم معلم هو إصدار أول إصدار Apache، وهو لتوضيح المخاطر في الترخيص حتى يتمكن المستخدمون من استخدامه بثقة. لذلك، يتم ضمان استخدام الشركات التجارية لمشاريع Apache دون مشكلة حقوق النشر غير الواضحة.
أخيرًا، Apache APISIX هو مشروع مفتوح المصدر يتطور بسرعة، أتمنى أن تشاركوا وتساهموا أكثر، شكرًا.