خبر فوریامروز

اجرای بادوام وب‌اسمبلی ۳ و میکروسرویس‌های ایزوله

مرگ خطاهای کرش در سیستم‌های ابری؛ وب‌اسمبلی ۳ با ادغام محاسبات بادوام، میکروسرویس‌هایی نامیرا و بی‌نیاز از کانتینرهای حجیم داکر پدید آورده است.

اجرای بادوام وب‌اسمبلی ۳
اجرای بادوام وب‌اسمبلی ۳ و میکروسرویس‌های ایزوله — عکس: آرشیو ماگ بیت
خلاصه در یک نگاه
  • واکاوی جامع و فنی الگوی نوین محاسبات بادوام (Durable Execution) بر بستر وب‌اسمبلی نسل ۳ (Wasm 3.0) و مدل کامپوننت توزیع‌شده امروزه. تحلیل حذف کامل ناهمگونی کانتینرهای سنگین داکر با سوییچ کانتینری زیرمیلی‌ثانیه‌ای و مصرف حافظه کمتر از یک مگابایت. بررسی مکانیزم رونویسی رویدادها (Event Sourcing) در سطح باینری، تاب‌آوری قطعی توابع سرورلس در مواجهه با قطعی کلاستر و صفر شدن هزینه‌های ارکستراسیون میکروسرویس‌های مالی و ابری در سطح جهانی.
  • بررسی جامع ابعاد فنی و کاربردی توسط تحریریه ماگ بیت.
  • پیش‌بینی اثرات کوتاه‌مدت و بلندمدت بر اکوسیستم فناوری.

تراژدی شکنندگی میکروسرویس‌های مدرن و بار فلج‌کننده کانتینرهای سنتی

توسعه سیستم‌های ابری در طول دو دهه به سمت میکروسرویس‌های توزیع‌شده حرکت کرد؛ اما این تحول با پیچیدگی‌های مهندسی بی‌پایانی همراه بود. پروتکل‌های سنتی مانند تراکنش‌های توزیع‌شده دو مرحله‌ای (2PC) و الگوهای ساگا (Saga Pattern) به حجم انبوهی از کدهای رابط و سرویس‌های واسط وابسته بودند تا خطاهای شبکه، تایم‌اوت‌ها و بازراه‌اندازی نودها را مدیریت کنند. با کوچک‌ترین اختلال در یک سرور، تراکنش‌های مالی در وضعیت بلاتکلیف معلق می‌ماندند و بازگردانی وضعیت به هماهنگی‌های دستی طاقت‌فرسا نیاز داشت.

علاوه بر این، اتکا به کانتینرهای سنتی لینوکس نظیر داکر اگرچه ایزولاسیون پردازشی را تضمین می‌کرد، اما با سربار حافظه صدها مگابایتی برای هر کانتینر و زمان شروع سرد (Cold Start) چند صد میلی‌ثانیه‌ای همراه بود. برای کارهای سرورلس (Serverless) که در آن‌ها هزاران تابع در هر ثانیه فراخوانی می‌شوند، راه‌اندازی کرنل‌های مجازی اتلاف عظیمی از پردازنده و حافظه را به زیرساخت‌های ابری تحمیل می‌کرد.

این معضل و نیاز به تاب‌آوری بدون خطا پیوندی عمیق با آرمان‌های عامل‌های کدنویسی عصبی-نمادین و اثبات صوری Lean 4 دارد؛ جایی که تضمین عدم شکست، شالوده نرم‌افزار را پی‌ریزی می‌کند.

اصول محاسبات بادوام (Durable Execution)؛ نامیرایی جریان‌های پردازشی

امروزه الگوی «محاسبات بادوام» (Durable Execution) به عنوان استانداردی غالب در معماری‌های نرم‌افزاری تثبیت شده است. در این الگو، کد برنامه مانند کدهای عادی به صورت متوالی و بدون نیاز به مدیریت دستی کش یا صفی از پایگاه‌های داده نوشته می‌شود؛ اما در زیر پوست برنامه، موتور ران‌تایم تمام گام‌های اجرایی، انتساب متغیرها و خروجی فراخوانی‌های وب را به صورت خودکار در یک لاگ تغییرناپذیر قطعی ذخیره می‌کند.

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

