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

Techboy

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

ردیس در مقابل کابالهای تریلیون دلاری

تغییر مجوز Redis به هیچ کس به جز AWS و دیگر غول های ابری صدمه نمی زند. اگر کمی پس می دادند، نیازی به چنگال های آب شده نداشتند.

تغییر مجوز Redis به هیچ کس به جز AWS و دیگر غول های ابری صدمه نمی زند. اگر کمی پس می دادند، نیازی به چنگال های آب شده نداشتند.

اخیراً Redis مجوز خود را تغییر داد، و کوه‌هایی از اطلاعات نادرست در پی آن به وجود آمده است، به غیر از چنگال که توسط شرکت ابری تریلیون دلاری AWS هدایت می‌شود. در میان این اطلاعات نادرست، استیون جی وان نیکولز با جدیت اما اعلام نادرست مبنی بر اینکه تغییر Redis “به این معنی است که توسعه دهندگان دیگر نمی توانند از کد Redis استفاده کنند.”

این به سادگی درست نیست. برای ۹۹.۹۹۹۹۹۹۹۹۹۹۹۹۹۹٪ از توسعه دهندگان، حقوق آنها تحت مجوز دقیقاً مانند مجوزهای متن باز باقی می ماند. معنی این است که شرکت های ابری تریلیون دلاری مانند AWS دیگر نمی توانند کد Redis را بدون کمک مجدد دریافت کنند.

AWS، پس از سال‌ها کسب سود کلان از Elasticache (سرویس Redis خود)، وحشت کرد و فورک را شروع کرد (Valkey)، به خدمت گرفتن دیگران برای اینکه مجبور نباشد تمام هزینه ها را به دوش بکشد. شرکت آن درس گران قیمت را با چنگال Elasticsearch، OpenSearch آموخت. مبادا فکر کنید که این موضوع در مورد پیروزی جامعه بر شرکت‌ها است، به خاطر داشته باشید که این «جامعه» بیشتر شبیه گروهی از شرکت‌های فناوری تریلیون دلاری است که عرضه ثابت نرم‌افزار ارزان یا رایگان را تضمین می‌کنند که تقریباً هیچ کمکی به آن نمی‌کنند. اعضای باشگاه تریلیونرها بنیان‌گذارانی دارند که ارزش آنها بیشتر از ارزش‌گذاری بازار Redis و همه های به اصطلاح بدهای منبع باز ترکیب است.

زمان آن رسیده است که وانمود کنیم که ابرهای اصلی (و به ویژه یکی) مسئول مستقیم این آشفتگی نیستند. داستان Redis ممکن است در مورد سودجویی باشد، اما این باشگاه تریلیون دلاری است که کیسه بزرگ پول نقد را در دست دارد.

در مورد توسعه دهندگان چطور؟

اجازه دهید ابتدا واضح بگوییم: توسعه دهندگان تا حد زیادی از تغییر مجوز Redis مصون هستند. تنها توسعه دهندگانی که از تغییرات ایجاد شده ردیس “آسیب می بینند” کسانی هستند که برای شرکت های ابری کار می کنند (و حتی آنها، به استثنای یک استثنا، اصلاً مشارکتی نداشته اند). یک مفسر اخبار هکر این را به وضوح بیان می‌کند:

برای استفاده شخصی من در شرکت یا پروژه ام:

  • آیا می توانم به منبع دسترسی کامل داشته باشم، آن را شبیه سازی کنم و آن را تغییر دهم؟ بله
  • آیا می توانم برای بهبود آن درخواست کشش انجام دهم؟ بله
  • آیا حتی اگر پروژه من تجاری باشد و با استفاده از Redis درآمد کسب کند، اجازه دانلود، استفاده و داشتن آن را به صورت رایگان در شرکت خود دارم؟ بله
  • آیا می توانم محصولی ایجاد کنم که از Redis به عنوان یک فناوری به صورت رایگان در راه اندازی من استفاده کند؟ بله…
  • آیا می توانم آن را مانند قبل git clone / ساخت / را نصب کنم؟ بله…
  • آیا می توانم Redis را به عنوان سرویسی که کد منبع را دریافت می کند و بدون مجوز پولی در فضای ابری خود اجرا می کند، دوباره بفروشم؟ نه (بو هو هو)
جاوا اسکریپت به پول بیشتری نیاز دارد

می‌فهمی؟ تنها کاری که یک توسعه‌دهنده نمی‌تواند با کد Redis انجام دهد، ایجاد یک سرویس ابری مدیریت‌شده است، مگر اینکه بخواهد زیرساخت مورد استفاده برای اجرای آن را مشارکت دهد. آیا آن منبع باز است؟ نه، مطابق تعریف منبع باز نیست. اما آیا همانطور که به تصویر کشیده می شود، روز آرماگدون برای توسعه دهندگان است؟ نه.

