آیا علاقه دارید با جامعه Kubernetes درگیر شوید ، اما مطمئن نیستید از کجا شروع کنید؟ این پست وبلاگ با هدف کمک به رفع ابهام مربوط به مشارکت در یک پروژه منبع باز به بزرگی Kubernetes و ارائه تجربیات حدیثی به شما این ایده را می دهد که مشارکت در یک پروژه منبع باز مانند Kubernetes می تواند به عنوان یک مبتدی به نظر برسد.

امیدوارم با بیان جزئیات تجربه خود به عنوان مشارکت کننده ، به شما انگیزه دهم تا اولین قدم را برای شروع راه خود به عنوان مشارکت کننده منبع باز بردارید. شما می توانید بدون توجه به سابقه یا سالها تجربه خود در Kubernetes مشارکت داشته باشید. مشارکت همه بخش مهمی و ارزشمند از جامعه منبع باز است. در زیر ، من تجربیات خود را به عنوان مشارکت کننده شرح می دهم و مراحل کلیدی را که هرکسی می تواند برای مشارکت انجام دهد ، شرح می دهد.

چرا من شروع به مشارکت در Kubernetes کردم

مشارکت در یک پروژه منبع باز مانند Kubernetes اشکال مختلفی دارد: ارسال PR های کد ، به روزرسانی اسناد ، مسائل مربوط به تریاژ ، گزارش اشکالات ، بهبود تست ها ، مرور کد ، بررسی پیشنهادات بهبود Kubernetes (KEPs) و مشارکت در مدیریت انتشار Kubernetes . Kubernetes به لطف ساعات بیشماری که توسط همکاران فعلی و مشارکت کنندگان آینده مانند شما سپری شده است ، وجود دارد و رشد می کند.

اولین بار با Kubernetes آشنا شدم که از من خواسته شد یک مطالعه تجاری در مورد راهکارهایی بنویسم که شرکتی که در آن کار می کردم می تواند برای محدود کردن خدمات ما و مدیریت آنها با یک ارکستر کانتینر استفاده کند. با آگاهی از آنچه Kubernetes می تواند انجام دهد ، در شغل بعدی ام زمانی که متوجه ناسازگاری هایی در نحوه نگهداری و عملکرد برخی از برنامه ها شدم ، و استفاده از کانتینریشن را به عنوان یک راه حل پیشنهاد کردم ، در واقع کار خود را آغاز کردم. این به من اجازه داد تا مخزن Kubernetes را کشف کنم ، و در حین انجام این کار با مشکلی روبرو شدم که اولین مشارکت خوب به نظر می رسید.

من همیشه علاقه مند بودم که در پروژه های منبع باز مشارکت کنم و احساس می کردم اگر مشارکت در Kubernetes را شروع کنم ، در مورد سیستم های توزیع شده اطلاعات بیشتری کسب خواهم کرد. هیچ چیز به اندازه نوشتن کد برای آن تجربه ای به شما نمی دهد ، به این ترتیب من درگیر Kubernetes شدم و چرا انجام چنین کاری برای دیگران بسیار ارزشمند است.

نحوه کمک به Kubernetes به عنوان یک مبتدی

در اینجا برخی از اولین قدم هایی است که باید برای شروع مشارکت در Kubernetes انجام دهید.

1. به دنبال مستندات مربوطه باشید که برای مشارکت کنندگان موجود است

به طور معمول ، هنگامی که شما مشارکت کننده جدیدی در هر پروژه منبع باز هستید ، باید به دنبال هرگونه اسناد مرتبط برای مشارکت کنندگان باشید. معمولاً ، این به صورت یک فایل CONTRIBUTING.md یا چیزی مشابه است. README در ریشه یک repo نیز مکان خوبی برای شروع است. هر پروژه ای که به دنبال پرورش جامعه مشارکت کنندگان است باید این اطلاعات را به راحتی در اختیار مشارکت کنندگان جدید قرار دهد. مورد دیگری که باید مورد توجه قرار گیرد ، وسایل ارتباطی است که توسعه دهندگان در آن پروژه یا پروژه فرعی خاص از آن استفاده می کنند. به عنوان مثال ، Kubernetes به شدت به Slack و لیستهای پستی متکی است: مشترک کانالهای Slack و ایمیلهای مورد علاقه خود شوید ، به ویژه برای مناطق Kubernetes که قصد دارید در آنها مشارکت داشته باشید.

