۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

شیوه جدیدی از تفکر در مورد پایداری منبع باز

برای حفظ نرم افزاری که کسب و کار شما به آن وابسته است، از پرداخت هزینه به توسعه دهندگان فراتر بروید. به شرکت‌هایی که به توسعه‌دهندگان پول می‌دهند پرداخت کنید و شاهد شکوفایی کل اکوسیستم باشید.

برای حفظ نرم افزاری که کسب و کار شما به آن وابسته است، از پرداخت هزینه به توسعه دهندگان فراتر بروید. به شرکت‌هایی که به توسعه‌دهندگان پول می‌دهند پرداخت کنید و شاهد شکوفایی کل اکوسیستم باشید.

یک روز دیگر، مقاله دیگری درباره open منبع پایداری. پس از سال‌ها خواندن چنین پست‌هایی (از جمله برخی از پست‌های خودم)، من این فرمول را می‌دانم: همه از منبع باز استفاده می‌کنند، برخی منبع باز توسط نگهبانان انفرادی نوشته شده‌اند که برای پرداخت کرایه تلاش می‌کنند، که همه ما را مجبور می‌کند. در معرض خطر است، بنابراین باید تغییر کند.

اما اغلب اوقات این «باید تغییر کند» به «راه‌حل‌هایی» تبدیل می‌شود که متکی به اقتصاد گیگ «نوک jar» است که مدیر ارشد فناوری CTO Foundation Cloud Native Computing (CNCF) کریس آنیسزیک به درستی سؤال می کند. مشارکت کنندگان منبع باز باید برای کار خود دستمزد دریافت کنند. طرح‌های کد و دعا برای پرداخت، جایگزین ضعیفی برای چک دستمزد ثابت هستند.

این همچنین یک جایگزین ضعیف برای واقعیت است. واقعیت متن باز – حداقل، اکثر پروژه های رایج و رایج که من و شما هر روز استفاده می کنیم – این است که توسعه دهندگان برای نوشتن کد پول می گیرند. همیشه نیست و استثناهایی وجود دارد که به خوبی تبلیغ می شوند، اما در سال ۲۰۰۸ به پروژه گنوم بازگردید و بیشتر این توسعه دهندگان برای مشارکت پول دریافت کردند. به سرعت به امروز و اکثر توسعه دهندگانی که در Kubernetes، Redis، Linux و غیره مشارکت می کنند، نیز پول می گیرند.

شرکت‌هایی که پشت سر آنها هستند، ممکن است نباشند. این یک مشکل است زیرا هرچه شرکت ها بیشتر حقوق بگیرند، توسعه دهندگان بیشتر دستمزد می گیرند. شما پایداری می خواهید؟ به شرکت‌هایی که از توسعه‌دهندگان حمایت مالی می‌کنند، پرداخت کنید. بیایید از پروژه محبوب Flux به عنوان یک مثال جدید استفاده کنیم.

بازگشت به آینده

Flux مجموعه ای محبوب از راه حل های تحویل مداوم و پیشرونده برای Kubernetes است (همچنین به عنوان Terraform و موارد دیگر)، در اصل توسط شرکت Weaveworks ایجاد شد. اگرچه Weaveworks همچنان مشارکت کننده اصلی Flux است، این پروژه اکنون یک پروژه CNCF فارغ التحصیل است و بیشتر مشارکت های خارجی. فشار دادن Flux به CNCF مسلماً برای جامعه خوب است، اما آیا برای Weaveworks خوب است؟

تولید کاملاً محلی با بازیابی، گام به گام

“چه کسی اهمیت می دهد؟” ممکن است بپرسید، و پاسخ آسان است: شما باید.

Weaveworks یکی از اولین شرکت‌هایی بود که Kubernetes را در تولید راه‌اندازی کرد تا خدمات پشتیبان را برای نرم‌افزارهای بزرگ به‌عنوان برنامه‌های سرویس (SaaS) تامین کند و Flux را برای فعال کردن این کار توسعه داد. این کد چشمگیر است که به کاربران به عنوان بخشی از استقرار آنها عملیات مستقلی را می دهد.

اگر Weaveworks این کار را انجام ندهد (یا برای انجام آن کار به توسعه دهندگان پول بدهد)، هیچ کس این کار را انجام نمی دهد. بدون Weaveworks، Flux وجود ندارد. “اما چه کسی اهمیت میدهد!؟” شما مقابله می کنید “ما اکنون آن را داریم و انجمن ادامه خواهد داد!” من یک خبر بد برای افرادی دارم که معتقدند پول و منبع باز روی درختان رشد می کنند. پایداری منبع باز فقط به افراد بستگی ندارد. این واقعاً یک مشکل شرکتی است زیرا شرکت ها تمایل دارند توسعه دهندگان را برای نوشتن نرم افزار منبع باز استخدام کنند و شرکت ها راحت تر به سایر شرکت ها برای نرم افزار پرداخت می کنند.