علاوه بر اینکه می‌توانید کد Redis را تغییر دهید و توزیع کنید، این واقعیت را در نظر بگیرید که اکثر توسعه‌دهندگان تمایلی به انجام آن ندارند: آنچه آنها می‌خواهند کد عالی است که به مرور زمان پشتیبانی و بهبود می‌یابد. اینجاست که سرمایه گذاری Redis Inc بسیار مهم است. نوآوری در Redis از AWS (با استثنایی که در زیر به آن اشاره خواهم کرد)، مایکروسافت یا گوگل نیامده است. تمام صحبت ها در مورد توسعه جامعه پروژه های منبع باز عمدتاً افسانه است. شرکت هایی که از پشت انشعابات Redis می پرند تقریباً هیچ کاری برای رساندن Redis به وضعیت فعلی خود انجام نداده اند.

سالواتوره سانفیلیپو را در نظر بگیرید که Redis را تأسیس کرد. فکر می‌کنید کسی مثل آن، که تأثیر فوق‌العاده‌ای روی ردیس داشته است، توسط فوکرها حمایت می‌شود، درست است؟ نه چندان، همانطور که مفسر Hacker News ما می گوید:

Antirez [سالواتوره] ۲۱ هزار دنبال کننده و ۹ حامی دارد که در GitHub کمک مالی می کنند. نه! نه ۱۰، نه ۵۰، نه ۱۰۰۰ حامی… ۹ است—نجار که انگشت خود را در محل کار از دست داده هنوز می تواند آنها را بشمارد.

به هر حال، یکی از آن حامیان مالی فروشنده ابر نیست. مطمئناً، این امکان وجود دارد که آنها دیگر به Sanfilippo اهمیتی ندهند، با توجه به اینکه او دیگر با Redis ارتباط ندارد، اما آنها هرگز از او در زمانی که او در حال ساخت Redis بود حمایت نکردند.

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

تغییر مجوزها، اما چرا؟

وون نیکولز به الگویی اشاره می‌کند: «یک شرکت برنامه‌های خود را با استفاده از منبع باز می‌سازد، میلیون‌ها دلار از آن درآمد کسب می‌کند، و سپس – و تنها پس از آن – مجوزها را تغییر می‌دهد و مشارکت‌کنندگان، مشتریان و شرکای خود را در کمال می‌گذارد. سعی کنید میلیاردها دلار بدست آورید.» او «بیزار است»، اما شرکت‌هایی که او را مورد انتقاد قرار می‌دهد نیز همین‌طور هستند. هیچ کس این نوع تغییر را انجام نمی دهد مگر اینکه تحت فشار باشد.

وون نیکولز پیشنهاد می‌کند مشکل این است که این شرکت‌ها «متن باز» را به عنوان یک مدل کسب‌وکار اشتباه می‌گیرند. او در این مورد نیز اشتباه می کند. مشکل این است که ابرها منبع باز را به عنوان یک منبع مشترک اشتباه می گیرند که می توانند از آن استفاده کنند و کمک نکنند.

شما خیلی دیر برنامه ریزی ابری انجام می دهید

این یکی از دلایلی است که من برای OSI تلاش کرده‌ام تا به مأموریت خود عمل کند و کپی‌لفت قوی برای نرم‌افزار ابری معرفی کند. به توسعه دهندگان (شرکتی یا غیره) ابزاری بدهید تا از آزادی کد خود محافظت کنند و ما شاهد نرم افزارهای کمتر در دسترس با منبع خواهیم بود. به همین سادگی است.

در همین حال، دوشاخه والکی به ما می‌گوید که ابرها می‌ترسند قطار خاکستری ردیس را از دست بدهند که کمک چندانی به آن نکرده‌اند. باز هم، من بیشتر در مورد یک ابر خاص (AWS) صحبت می کنم.

طنز این است که Redis یکی از معدود مناطقی است که AWS در واقع در آن مشارکت دارد. من به طور مرتب به کار چشمگیر مادلین اولسون، یک نگهدارنده Redis، به عنوان نمونه ای برای AWS به صورت روزانه اشاره کرد. بخشی از آن به این دلیل است که اولسن عالی است. دلیل دیگر این است که او تقریباً تنها نمونه ای بود که AWS داشت. همانطور که او اخیراً اشاره کرد، “من در اوقات فراغت خود روی Redis کار می کردم.” این بدان معنا نیست که او هرگز روی Redis برای AWS کار نکرده است، اما واقعیت مهندسی منبع باز در AWS را نیز آشکار می کند. دلیل بزرگی که مهندسان AWS نسبت به همتایان خود در دیگر ابرها مشارکت کمی دارند این است که رهبری مهندسی ارزش کمی در انجام این کار قائل است. این در برخی از تیم‌ها شروع به تغییر کرده است (مانند تیم‌های RDS/Aurora که متوجه می‌شوند انجام کارهای بیشتر برای Postgres به نفع خودشان است)، اما آنها استثنا هستند، نه قاعده.