به عنوان یک مبتدی کامل برای Kubernetes به طور کلی ، و همچنین فردی که هیچ تجربه ای در مشارکت در پایگاه کد Kubernetes نداشت ، من مستقیماً به فایل CONTRIBUTING.md رفتم. این به خوبی مستند شده است و به من مستندات لازم را برای تنظیم محیط من برای شروع توسعه نشان داد.

2. مسائلی را که به شما علاقه دارند جستجو و فیلتر کنید

  • یافتن مشکلاتی برای کار: هنگامی که محیط برنامه نویس خود را تنظیم کردید ، می خواهید چیزی را پیدا کنید که روی آن کار کنید. هنگامی که من برای اولین بار شروع به کار کردم ، پس از اینکه محیط خود را تنظیم کردم ، به بررسی مسائل موجود در repo Kubernetes پرداختم. در GitHub ، هنگامی که مسائل مربوط به یک پروژه خاص را جستجو می کنید ، یک برچسب فیلترینگ وجود دارد که می تواند برای فیلتر کردن ” is:open is:issue label:”good first issue”” اعمال شود که نشان می دهد این مسئله می تواند توسط یک مبتدی کار شود. به عنوان مثال ، is:open is:issue label:”good first issue” ” در نوار جستجوی شماره GitHub لیستی از همه مسائل باز شده با برچسب “good first issue” را در اختیار شما قرار می دهد. برای فیلتر کردن بیشتر برای یک گروه علاقه مندی خاص (SIG) مانند sig/network ، عبارت “open is: issue”: برچسب ” is:open is:issue label:”good first issue”” را جستجو کنید: sig/network. از اینجا من توانستم اولین شماره خود را پیدا کنم.
  • رفع مشکلاتی که پیدا می کنید: پس از یافتن مشکلی ، باید به نگهبانان اطلاع دهید که قصد شما از کار روی آن چیست. اولین کاری که من انجام دادم این بود که در مورد GitHub بپرسم که آیا می توانم روی موضوعی که پیدا کردم کار کنم ، یعنی PR برای حذف تمام خطوط اضافی اضافی که به توابع Logf () منتقل می شوند. این شامل گذراندن کد در هر دو آزمون/e2e و test/e2e_node ، پیدا کردن مازاد خط جدید در تماس با Logf () و حذف آنها بود. این کار تمرین خوبی برای یادگیری نحوه مشارکت در پایگاه کد Kubernetes بود زیرا شامل تغییرات محلی ، ایجاد روابط عمومی در برابر شاخه اصلی و پرداختن به بازخورد بازبینی می شد.

در طول فرایند ، مهم این بود که در مورد بازخوردی که من متوجه آن نشدم ، توضیحاتی بخواهم. به عنوان مثال ، عبارت “یافتن و رفع مجرمان” گیج کننده بود زیرا نمی دانستم مجرم چیست. اما یک بار که پرسیدم ، یک پاسخ ساده دریافت کردم که به من می گفت که این بدان معناست که تمام خطوط عقب را در سراسر کد e2e حذف کنم.

  • ارتباطات کلیدی است: ارتباط در سراسر فرایند مشارکت بسیار مهم است و برای توسعه منبع باز بسیار مهم است. اگر در روابط عمومی گیر کرده اید ، مطمئن نیستید که چگونه به بازخورد بپردازید یا منطق آن را درک نمی کنید ، سوال بپرسید. بهتر است در مورد مشارکت کننده بیش از حد ارتباط برقرار کنید ، از جمله برقراری ارتباط زمانی که باید از پروژه عقب نشینی کنید. استراحت در توسعه منبع باز انتظار می رود و به حساب می آید و ارتباطات باعث شفافیت و تکرار سریعتر کار انجام شده می شود. با برقراری ارتباط واضح ، اطمینان حاصل می کنید که همه افرادی که در یک پروژه در سراسر جهان کار می کنند مطلع هستند ، در وقت خود صرفه جویی کرده و مواردی را که در ترجمه گم می شوند به حداقل می رسانند.