وقتی Flux 2.1 چند هفته پیش منتشر شد، بلافاصله بیش از ۵۰۰۰۰۰ بار دانلود شد. این نشان دهنده بسیاری از افراد (و کارفرمایان آنها) است که برای بهره وری بیشتر با Kubernetes، Terraform و غیره به Flux وابسته هستند. این امر به قدری محبوب است که Microsoft Azure آن را در محصولات Kubernetes خود قرار می دهد، همانطور که GitLab، AWS (EKS Anywhere)، علی بابا، و بیشتر. فکر می‌کنید همه این شرکت‌ها صف می‌کشند تا به Weaveworks، CNCF، یا فردی برای اطمینان از ادامه توسعه و نگهداری Flux پرداخت کنند، اما، در تجربه من، این احتمال وجود ندارد.

هدف پلتفرم وب Composable Netlify مدرن کردن معماری وب است

این دقیقاً به همین دلیل است که HashiCorp و سایر شرکت‌ها (از جمله MongoDB، کارفرمای من) به دنبال راه‌هایی برای باز نگه داشتن محصولات خود و در عین حال مسدود کردن دسته کوچک اما قدرتمندی از کاربران هستند که می‌تواند تأثیر منفی زیادی داشته باشد. در مورد توانایی توسعه دهنده پروژه اولیه برای حفظ توسعه.

باز نگه داشتن منبع باز

اگر به پروژه‌های داخل CNCF نگاه کنید، آنها یا توسط جامعه مشارکت‌کنندگان شرکتی (مانند Kubernetes) یا توسط یک فروشنده هدایت می‌شوند (این در مورد بنیاد نرم‌افزار آپاچی نیز صادق است، اگرچه ASF فعالانه تلاش می‌کند تا از کنترل تک فروشنده دلسرد می شود و بیشتر موفق می شود). فلاکس، آپاچی کافکا، لینکرد و دیگران در این اردوگاه دوم قرار می گیرند. این در واقع می‌تواند برای ابرهای بزرگ و سایرین چیز خوبی باشد: وقتی درخواست‌هایی برای ویژگی دارید یا نیاز به پشتیبانی دارید، کار با یک شرکت بسیار آسان‌تر از توسعه‌دهندگان فردی است.

اما چه اتفاقی می‌افتد وقتی همان فروشندگان ابری (یا دیگر) به سراغ چیز جدیدی مانند هوش مصنوعی می‌روند؟ این امر به شرکتی مانند Weaveworks (یا Buoyant در مورد Linkerd) واگذار می‌کند تا کارهای مختلف توسعه را انجام دهد تا بتوان به نرم‌افزار در مقیاس سازمانی اعتماد کرد. هر چقدر هم که این چیز جدید خوب باشد، مشتریان برای دهه‌ها کار خسته‌کننده قدیمی را اجرا می‌کنند، به این معنی که کسی باید برای نگهداری و تکامل آن نرم‌افزار به توسعه‌دهندگان پول پرداخت کند.

چرا این کسی شما نیستید؟

برای ارائه‌دهندگان بزرگ ابری که مشتریانشان به Flux و سایر پروژه‌های منبع باز وابسته هستند، نداشتن رابطه مالی با حامیان پروژه باید جرمی قابل آتش‌نشدن باشد. این یک ریسک بزرگ زنجیره تامین است. تعداد فزاینده ای از شرکت های منبع باز (مانند HashiCorp) ممکن است مجوز خود را تغییر دهند و ارائه دهندگان ابر و سایرین را از فروش خدمات در اطراف کد خود مسدود کنند. در مورد Flux، Weaveworks توانایی صدور مجوز مجدد را از دست داده است، اما اگر Weaveworks دیگر نتواند از نظر مالی توسعه را حفظ کند، چه اتفاقی می‌افتد؟ آیا مایکروسافت، AWS، Google، یا دیگران برای تامین مالی همه آن وارد عمل خواهند شد؟ آنها هنوز نکرده اند. چرا ما انتظار داریم که آنها به طور جادویی شروع شوند؟

اخلاق در سیستم های مبتنی بر ابر باز می گردد

با مشارکت نکردن و مشارکت نکردن، این فروشندگان در خطر افزایش هزینه های خدمات رسانی به مشتریان خود هستند. فقط از AWS بپرسید، که متوجه شد انشعاب Elasticsearch گران‌تر از صرفاً امکان موفقیت Elastic در پلتفرم AWS است. (فشار جستجوی OpenSearch موفقیت می بیند، اما به AWS نیاز دارد تا تیم مهندسی قابل توجهی را استخدام کند، از جمله هزینه های دیگر مانند نام تجاری، توسعه جامعه، و غیره) 

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

همه توسعه‌دهندگان و شرکت‌هایی که تصمیم می‌گیرند نمی‌توانند ادامه دهند، نگران‌کننده‌تر هستند. بنابراین تکرار می‌کنم: ایجاد کسب‌وکار بر روی پروژه‌های منبع باز مانند Flux بدون اطمینان از پایداری طولانی‌مدت آن‌ها باید یک جرم قابل آتش‌نشانی باشد. مطمئناً، این کاری خوب  برای نگهبانان منبع باز است، اما این حق است، حتی کاری که باید برای مشتریان خود انجام دهید.