این سطح از پایداری ساختاری هماهنگی کاملی با زبان‌های سیستمی مدرن نظیر مباحث مطروحه در زبان‌های سیستمی ایمن‌حافظه Rust و Zig و Mojo نشان می‌دهد که ریشه خطاهای حافظه را می‌سوزانند.

نمودار اجرای بدون وقفه توابع بادوام با رهگیری وضعیت در لاگ‌های رویداد توزیع‌شده بر بستر Wasm 3.0
معماری محاسبات بادوام (Durable Execution) در وب‌اسمبلی ۳: هر گام محاسباتی میکروسرویس به عنوان یک رویداد قطعی در لاگ تغییرناپذیر ثبت می‌شود. در صورت سقوط سرور یا بازراه‌اندازی گره، ایزولاسیون Wasm وضعیت دقیق ثبات‌ها و پشته را در کمتر از ۱۰۰ میکروثانیه از نقطه توقف بازسازی می‌کند.

ران‌تایم WebAssembly 3.0 و مدل کامپوننت؛ راه‌اندازی زیرمیلی‌ثانیه‌ای با ایزولاسیون سخت‌گیرانه

ترکیب اجرای بادوام با وب‌اسمبلی نسل سوم (Wasm 3.0) و استاندارد نهایی Component Model امروزه این پارادایم را دست‌نیافتنی کرده است. باینری‌های کامپوننت وب‌اسمبلی دیگر نیازی به سیستم‌عامل کامل ندارند؛ آن‌ها در محیط‌های شنی کاملاً امن و مستقل با مصرف حافظه زیر ۸۰ کیلوبایت اجرا می‌شوند و زمان آماده‌به‌کار شدن آن‌ها کمتر از ۵۰ میکروثانیه است.

این بدان معناست که یک سرور ابری منفرد می‌تواند به جای چند صد کانتینر، هم‌زمان بیش از ۵۰ هزار میکروسرویس کامپوننت مستقل Wasm را مدیریت کند. مدل کامپوننت به کدهایی که به زبان‌های مختلف مانند Rust، Go، TypeScript و C++ نوشته شده‌اند اجازه می‌دهد بدون هیچ ابزار میانی، توابع و ساختارهای داده تایپ‌شده یکدیگر را در حافظه مشترک فراخوانی کنند و مرزهای زبانی را محو نمایند.

همچنین از دیدگاه محرمانگی داده‌ها، امنیت حافظه ایزوله Wasm تطابق ارزنده‌ای با محاسبات محرمانه با رمزنگاری همریختی FHE و تراشه‌های پسا-کوانتوم به نمایش می‌گذارد.

جهش در بهره‌وری ابری و افق نرم‌افزارهای خودترمیم امروزه

دستاورد ملموس ترکیب Wasm 3.0 و Durable Execution امروزه کاهش ۷۵ درصدی هزینه‌های قبض ابری برای استارتاپ‌ها و پلتفرم‌های کلان داده است. حذف لایه‌های کانتینری و صف‌های پیچیده پیام، تاخیر فرآیندهای مالی را به صفر میل داده و پایداری سرویس‌ها را حتی در بدترین سناریوهای فاجعه مراکز داده (Disaster Recovery) به ۹۹.۹۹۹ درصد رسانده است.

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

دوران کنونی پایان سال‌ها کلنجار رفتن با خطاهای نامنتظره توزیع‌شده است. با همگرایی وب‌اسمبلی ۳ و اجرای بادوام، مهندسی نرم‌افزار سرانجام به رویای ساخت سیستم‌هایی دست یافته که نه تنها هرگز خراب نمی‌شوند، بلکه مانند ارگانیسم‌های زنده پس از هر ضربه فوراً به حالت تعادل بازمی‌گردند.

این مطلب را با دوستانتان به اشتراک بگذارید
ر
نوشته‌ی
ریحانه روستا

روزنامه‌نگار حوزه‌ی فناوری؛ علاقه‌مند به روایت آدم‌ها و تغییراتی که فناوری در زندگی روزمره ایجاد می‌کند.

همه‌ی مطالب
مطالب پیشنهادی ماگ بیت

بیشتر از فناوری

مشاهده همه