به عنوان یک مشارکت کننده جدید ، هنگام کار روی اولین کارم احساس عدم اطمینان و سردرگمی کردم. من معتقدم راحت بودن با ندانستن راه حل برای رسیدگی به مسائلی که به شما محول شده و پیش بردن راه حل بسیار ارزشمند است. این بدان معنا نیست که در یک اتاق تاریک بنشینید و خودتان آن را حل کنید ، این بدان معناست که وقتی نیاز به توضیح مشکل دارید ، هنگامی که با اصطلاحات آشنا نیستید ، همانطور که در مثال قبلی اشاره کردم ، یا حتی وقتی که فقط می خواهم به راه حل پیشنهادی خود چشم دوخته باشم این نگرش متکی بر کار گروهی و همکاری در مواقع ضروری به شما کمک می کند تا در مشارکت منبع باز و به طور کلی در فناوری پیشرفت زیادی داشته باشید. به خاطر داشته باشید ، به عنوان محرک راه حلی شما باید مجموعه ای از اشکال زدایی و اطلاعاتی باشید که در تلاش برای حل مشکل در حین همکاری با دیگران به دست آورده اید. به طور معمول هیچ مهلت واقعی (مگر اینکه به طور دیگری اعلام شود) در ارتباط با این “اولین مسائل خوب” وجود ندارد ، بنابراین خیالتان راحت باشد تا زمانی که لازم است از پیشرفت مداوم در موضوع GitHub اطمینان حاصل کنید و افراد را در جریان نگه دارید ، دیگران را درگیر کنید در صورت نیاز کمک کند اگر در نهایت متوجه شدید که دیگر پهنای باندی برای کار روی آن ندارید ، در مورد موضوع مربوطه صحبت کنید و شخص دیگری آن را انتخاب خواهد کرد.

3. در پیدا کردن مسائل گیر کرده اید؟ سعی کنید سایه انتشار repo Kubernetes شوید

راه دیگر برای مشارکت از طریق به روزرسانی اسناد است ، که روشی متداول برای مشارکت کنندگان جدید است تا در یک پروژه منبع باز غیر از تغییرات کد مشارکت کنند. یکی از راههای جالبی که اخیراً در آن شرکت کرده ام ، برنامه سایه انتشار Kubernetes است ، برنامه ای که در آن افراد تازه وارد مدیریت انتشارات Kubernetes می توانند در یکی از بخشهای مختلف نسخه کار کنند. من روی پیشرفتهای Kubernetes 1.20 کار کردم. وظیفه ای که به من محول شد ، بررسی و ردیابی همه پیشنهادات Kubernetes Enhancements (KEPs) ، با کمک چند سایه دیگر و یک سرنخ بود. این به من اطلاعات زیادی در مورد روند KEP داد و به من اجازه داد تا با تعداد کمی از مشارکت کنندگان در این روند کار کنم. من این مسیر را به هر کسی که به دنبال راه اندازی مجدد شبکه و تأثیر خود در جامعه Kubernetes است ، بسیار توصیه می کنم.

مزایای عضویت در Kubernetes

تبدیل شدن به یک عضو Kubernetes نتیجه مشارکت مکرر و همکاری نزدیک با حداقل 2 عضو مختلف مختلف با قابلیت های بازبینی برای یک پروژه خاص در repo Kubernetes است. به عبارت دیگر ، در پروژه Kubernetes به 2 حوزه مختلف کمک زیادی کنید و شخصی را پیدا کنید که بتوانید از نزدیک با هر یک از آنها کار کنید. با گذشت زمان ، هنگامی که تجربه کسب می کنید و برخی روابط عمومی را تحت پوشش خود دارید ، از این افراد بپرسید که آیا می توانند برای عضویت از شما حمایت کنند.

یکی از مزایای اصلی عضویت در این است که بتوانید مسائل مربوط به خود را تعیین کرده و تأثیر بیشتری بر بخش های خاصی از کدی که روی آن کار می کنید داشته باشید. یکی دیگر از مزایای ملموس عضویت ، دریافت آسیب پذیری ها و مواجهه های مشترک Kubernetes (CVE) به محض تشخیص توسط جامعه است. این امر برای تیم vpsgol Kubernetes بسیار ارزشمند بود زیرا ما اطلاعات مربوط به این آسیب پذیری های امنیتی را قبل از عموم مردم دریافت می کنیم و به ما این امکان را می دهد که تلاش های ناخواسته برای به خطر انداختن پلت فرم ما و اطمینان از حفظ امنیت مشتریانمان در حین استفاده از DOKS و سایر محصولات مبتنی بر Kubernetes در بستر vpsgol را خنثی کنیم.

