کلاودفلر پایداری شبکه با کتابخانه ecdysis را به صورت متن باز در اختیار توسعه دهندگان قرار داد

کلاودفلر پایداری شبکه با کتابخانه ecdysis را به صورت متن باز در اختیار توسعه دهندگان قرار داد

تیم تحریریه استاد آی تی گزارش می دهد: دنیای زیرساخت های اینترنتی با چالشی همیشگی روبرو است: چگونه می توان یک سرویس شبکه ای را که در هر ثانیه میلیون ها درخواست را مدیریت می کند، بدون حتی یک لحظه وقفه بروزرسانی کرد؟

کلاودفلر (Cloudflare) به عنوان یکی از پیشگامان امنیت و پایداری وب، با معرفی و متن باز کردن کتابخانه ecdysis، پاسخی قدرتمند به این پرسش داده است. این کتابخانه که نام خود را از فرآیند پوست اندازی در خزندگان الهام گرفته است، به سرویس های مبتنی بر زبان Rust اجازه می دهد تا کدهای قدیمی خود را دور ریخته و بدون قطع شدن اتصالات فعال، نسخه های جدید را جایگزین کنند.

چالش های بازنشانی سنتی و راهکار هوشمندانه کلاودفلر

در روش های سنتی، برای بروزرسانی یک نرم افزار، ابتدا باید فرآیند قدیمی متوقف و سپس فرآیند جدید آغاز شود. این وقفه کوتاه، هرچند در حد چند میلی ثانیه باشد، در مقیاسی که کلاودفلر فعالیت می کند به معنای شکست خوردن میلیون ها درخواست در سطح جهان است. استفاده از گزینه هایی مانند SO_REUSEPORT در سطح هسته سیستم عامل نیز به دلیل احتمال یتیم شدن (Orphaned) اتصالات در صف انتظار، راهکار کاملی محسوب نمی شد.

کلودفلر با «مارک داون برای ایجنت ها» چگونه اینترنت را متحول می کند؟

کتابخانه ecdysis با بهره گیری از الگوی Fork-then-Exec که در نرم افزارهای محبوبی چون NGINX استفاده می شود، این مشکل را حل کرده است. در این مدل، فرآیند والد یک فرآیند فرزند ایجاد می کند که نسخه جدید کد را اجرا می کند. نکته کلیدی اینجاست که توصیفگرهای فایل (File Descriptors) مربوط به سوکت های شنونده، از طریق یک لوله نام گذاری شده (Named Pipe) به فرآیند جدید منتقل می شوند. این یعنی سوکت در تمام طول انتقال باز می ماند و هیچ درخواستی با خطای ECONNREFUSED مواجه نمی شود.

تحلیل فنی: چرا ecdysis برای اکوسیستم Rust حیاتی است؟

زبان برنامه نویسی Rust به دلیل امنیت حافظه و کارایی بالا، به انتخاب اول برای توسعه زیرساخت های ابری تبدیل شده است. با این حال، مدیریت بازنشانی های بدون وقفه (Graceful Restarts) در محیط های ناهمگام (Asynchronous) مانند Tokio پیچیدگی های خاص خود را دارد. کتابخانه ecdysis با ارائه یکپارچگی بومی با Tokio و پشتیبانی از سیستم های مدیریت سرویس مانند systemd، این پیچیدگی را برای توسعه دهندگان به حداقل رسانده است.

کارشناسان استاد آی تی معتقدند که متن باز شدن این پروژه، گامی بزرگ در جهت دموکراتیزه کردن پایداری شبکه است. تا پیش از این، پیاده سازی چنین مکانیزم دقیقی نیازمند دانش عمیق از فراخوان های سیستمی یونیکس (Unix Syscalls) و مدیریت دقیق منابع بود، اما اکنون هر توسعه دهنده ای می تواند با استفاده از ecdysis، سطح پایداری سرویس های خود را به استانداردهای کلاودفلر نزدیک کند. این ابزار به ویژه برای سرویس هایی که با مدیریت چرخه عمر TLS یا قوانین فایروال سروکار دارند، یک ضرورت غیر قابل انکار است.

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

کلاودفلر اعلام کرده است که ecdysis از سال ۲۰۲۱ در بیش از ۳۳۰ مرکز داده در ۱۲۰ کشور جهان در حال استفاده بوده است. این تجربه عملی نشان می دهد که ابزار مذکور فراتر از یک پروژه آزمایشی، یک راهکار کاملا تست شده در شرایط واقعی (Production-Ready) است. از منظر امنیتی نیز، این کتابخانه با استفاده از فلگ CLOEXEC و انتقال صریح توصیفگرهای فایل، از نشت اطلاعات حساس بین نسخه های قدیمی و جدید جلوگیری می کند. همچنین برای بررسی دقیق تر کدهای منبع این پروژه، می توانید به صفحه رسمی آن در گیت هاب کلاودفلر مراجعه نمایید.


منبع:
Shedding old code with ecdysis: graceful restarts for Rust services at Cloudflare

این پست چقدر مفید بود؟

بر روی یک ستاره کلیک کنید تا به آن امتیاز دهید!

میانگین امتیاز ۵ / ۵. میانگین امتیاز: ۱

تاکنون هیچ رأیی ثبت نشده است! اولین نفری باشید که به این پست امتیاز می‌دهد.

دیدگاهتان را بنویسید

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