مشکلی که نیازمند انقلاب بود

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

ظهور بورگ؛ معماری مدیریت کلاستر

پاسخ گوگل به این بحران، سیستم مدیریت کلاستر داخلی به نام بورگ (Borg) بود. این پلتفرم قدرتمند نه تنها بارهای کاری را توزیع می‌کرد، بلکه مسیری was تعیین‌کننده برای آینده‌ی حرکت‌های تکنولوژی. مسئولیت‌های اصلی بورگ مانند یک نقشه‌ی راه کامل عمل می‌کرد:

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

فلسفه‌ی فراتر از کد

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

زیرساخت نامرئی، میراثی اسطوره‌ای

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

محدودیتی که جاده را برای کوبرنتیز باز کرد

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

تولد کوبرنتیز و استانداردسازی ابری

تیم فنی گوگل تصمیم گرفت قیچی را بزند و از صفر شروع کند. آن‌ها ایده‌ی ارکستراسیون بورگ را گرفتند، اما تمام وابستگی‌های داخلی را دور ریختند. به جای کدهای C++ سنگین و پشته‌ی درونی گوگل، از کوبرنتیز (Kubernetes) به عنوان یک هسته‌ی مستقل و خنثی استفاده کردند که بتواند روی هر فیزیکی یا مجازی اجرا شود. در سال ۲۰۱۴، گوگل این هسته‌ی قدرتمند را به جامعه‌ی بنیاد زیرساخت ابری (CNCF) سپرد. کوبرنتیز پیام بورگ را به جهان رساند، اما بدون زنجیرهای وابستگی به پلتفرم خاصی.

وراثت زنده در هر دیتاسنتر ابری

امروزه کوبرنتیز نه تنها جایگزین ارکستراتورهای قدیمی شد، بلکه معیار اصلی مدیریت اپلیکیشن‌های مدرن در سطح جهان است. هر پلتفرم ابری بزرگ، هر کلان‌شرکت و هر استارتاپ مقیاس‌پذیری، از DNA بورگ استفاده می‌کند. فلسفه‌ی «تعداد کمتر سرور، اجرای هوشمندتر»، «خودترمیمی اتوماتیک» و «تعریف قصد به جای اجرای دستور» از یک سیستم آزمایشی داخلی، اکنون ستون فقرات اینترنت مدرن است. با گسترش حرکت به سمت لبه‌ی محاسبات (Edge Computing) و سرویس‌کلاسترهای توزیع‌شده، نسل بعدی ارکستراسیون‌ها در حال شکل‌گیری است، اما قانون بنیادین تغییر نکرده است. ابزاری که روزی تنها برای مدیریت اقیانوسِ داده‌ی یک شرکت ساخته شد، اکنون آب دریا را اداره می‌کند.