موانع مشترک در راه شما برای تبدیل شدن به یک مشارکت کننده Kubernetes

موانع زیادی وجود دارد که می تواند از پیشرفت در کمک به Kubernetes جلوگیری کند یا سرعت شما را کاهش دهد. مانع اصلی این است که اولین کد خود را وارد کنید. با توجه به تعداد زیاد مشارکت های روزانه و تعداد محدود مرورگران ، برخی از روابط عمومی می توانند ماه ها یا بیشتر بمانند. راه مقابله با این مسئله این است که مطمئن شوید در حال ارسال کدی هستید که در واقع مورد نیاز است. شما می توانید با پیوند دادن آن به یک مسئله موجود یا ایجاد مشکلی برای به دست آوردن اجماع از صاحبان کدی که می خواهید به آن مشارکت کنید ، مشکلی واقعی داشته باشید و تأییدکنندگان/بازبینان آن ناحیه از کد را درگیر کنید. شما قصد مشارکت دارید

1. کمک به کد بدون همکاری با جامعه

به یاد داشته باشید ، تعهدات رانندگی ممکن است به همان سرعتی که انتظار دارید بازبینی نشوند. نگهدارندگان یک پروژه فقط می توانند کارهای زیادی انجام دهند و زمینه های زیادی را در خود نگه دارند. وظیفه شما به عنوان مشارکت کننده است که روابط عمومی خود را تا آنجا که ممکن است بررسی کنید. برای روابط عمومی روابط عمومی خود توضیحات خوب و مکتوب ارائه دهید. اگر این یک تغییر بزرگ است ، مطمئن شوید که در مورد تغییر توافق شده است و در صورت لزوم آن را در روابط عمومی متعدد قرار دهید. در صورت گذشت زمان از زمان ایجاد روابط عمومی و پاسخ به موقع به نظرات در مورد روابط عمومی خود ، با احترام به نگهدارندگان در کانال ضعیف مناسب ضربه بزنید.

2. متواضع نبودن یا احترام به عنوان مشارکت کننده

مانع دیگری که من در مشارکت کنندگان جدید می بینم خودخواهی است. در بسیاری از مواقع ، موضوعی که برای شما جدید است برای دیگران جدید نیست ، بنابراین مهم است که آنها را بشنوید و در گفتمان مدنی پیش بروید. با تصور داشتن تمام اطلاعات لازم برای انجام روابط عمومی ، به هیچ وجه وارد نشوید و به نظرات دیگران گوش دهید و هنگام ارائه/به روز رسانی راه حل خود برای هر موضوعی که روی آن کار می کنید ، آنها را در نظر بگیرید. اگر افراد درخواست به روزرسانی می کنند و شما با آنها موافق نیستید ، در مورد پیشنهادات توضیح دهید تا هر دو از نتیجه راضی باشید. زیبایی منبع باز ، توانایی همکاری با دیگران و ایجاد تکرار در یک محصول است که منجر به خالص مثبت پروژه مورد کار می شود. به یاد داشته باشید که همه ما در یک تیم هستیم و مسائل را شخصی نمی گیریم!

بازبینی: چگونه می توان به عنوان یک مبتدی به عنوان منبع باز Kubernetes تبدیل شد

  1. منطقه ای از K8 ها را پیدا کنید که به شما علاقه دارد و “اولین شماره خوب” را با موضوعات دارای برچسب پیدا کنید تا بلافاصله روی آن کار کنید.
  2. به یاد داشته باشید ، ارتباط زیاد خوب است.
  3. وظیفه را به شیوه ای مثبت دنبال کنید.
  4. در طول مسیر به دیگران کمک کنید ، درست همانطور که در شروع کار می خواهید.

سرور مجازی آلمان

سرور مجازی آمریکا

سرور مجازی فرانسه

سرور مجازی کانادا

سرور مجازی لهستان

سرور مجازی هلند

سرور مجازی انگلیس

 

برچسب‌ها:, , , ,