SRE: آشنایی با مقولهٔ مهندسی ضریب اطمینان و اهمیت در کمپانی گوگل

SRE: آشنایی با مقولهٔ مهندسی ضریب اطمینان و اهمیت در کمپانی گوگل

SRE سرواژهٔ سه کلمهٔ Site Reliability Engineering است که به‌صورت تحت‌الفظی می‌توان آن‌ را «مهندسی ضریب اطمینان» ترجمه کرد. اجازه دهید این‌گونه برایتان توضیح دهیم که وقتی عملکرد یک سیستم مورد تهدید واقع می‌شود و این‌طور به‌ نظر می‌رسد که این تهدیدات نوعی مشکل نرم‌افزاری‌اند، پای SRE به میدان خواهد آمد. در واقع، مأموریت متخصصین SRE این است تا همهٔ سیستم‌ها و نرم‌افزارهایی که در پس خدمات عمومی کمپانی گوگل هستند را ارتقاء دهند و از آن‌ها حفاظت کنند و این در حالی است که ایشان باید با نهایت دقت بر ظرفیت، عملکرد و دسترسی‌پذیری سرویس‌های گوگل همچون جستجوی گوگل (Google Search)، تبلیغات (Ads)، خدمات پست الکترونیک گوگل (Gmail)، سیستم‌عامل اندروید (Android)، یوتیوب (YouTube) و موتور نرم‌افزاری گوگل (App Engine) نظارت کنند.

شغل مهندسان SRE ترکیبی است که نظیرش در هیچ کجای دنیای صنعت و فناوری پیدا نمی‌شود! این گروه از مهندسین مانند گروه‌های عملیاتی قدیمی، سیستم‌های حیاتی و مهم را سرپا نگاه می‌دارند و علیرغم وجود خطاهای پیکربندی، محدودیت‌های پهنای باند و بسیاری از مشکلات اینچنینی، سعنی می‌کنند تا کلیهٔ سیستم‌ها را به اصطلاح Up نگاه می‌دارند.

علاوه بر این‌، این گروه از مهندسین گوگل برخلاف گروه‌های عملیاتی قدیمی، نرم‌افزارها را منبع اولیهٔ کار خود می‌دانند و با استفاده از همین نرم‌افزارها اقدام به مدیریت سیستم‌ها کرده و بر آن‌ها نظارت می‌کنند. در نهایت، مهندسان SRE باید پِرمیشن‌های پرنسل برای دسترسی به منابع سیستم را نظاره کرده، کدها را ریفکتور کنند تا همچنان نتیجهٔ دلخواه حاصل گردد، سورس‌کدها را در مقابل حملات سایبری تحت وب مقاوم سازند و پلتفرم خود را برای ابعاد و مقیاس‌های جهانی توسعه دهند.

چه کسانی برای شغل SRE به استخدام گوگل درمی‌آیند؟
واقعیت امر آن است که در کمپانی گوگل سرمایهٔ قابل‌توجهی برای توسعهٔ سیستم‌های متفاوت وجود دارد؛ از دیتابیس در مقیاس جهانی (Planet-Spanning Databases) گرفته تا سیستم‌هایی برای ذخیره‌سازی داده‌های مقیاس‌پذیر در آن‌ِ واحد (Near Real-Time Scalable Data Warehousing). در مهندسی SRE، مهندسان در طیف وسیعی از سیستم‌ها و کاربرهایی که شمار آن‌ها از میلیارد نیز می‌گذرد، با انبوهی از دیتای مرتبط با I/O سروکار دارند. همچنین مهندسین SRE مالک اصلی سرویس‌هایی هستند که هنوز در دست تولید قرار دارند و به بازار عرضه نشده‌اند؛ آن‌ها با استفاده از تسلط کامل و عمیق بر اِستک مورد استفاده، کنترل ضریب اطمینان و عملکرد در مقیاس‌های عظیم را در دست دارند. در واقع، این مهندسان هر روز باید در حال یادگیری مطالب جدیدی باشند چرا که شغل ایشان ایجاد می‌کند.

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

نگاهی بر SRE از دیدگاه برخی از متخصصان این حرفه
Ben Treynor Sloss، نایب رئیس گروه مهندسین شرکت گوگل و مؤسس بخش SRE در این کمپانی، در مورد شغلش می‌گوید:

در واقع وقتی شما از یک مهندس می‌خواین که یک تَسکی رو طراحی و اجرا کنه، یک فرایند SRE صورت می‌گیره. 

Nida Farrukh، مهندس SRE از زوریخ، می‌گوید:

مهندسین نرم‌افزار قدیمی سعی می‌کردن که تمرکز و توجه خود رو تنها به یک سیستم معطوف کنن و زیر‌وبم اون سیستم رو کامل فرا بگیرن اما مهندسین SRE به این سو گرایش دارن که دانش خودشون رو در دامنهٔ وسیعی از سیستم‌ها و نرم‌افزارها گسترش بدن.

Andrew Widdowson، مهندس SRE در مجلهٔ Mountain، می‌گوید:

شغل ما مثل بودن در بزرگترین تیم تعویض وسایل خودروی مسابقه در طول مسابقه هست؛ ما چرخ‌های این خودرو رو در حالی تعویض می‌کنیم که 100 کیلومتر بر ساعت سرعت داره!

John T. Reese، مهندس SRE از سان‌فرانسیسکو، می‌گوید:

خدمات SRE بر اساس قابلیت‌های دوجانبه‌ای شکل می‌گیرن. این شغل حرکت بین دیدگاه‌های مختلفه که به مهارت‌ها و خلاقیت خاصی نیاز داره. در واقع، مهندسین SRE متخصصان ایجاد تغییرات به‌ شکلی ایمن هستن.

آیا تا پیش از این از موقعیت شغلی SRE در گوگل خبر داشتید و به نظر شما چالش‌های کاری این دست مهندسین چیست؟ نظرات و دیدگاه‌های خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.