من را باور نمی کنید؟ علی‌رغم عشق جدید AWS به بنیاد لینوکس از طریق فورک Valkey/Redis، یافتن مشارکت‌های متناسب با میزان درآمد AWS برای شما سخت است. فقط نگاهی به CNCF devstats بیندازید.

واقعاً، یک پروژه انتخاب کنید. Kubernetes چطور؟ AWS بزرگترین فروشنده Kubernetes است که میلیاردها دلار درآمد دارد. با این حال مشارکت آن در مقایسه با گوگل یا ردهت لیلیپوتی است . مشارکت‌های Kubernetes AWS پشت سر DaoCloud Network Technology Co. Ltd. و درست جلوتر از The Scale Factory Limited قرار دارد. این احتمال وجود دارد که شما نام هیچ یک از این شرکت ها را نشنیده باشید، اما آنها تقریباً به اندازه AWS مشارکت دارند.

این موضوع در مورد پرومته نیز صادق است، < a href="https://opentelemetry.devstats.cncf.io/d/5/companies-table?orgId=1" rel="nofollow">OpenTelemetry و غیره. AWS از این پروژه ها استفاده می کند تا یک سرویس ابری، با این حال در پنج مورد برتر در مشارکت‌ها قرار نمی‌گیرد. OpenTelemetry یا حتی ۲۰ مورد برتر در مشارکت های Prometheus< /a>. در تمام پروژه های منبع باز که می توانید نام ببرید (به استثنای معدود پروژه هایی که AWS راه اندازی کرده است)، AWS مجموعا ده ها میلیارد دلار بدون کمک حتی ده ها هزار خط کد به دست می آورد.

DBOS: راه بهتری برای ساخت برنامه ها؟

آیا این به نوعی نقض منبع باز است؟ نه اصلا. اما این دلیل “کشش فرش منبع باز” است که مردم ردیس را مورد انتقاد قرار داده اند.

وسواس مشتری چطور؟

مبادا فکر کنید که من توسط کارفرمای فعلی خود MongoDB (که مجوزش را تغییر داد، مشابه Redis) مغرضانه هستم، ممکن است برایتان جالب باشد که بدانید وقتی استراتژی منبع باز و تیم بازاریابی در AWS را اداره می کردم، این حرف همیشگی من بود. آخرین کاری که قبل از ترک AWS انجام دادم، نوشتن مقاله ای شش صفحه ای در مورد اینکه چرا و چگونه AWS می تواند بهتر از شرکای منبع باز خود پشتیبانی کند، بود. بحث من این بود که AWS باید عمیق‌تر روی کد و موفقیت تجاری شرکای منبع باز خود سرمایه‌گذاری کند، در نتیجه سودآوری بیشتری برای این شرکت‌ها ایجاد می‌کند که نرم‌افزار خود را منبع باز نگه دارند.

من در آن زمان معتقد بودم، و هنوز هم معتقدم، این امر هم از زنجیره تامین منبع باز AWS محافظت می کند و هم به بهترین نحو به مشتریان خدمات ارائه می دهد. هیچ مشتری واقعاً Valkey (چنگال Redis) یا OpenTofu (چنگال Terraform) یا OpenSearch (چنگال Elasticsearch) را نمی‌خواهد. آنها نسخه اصلی و “پر چرب” را می خواهند.

واقعاً دشوار نیست که بفهمیم چگونه می‌توان اطمینان حاصل کرد که مشتریان همچنان Redis، Elasticsearch، Terraform و غیره پرچرب دریافت می‌کنند. ابرها می‌توانند نحوه همکاری بهتر را بیاموزند. اگر منصف باشیم، برخی از قبل این کار را انجام می دهند. بیایید از Elasticsearch به عنوان مثال استفاده کنیم. Google Cloud مدت‌هاست که از شرکت‌های منبع باز و شریک با Elastic برای ارائه یک تجربه عالی Elasticsearch پشتیبانی می‌کند. مایکروسافت نیز به طور فعال از طریق کد و پول نقد به منبع باز کمک کرده است، از جمله مشارکت گسترده با Elastic. AWS؟ خوب، چند پست وبلاگ نوشت که خود را قربانی نشان می داد، سپس Elasticsearch را در یک حرکت عمیقاً بدون وسواس مشتری ایجاد کرد.

برای منصفانه بودن AWS، پیروی آن از اصول رهبری همانطور که نوشتم a> رابطه آن با منبع باز را هم پشتیبانی می کند و هم آن را پیچیده می کند. رویکرد “مشتری وسواس” شریک کردن خواهد بود. اما برای “ارائه نتایج”، شرکت نیاز به کنترل را احساس می کند. این کار مشارکت را دشوارتر می کند.

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

در حال حاضر، ما فقط می‌توانیم دنیایی را تصور کنیم که در آن ابرها به جوامع موجود کمک می‌کنند، به جای اینکه آن جوامع را در زمانی که ارزش بازار تریلیون دلاری آن‌ها با چشم‌انداز همکاری تهدید می‌شود، از بین ببرند. اگر تلاش کنید آسان است.