سایت خبری
famaserver
  • خانه
  • عمومی
  • ورزش
  • اقتصاد
  • مسکن
  • بین الملل
  • جامعه
  • فناوری اطلاعات
سایت خبری
برترین عناوین خبری
  • خرید بیمه: سنتی یا آنلاین؟ کدامیک تجربه بهتری برای مشتریان ایجاد می‌کند؟

سرتیتر خبرها

گزارش رسانه‌های صهیونیستی از ناکامی تلاش‌ها برای تشکیل نیروی بین‌المللی در غزه

گزارش رسانه‌های صهیونیستی از ناکامی تلاش‌ها برای تشکیل نیروی بین‌المللی در غزه

6 ماه پیش
واکنش نتانیاهو به حمله استرالیا

واکنش نتانیاهو به حمله استرالیا

6 ماه پیش
حماس ترور فرمانده ارشد القسام را تایید کرد

حماس ترور فرمانده ارشد القسام را تایید کرد

6 ماه پیش
عراقچی: صلح و ثبات افغانستان تنها از مسیر همگرایی منطقه‌ای محقق می‌شود

عراقچی: صلح و ثبات افغانستان تنها از مسیر همگرایی منطقه‌ای محقق می‌شود

6 ماه پیش
غریب آبادی: مردم ایران هرگز تسلیم تهدیدات و تجاوزات نخواهند شد و متحد و منسجم در مقابل متجاوز خواهند ایستاد

غریب آبادی: مردم ایران هرگز تسلیم تهدیدات و تجاوزات نخواهند شد و متحد و منسجم در مقابل متجاوز خواهند ایستاد

6 ماه پیش
واکنش ایران به حمله خشونت آمیز در سیدنی استرالیا

واکنش ایران به حمله خشونت آمیز در سیدنی استرالیا

6 ماه پیش
مصر: همه گزینه‌ها از جمله راه‌حل نظامی را درمورد سد النهضه بررسی می‌کنیم

مصر: همه گزینه‌ها از جمله راه‌حل نظامی را درمورد سد النهضه بررسی می‌کنیم

6 ماه پیش
واکنش آمریکا به تیراندازی مرگبار در سیدنی

واکنش آمریکا به تیراندازی مرگبار در سیدنی

6 ماه پیش
رضا نصری: علی‌اکبر صالحی شایسته‌ترین گزینه نه برای مدیریت یک سفارتخانه، بلکه برای عهده‌دار شدن سمت پیشنهادی «نماینده ویژه ایران در جهان عرب» است

رضا نصری: علی‌اکبر صالحی شایسته‌ترین گزینه نه برای مدیریت یک سفارتخانه، بلکه برای عهده‌دار شدن سمت پیشنهادی «نماینده ویژه ایران در جهان عرب» است

6 ماه پیش
ادعای اوکراین درباره حملات نظامی دقیق به عمق خاک روسیه

ادعای اوکراین درباره حملات نظامی دقیق به عمق خاک روسیه

6 ماه پیش

Home » تجربه‌های برنامه‌نویسی در گوگل: از پروتکل وقوع حادثه تا فرهنگ برخورد بدون مقصریابی

تجربه‌های برنامه‌نویسی در گوگل: از پروتکل وقوع حادثه تا فرهنگ برخورد بدون مقصریابی

زمان انتشار: 29 آگوست 2021 ساعت 14:00

دسته بندی: فناوری اطلاعات

شناسه خبر: 1288336

زمان مطالعه: 14 دقیقه

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

«کیانوش مختاریان»، مهندس ارشد نرم‌افزار و مدیر فنی گوگل مهمان برنامه «علی‌بابا تاک» بود و در گفت‌وگو با «احسان آراسته»، راهبر ارشد فنی علی‌بابا به بیان تجربیات خود از دوران فعالیتش در گوگل پرداخت. او در ابتدا به یکی از تفاوت‌های گوگل با سایر شرکت‌ها در زمینه مرزبندی میان مدیرمحصول و برنامه‌نویس‌ها اشاره کرد و گفت در گوگل همه امکان ارائه پیشنهاد را دارند:

«در بسیاری از شرکت‌ها این که چکار کنیم و پروژه بعدی چه باشد در حوزه استحفاظی مدیرمحصول و چطور این پروژه پیاده‌سازی شود در حوزه استحفاظی برنامه‌نویس‌ها است اما در گوگل خبری از حوزه استحفاظی نیست. اگر چه هر کسی مسئولیت مشخصی دارد اما همه می‌توانند در زمینه‌های مختلف نظر خود را ارائه کنند.»

به گفته مختاریان آغاز هر پروژه در گوگل معمولا زمان‌بر بوده و نمی‌توان با تعیین طرح فورا به سراغ پیاده‌سازی آن رفت زیرا بایستی گفت‌وگوهایی در زمینه‌های مختلف آن صورت گرفته و تاثیر پروژه در تغییر هر بخش مشخص شود تا برای بهترین راه پیاده‌سازی پروژه، تصمیم گیری شود.

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

عدم محدودیت در انتخاب زبان

برنامه‌نویس‌های گوگل از چه زبانی استفاده می‌کنند؟ این را می‌توان یکی از پرتکرارترین سوالاتی دانست که از ایرانی‌های حاضر در گوگل پرسیده می‌شود.

آن طور که ‏مختاریان می‌گوید راهنما و گایدلاینی برای انتخاب زبان وجود نداشته و مسئله کارکنان این شرکت نیست:

«اکثر سرویس‌های قدیمی گوگل با زبان C++ نوشته شده بودند. اما طی سال‌ها اخیر بیشتر از GO استفاده می‌شود. اما مهم این است که اعضای تیم روی چه زبانی تسلط دارند و این زبان تا دو سه سال آینده چه سرنوشتی خواهد داشت. تقریبا مشخص است هر زبان برای چه زمینه‌ای کاربرد دارد از همین روی همه چی به انتخاب تیم بوده که با چه زبانی راحت‌ترند. اگرچه برخی از زبان‌ها نیز تاییدیه نداشته و امکان استفاده از آن‌ها وجود ندارد.»

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

به گفته مختاریان، مخزن کد در گوگل یک مخزن بزرگ و یک پارچه است که همه کدها روی آن قرار داشته و در یک شاخه اصلی است که در صنعت به trunk based development معروف است. البته برخی سرویس‌های گوگل همانند کروم که اوپن سورس هستند، مخزن جداگانه‌ای برای خود دارند.

پروسه کدنویسی در گوگل

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

آن طور که این ‏مهندس ارشد نرم‌افزار گفت این پروسه پیش از کد نویسی آغاز شده و مربوط به کد استایل است. چیزی که فقط ظاهری نبوده و نکات معنایی بایستی در آن رعایت شود، به طور مثال پارامتر Output بایستی به نحوی خاص تعریف شود. همچنین بسیاری از قابلیت‌های زبان ممنوع شده اگرچه به مرور در حال آزادسازی هستند. همچنین راهنمای استایل در نظر گرفته شده که کمک می‌کند همه کدها همگن شوند. این استاندارد کمک می‌کند تا فارغ از روش کار برنامه‌نویس، کدهایی تقریبا شبیه به هم نوشته شود. بخش دیگر فرایند نیز به خوانایی و unit test code باز می‌گردد که موضوعی مهم بوده و نبایستی هیچ پیچیدگی خاصی داشته باشد.

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

به گفته وی بخشی از فرایند بازبینی کد توسط آدم‌ها انجام شده که به آن همتاداوری می‌گویند. مسئول بازبینی کد را از نظر معنایی، API و … بررسی می‌کند. مختاریان، مرحله پایش و مانیتورینگ را مرحله بعدی فرایند کدنویسی می‌داند و از آن با عنوان جعبه سفید مانیتورینگ یاد می‌کند که به دقت اتفاقات درون سرویس پایش می‌شود:

«همانند قناری که برای نشت گاز در معادن مورد استفاده قرار می‌گیرد، یک سرور را به عنوان قناری در نظر می‌گیریم تا اگر مشکلی پیش آمد تاثیری روی همه کاربران نداشته باشد و ما نیز از مشکلات آن آگاه شویم. در ابتدا کد را روی ۵-۶ تک سرور در ۷-۸ دیتاسنتر قرار می‌دهیم تا یک روز اجرا شود و نتایج آن را براساس شاخص‌های تعیین شده تست می‌کنیم. سپس کد را در نود دیتاسنتر قرار می‌دهیم زیرا با توجه به پویایی سیستم، شفاف‌ترین و قابل اعتمادترین روش تست قرار دادن کد روی نصف یک دیتاسنتر است. اگر هیچ مشکلی نداشت، کد در کل سرویس جهانی عرضه می‌شود.»

او در ادامه به «عرضه اورژانسی» اشاره کرد و گفت فرایندی موازی فرایند عرضه است که می‌توان در عرض یک ساعت، یک تکه کد جدید را برسانیم. همچنین «رول بک» را از دیگر قابلیت‌های مهم فرایند عرضه دانست.

پروتکل‌های گوگل در لحظه وقوع حادثه

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

او در ادامه به فرهنگ برخورد بدون مقصریابی در گوگل اشاره کرد و گفت:

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

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

اشتراک گذاری

اخبار مرتبط

  • ترفندهای مخفی کوپایلوت برای افزایش بهره‌وری
    ترفندهای مخفی کوپایلوت برای افزایش بهره‌وری 2 ساعت پیش
  • پشت پرده درآمد میلیاردی خانواده ترامپ از ارزهای دیجیتال
    پشت پرده درآمد میلیاردی خانواده ترامپ از ارزهای دیجیتال 2 ساعت پیش
  • آنتروپیک از Claude Fable 5 رونمایی کرد؛ جهش بزرگ در کدنویسی AI
    آنتروپیک از Claude Fable 5 رونمایی کرد؛ جهش بزرگ در کدنویسی AI 2 ساعت پیش
  • اپل از نقش واقعی گوگل در ساخت سیری جدید پرده برداشت
    اپل از نقش واقعی گوگل در ساخت سیری جدید پرده برداشت 2 ساعت پیش

دیدگاه ها

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته بندی موضوعات

  • استانها 16345
  • اقتصاد 11931
  • بازار مالی 2471
  • بین الملل 14490
  • تبلیغات 31
  • جامعه 10132
  • دانش 7584
  • عمومی 1926
  • فناوری اطلاعات 7992
  • فیلم 3546
  • کاریکاتور 519
  • مسکن 1924
  • ورزش 23778

جدیدترین مقالات

  • سد سرابی سریز کرد
    سد سرابی سریز کرد 6 ساعت پیش
  • مشهد برای تدفین رهبر شهید آماده است
    مشهد برای تدفین رهبر شهید آماده است 6 ساعت پیش
  • توسعه  پایدار بخش معادن نیازمند استفاده حداکثری از توان تخصصی مهندسین است
    توسعه پایدار بخش معادن نیازمند استفاده حداکثری از توان تخصصی مهندسین است 6 ساعت پیش
  • نقش بانک ملی در توسعه زیرساخت‌های اقتصادی کرمان/ هم‌اندیشی نمایندگان مجلس و مدیران بانکی
    نقش بانک ملی در توسعه زیرساخت‌های اقتصادی کرمان/ هم‌اندیشی نمایندگان مجلس و مدیران بانکی 6 ساعت پیش
  • سهمیه سوخت صنایع و معادن قزوین افزایش یافت
    سهمیه سوخت صنایع و معادن قزوین افزایش یافت 6 ساعت پیش

لینکهای پیشنهادی

سرور مجازی |  دانلود رایگان نرم افزار |  کلاس آنلاین

میزبانی در هاست ویندوز فاماسرور