این مطلب یکی از مجموعه مقالات پرونده ویژه «نرمافزارهای متنباز» شماره 196 ماهنامه شبکه است. علاقهمندان میتوانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند.
مدل توسعه فناوریهای منبع باز در گوگل چیست؟
توسعه منبع باز در گوگل هم متنوع و هم توزیع شده است. پروژههای بزرگتری که ما منتشر میکنیم معمولاً از گروههای اختصاصی توسعه و پشتیبانی در پروژه برخوردارند که با سایر توسعهدهندگان جانبی خود در تعامل هستند و از سایر بخشهای دیگر درونسازمانی نیز پشتیبانی میکنند. خیلی از پروژههای کوچکتر تنها شامل یک یا دو مهندس است که برای کسب تجربه یا صرفاً سرگرمی کار میکنند. در حالی که ما از یک دفتر مرکزی برنامههای منبع باز برخوردار هستیم که البته به نسبت اندازه شرکت تقریباً کوچک است. درعوض، با مشارکت صدها گروه و هزاران مهندس، صاحب نظر فناوری، طراح و مدیر تولید به شکلهای مختلف یک توسعه واقعی در این شرکت تحقق پیدا میکند.
فرآیندی که گوگل دنبال میکند تا یک پروژه را بهعنوان یک نسخه منبع باز شناسایی کند چیست؟
اغلب اوقات در گوگل تصمیمگیری درباره منبع باز بودن یک پروژه از طرف خود اعضای گروه سازنده محصول انجام میشود. دلایل زیادی برای این کار وجود دارد. TensorFlow یک مثال بارز از نحوه کار ما روی سیستم یادگیری ماشینی در گوگل طی سالهای گذشته و یافتن فرصتی برای پیشرفت کل این صنعت به جلو است. از آنجا که منبع باز مدت زمان زیادی است که به بخشی از فرهنگ گوگل تبدیل شده، مزایای آن کاملاً آشکار است و به همین دلیل انتشار یک پروژه مشخص امری کاملاً طبیعی است.
بهغیر از انتشار پروژه برای توسعهدهندگان، گوگل چگونه برای گسترش نوآوری منبع باز را مستقر میکند؟
در موقعیت داخلی اغلب کدهای منبع برای تمام محصولات گوگل در یک مخزن یکپارچه ذخیرهسازی میشود. بنابراین از خیلی جهات شبیه به یک پروژه منبع باز بزرگ است که هرکسی میتواند کد دیگران را مشاهده کند. این به اعضای گوگل اجازه میدهد کدهای دیگران را بخوانند و از آن اطلاعات کسب کنند. همچنین، بهمعنای آن است که آنها میتوانند برای کمک به بهبود پروژههای دیگران برای آنها کد اصلاحی بنویسند. فراتر از آن، ما برای اعضای گوگل این امکان را نیز فراهم کردهایم تا بتوانند از کدهای منبع باز نوشته شده در خارج از شرکت نیز استفاده کنند. تنها در شرایط مقايسه تعداد خطهای نوشته شده برای یک کد، تقريباً ما به همان اندازه که خودمان کدنویسی کردیم از کدهای منبع باز خارجی نیز استفاده کردهایم.
پروژههای منبع باز پیشنهادی که گوگل برای ایجاد راه حلهای جدید استفاده میکند شامل چه چیزهایی است؟
احتمالاً هیچ محصولی از گوگل را پیدا نمیکنید که به طریقی با منبع باز ارتباط نداشته باشد. از یک کتابخانه که مستقیم توسط یک محصول یا ابزار آزمایشی مورد استفاده قرار گرفته تا مراکز داده ما همگی بهنوعی با متن باز در ارتباط هستند. پروژههای بزرگی مثل لینوکس نیز در مراکز داده ما و در قلب محصولاتی مثل اندرويد و سیستم عامل کروم پیدا میشوند. به همین ترتیب، LLVM بهعنوان بخش گستردهای از ابزارهای داخلی و اغلب زبانهای توسعه که ما استفاده میکنیم همگی منبع باز هستند.
مهندسان منبع باز در گوگل چطور چرخه حیات یک پروژه را برنامهریزی میکنند؟
ما هرگز برای منبع باز رویکردی تحت عنوان «یک اندازه مناسب همه» نداشتیم. همچنین، با تصمیماتی که از سوی مسئولان پروژه اتخاذ میشود نیز هیچ مشکل خاصی نداریم. اغلب پروژههای ما کاملاً باز توسعه پیدا میکنند و برنامهریزی و تصمیمگیری داخلی خیلی کم صورت میگیرد. مطمئناً مواردی نیز وجود دارد که برنامهریزی یا توسعه داخلی اتفاق میافتد و دلایل گوناگونی برای آن وجود دارد. هزینههای زیادی برای این سبک مدیریت پروژه بهویژه از نظر توسعه گروهی وجود دارد. به همین دلیل، ما حداکثر تلاش خود را میکنیم تا با آموزش گروهها آنها بتوانند بهترین تصمیم را برای پروژه خود اتخاذ کنند.
میانگین زمانی برای انتقال یک پروژه از مرحله آلفا به بتا در گوگل چقدر است؟
بعضی پروژهها از همان مراحل اولیه کدنویسی عمومی هستند، در حالی که بعضی دیگر برای مدتی تا قبل از اینکه بهصورت عمومی منتشر شوند، بهشکل داخلی توسعه پیدا میکنند. بنابراین، پروژهها مراحل مختلفی از توسعه را تا زمان معرفی شدن طی میکنند. چیزی که ما سعی داریم بهتر شود این است که مراحل پروژه شفافتر انجام گیرد.
چگونه مهندسان گوگل یک پروژه منبع باز را قبل از انتشار عمومی آن آزمايش میکنند؟
بعضی از بزرگترین پروژههای منتشر شدهای که ما طی چند سال گذشته داشتیم بر مبنای فناوریهایی شکل گرفتهاند که برای چندین سال در گوگل وجود داشته است. برای مثال، TensorFlow بر مبنای سکوی یادگیری ماشینی داخلی ما بهنام Brain بوده است، GRPC بر اساس سیستم RPC داخلی ما تحت عنوان Stubby شکل گرفته است، Bazel نیز قبل از انتشار آنلاین خود Blaze نام داشت و Kubernetes نیز نتیجه سالها تجربه ما با زمانبندی شغلی داخلی ما تحت عنوان Borg بوده است. بنابراین، از بسیاری جهات این پروژهها با روشی دقیقتر توسط اولین محصولات و زیرساختهای گوگل مورد آزمایش قرار گرفتهاند. حالا این موضوع درباره خیلی از پروژههای منبع باز ما صدق میکند. پروژههایی در اندازه کوچک تا متوسط به همان شیوه محصولات گوگل مورد آزمايش قرار میگیرند و قبل از انتشار عمومی توسط اعضای گوگل آزمايش میشوند.
چگونه گوگل در پروژههای متنوع منبع باز خود امکان مشاركتهای عمومی را فراهم میکند؟
اساساً ما نیز از همان ابزاری استفاده میکنیم که سایر گروههای منبع باز استفاده میکنند که شامل GitHub، IRC یا Slack، Stack Overflow، mailing list و چند مورد دیگر است. همچنین، ما در خیلی از کنفرانسهای منبع باز حضور مستمر و جدی داریم و میتوانیم در همان جا با اعضای گروهها مشارکت داشته باشیم. ما در سراسر دنیا یک شبکه گسترده از گروههای توسعه گوگل را تشکیل دادهایم و این گروهها بهگرمی از مشارکت عمومی استقبال میکنند.
چگونه دفتر برنامههای منبع باز گوگل سیاستهای جدید مربوط به پروژههای منبع باز را تعریف میکند؟
سیزده سال است که از فعالیت دفتر برنامههای منبع باز گوگل میگذرد و سیاستهای ما در طی این سالها با رشد شرکت و در رویارویی با چالشهای جدید نیز توسعه پیدا کرده است. ماه گذشته، ما تمام سیاستگذاریها و اسناد خود را در سایت جدید مرکز منبع باز گوگل (opensource.google.com) منتشر کردیم. این اسناد بر اساس تمام تجربیاتی که حین کار با منبع باز طی سالها کسب کردهایم، گردآوری شده است. ما میدانیم شیوهای که برای کارها در نظر گرفتهایم، ممکن است برای همه مناسب نباشد، اما این اسناد را تحت ضوابطی باز تنظیم کردهایم تا سایرین بتوانند آن را با نیازهای شرکت خود وفق دهند.
آیا این یک منبع باز تجاریسازی شده یا FOSS (سرنام Free and Open Source Software) است که بیشتر از گوگل طرفدار دارد؟
خیلی از پروژههای منبع باز رایگان موفق به شیوههای مختلف در حمایت مالی مشارکت دارند، حتی اگر تنها به این معنا باشد که آنها کارمندانی داشته باشند که بهصورت تماموقت در این پروژه کار میکنند. شاید بتوان گفت این بزرگترین روشی است که گوگل از خیلی از پروژههای منبع باز پشتیبانی میکند. برای نمونه، ما به بنیادهای تشکیلدهنده لینوکس، LLVM, Git و Samba کمک مالی میکنیم. اما مهمتر از آن، مهندسانی را استخدام میکنیم که تنها شغل آنها مشارکت و کمک به نگهداری این پروژهها است، زیرا برای ما از اهمیت خاصی برخوردارند.
فکر میکنید این روزها چالش اصلی در انتشار یک راهکار منبع باز چیست؟
وقتی سعی میکنید مشکلات فنی یک پروژه را برطرف کنید، یکی از بزرگترین چالشهایی که ناگزیر به رفع آن هستید مدیریت گروهها است. اما این تنها منحصر به منبع باز نیست و در هر سازمان مهندسی دیگری نیز این موضوع صدق میکند. مردم نامنظم و پیچیده هستند. آنها میتوانند پافشاری زیادی روی نظر و عقيده خود داشته باشند، آنها اغلب اهمیتی به آن چیزی که برای شما بااهمیت است نمیدهند و آنها بیرون از پروژه شما هستند و از اتفاقات غیرمنتظره و توضیحناپذیر باخبر نیستند. مدیریت مردم چه در ارتباط با یک کارمند رسمی یا تنها عضوی از یک جامعه منبع باز، کاری بهشدت طاقتفرسا است. اما از طرفی میتواند مزایای زیادی نیز داشته باشد. من معتقدم کمک به گروههای مختلفی از مردم که برای یک هدف مشترک با یکدیگر کار میکنند تا چیزی را بسازند، بسیار کارآمدتر از جمع شدن مشارکتهای مستقل است. به همین دلیل است که من از کارم لذت میبرم.
چگونه گوگل این چالشها را پشت سر میگذارد؟
این یک سؤال کلیدی است. گوگل ابتدا کار را با فراهم کردن یک محیط دوستانه برای خوشامدگویی به افراد مشارکتکننده آغاز میکند تا همه بتوانند بهطور یکسان در کار مشارکت داشته باشند. این واقعیت نیز وجود دارد که در یک پروژه اختلافات و تداخلاتی نیز وجود خواهد داشت و همیشه برای مواجه شدن و اداره آن باید آماده بود. به این معنا که باید محیطی را فراهم کرد تا همه ملاحظات در آن در نظر گرفته شود و کاستیها برطرف گردد. ما میدانیم که همیشه هم نمیتوان به همه ایدهآلها رسید، اما این همان هدفی است که من بهدنبال آن هستم.
علاوه بر سمتی که شما در حال حاضر در گوگل دارید، ظاهراً یکی از پشتیبانان بزرگ وردپرس نیز هستید، فکر میکنید چه چیزی باعث شده است تا وردپرس به یک سکوی دموکراتیزه تبدیل شود؟
با وجود اینکه وردپرس در یک سرور و نام دامنه شخصی میزبانی میشود، هر کسی میتواند این نرمافزار را دانلود و بدون نیاز به دریافت مجوز از کسی در سرور خود از آن استفاده کند. هیچ ضوابطی برای پذیرفتن در هنگام استفاده وجود ندارد و کسی شما را محدود نمیکند که چه پستهایی را نمیتوانید ارسال کنید و هیچ شرط و شروطی برای موافقت با آن وجود ندارد. امروزه سکوهای بیشماری برای این کار در اختیار شما است، اما 10 یا 15 سال قبل چنین چیزی وجود نداشت.
فکر میکنید چه عوامل مشترکی بین گوگل و وردپرس وجود دارد؟
در اساسیترین سطح هر دو باور دارند که برای شکوفایی و نوآوری اینترنت باید یک سکو باز باشد.
سؤال آخر اینکه صرف نظر از گوگل و وردپرس، آینده منبع باز را چگونه ارزیابی میکنید؟
کد منبع باز بهمراتب بیشتر از آنچه امروز وجود دارد، نوشته شده است؛ بنابراین، ما هنوز در ابتدای راه رشد منبع باز قرار داریم. باید منتظر بود و آینده را دید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