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

انقلاب WebAssembly و WASI در معماری ابری و سرورلس

گذر از کانتینرهای حجیم داکر به باینری‌های امن چندمیکروثانیه‌ای؛ وب‌اسمبلی چگونه با استاندارد WASI 0.2 زیرساخت محاسبات ابری و میکروسرویس‌های مدرن را متحول کرد.

انقلاب WebAssembly و WASI
انقلاب WebAssembly و WASI در معماری ابری و سرورلس — عکس: آرشیو ماگ بیت
خلاصه در یک نگاه
  • تحلیل تخصصی و عمیق نسل نوین محاسبات بدون سرور و کانتینری مبتنی بر وب‌اسمبلی (WebAssembly) امروزه بررسی تثبیت استاندارد WASI 0.2 و مدل کامپوننت Wasm (Component Model)، مقایسه عملکردی با کانتینرهای لینوکسی سبک (Docker و containerd)، کالبدشکافی امنیت حافظه بر پایه Sandboxing ایزوله‌شده با صفر اشتراک‌گذاری، زمان راه‌اندازی شگفت‌انگیز کمتر از ۵۰ میکروثانیه و مهاجرت معماری میکروسرویس‌ها در کلودفلر، فستلی و پلتفرم‌های Spin و Fermyon.
  • بررسی جامع ابعاد فنی و کاربردی توسط تحریریه ماگ بیت.
  • پیش‌بینی اثرات کوتاه‌مدت و بلندمدت بر اکوسیستم فناوری.

چرایی مرگ تدریجی ایمیج‌های حجیم لینوکسی؛ معماری داکر در برابر ریزکانتینرهای ایزوله Wasm

برای بیش از یک دهه، مهندسی نرم‌افزار مدرن حول محور کانتینرهای لینوکسی (Docker و Kubernetes) شکل گرفته بود. هرچند کانتینرسازی توانست مشکلات ناسازگاری محیط اجرا را برطرف سازد، اما با یک نقص ساختاری ذاتی همراه بود: سربار سنگین سیستم‌عامل. حتی ساده‌ترین میکروسرویس‌های تک‌خطی نیازمند بسته‌بندی ایمیج‌های ۵۰ تا ۵۰۰ مگابایتی شامل کتابخانه‌های سیستم‌عامل، گره‌های فایل‌سیستم و ابزارهای هسته لینوکس بودند. زمان راه‌اندازی سرد (Cold Start) این کانتینرها که از چند صد میلی‌ثانیه تا چند ثانیه به طول می‌انجامید، چالشی بزرگ برای معماری‌های مدرن بدون سرور (Serverless) به شمار می‌رفت.

امروزه استانداردهای جدید وب‌اسمبلی در سمت سرور (Wasm on Server) معادله بازی را به نفع باینری‌های فوق‌سبک دگرگون کرده‌اند. ماژول‌های Wasm تنها چند ده کیلوبایت حجم دارند، به هیچ هسته سیستم‌عامل مشترکی محتاج نیستند و بر روی ران‌تایم‌های نوینی نظیر Wasmtime و Wasmer اجرا می‌شوند. بررسی‌های ثبت‌شده در بنچمارک‌های صنعتی نشان می‌دهد زمان بوت شدن این ماژول‌ها به زیر ۵۰ میکروثانیه (۰.۰۵ میلی‌ثانیه) رسیده است؛ سرعتی باورنکردنی که مفهوم شروع سرد را از فرهنگ لغات توسعه‌دهندگان حذف کرده است.

این جهش معماری همگام با انقلاب زبان‌های برنامه‌نویسی سیستمی نظیر Rust و Zig، به مهندسان بک‌اند اجازه داده تا به بالاترین چگالی پردازشی در تاریخ محاسبات ابری دست یابند و روی یک ماشین تک‌سرور، ده‌ها هزار ایجنت مستقل را به طور همزمان میزبانی کنند.

کالبدشکافی استاندارد WASI 0.2 و Component Model؛ پیوند کتابخانه‌های چندزبانه بدون سربار

نقطه عطف تاریخی که وب‌اسمبلی را در اواخر به بلوغ کامل سازمانی رساند، نهایی‌شدن استاندارد WASI 0.2 (رابط سیستم وب‌اسمبلی) و معرفی رسمی Wasm Component Model است. در گذشته، Wasm در بیرون از مرورگر دسترسی به سوکت‌های شبکه، زمان‌سنج‌ها و فایل‌های سیستم نداشت و اشتراک‌گذاری تایپ‌های پیچیده (نظیر String و Struct) میان زبان‌های مختلف نیازمند کدهای چسبنده (Glue Code) ناکارآمد بود.

با استاندارد WASI Preview 2، رابط‌های انتزاعی از طریق زبان تعریف اینترفیس WIT (Wasm Interface Type) فرموله می‌شوند. اکنون توسعه‌دهندگان می‌توانند یک ماژول امنیتی نوشته‌شده با Rust را درون یک کامپوننت تجاری نوشته‌شده با Go یا Python ایمپورت کنند، بدون آنکه نیازی به فراخوانی‌های سنگین C-FFI یا سریال‌سازی هزینه‌بر JSON باشد. کامپوننت‌ها از طریق استانداردهای کانونی مشترک در سطح باینری بدون ذره‌ای افت فریم با یکدیگر تبادل داده می‌کنند.

این چندزبانی فوق‌العاده، توسعه پایگاه‌های داده و بک‌اند را دگرگون ساخته و در کنار انقلاب دیتابیس‌های چندمدلی سرورلس Neon و Turso، پایه‌ای‌ترین سنگ‌بنای مهاجرت به معماری‌های توزیع‌شده لبه (Edge Computing) در کلودفلر و فستلی را پی‌ریزی نموده است.

انقلاب وب‌اسمبلی در محاسبات ابری و کانتینرهای بدون سرور (WASI 0.2) امروزه کالبدشکافی Component Model، جایگزینی میکروکانتینرها با لایه‌های داکر و زمان استارت زیر ۵۰ میکروثانیه
انقلاب وب‌اسمبلی در محاسبات ابری و کانتینرهای بدون سرور (WASI 0.2) امروزه کالبدشکافی Component Model، جایگزینی میکروکانتینرها با لایه‌های داکر و زمان استارت زیر ۵۰ میکروثانیه

امنیت مبتنی بر توانمندی (Capability-based Security)؛ سد نفوذ نهایی در برابر حملات تزریق کد

یکی از کابوس‌های همیشگی مدیران امنیت سایبری در کانتینرهای داکر، خطر فرار از کانتینر (Container Breakout) و دسترسی به روت سیستم میزبان بوده است. وب‌اسمبلی این معضل را از ریشه و در لایه معماری برطرف کرده است. در Wasm، اجرای کد درون یک محیط سندباکس ایزوله کامل بر پایه حافظه خطی (Linear Memory Isolation) صورت می‌پذیرد؛ به این معنا که ماژول به هیچ عنوان توانایی آدرس‌دهی مستقیم به سایر فضاهای رم فیزیکی سرور را نخواهد داشت.

علاوه بر این، استاندارد WASI بر مدل امنیت مبتنی بر توانمندی (Capability-based Security) متکی است. به طور پیش‌فرض، یک ماژول کامپوننت حتی قادر به خواندن ساعت سیستم یا باز کردن یک سوکت ساده شبکه نیست؛ مگر آنکه مدیر سامانه صراحتاً اجازه دسترسی به یک پورت خاص یا یک دایرکتوری محدود را به آن ماژول اعطا نماید. اگر مهاجمی با یک آسیب‌پذیری تزریق کد به درون کامپوننت نفوذ کند، مانند پرنده‌ای در قفس شیشه‌ای گرفتار خواهد شد و توانایی نفوذ عرضی به سایر سیستم‌ها را نخواهد داشت.

این سطح بی‌نظیر از مقاومت سایبری، بستری فوق‌العاده امن برای اجرای کدهای ارائه‌شده توسط کاربران متفرقه و افزونه‌های شخص ثالث در پلتفرم‌های ابری فراهم ساخته است؛ قابلیتی که پیش‌تر نیازمند ماشین‌های مجازی سنگین نظیر Firecracker MicroVMs بود.

بنچمارک‌های صنعتی زمان پاسخ و هزینه؛ تجربیات مهاجرت ابری در پلتفرم‌های لبه سازمانی

گزارش‌های عملیاتی شرکت‌های غول فناوری امروزه نشان می‌دهد مهاجرت از کانتینرهای داکر به پلتفرم‌های Wasm نظیر Spin و Fermyon، هزینه‌های سرور ابری را به طور میانگین بین ۶۰ تا ۷۵ درصد کاهش داده است. در حالی که یک کلاستر کوبرنتیز برای حفظ آمادگی در برابر نوسانات ترافیکی ناچار بود صدها پاد آماده‌باش (Over-provisioned Pods) را با مصرف ممتد رم و سی‌پی‌یو روشن نگه دارد، ماژول‌های Wasm می‌توانند تا صفر نمونه (Scale to Zero) سقوط کنند و به محض ورود اولین بسته HTTP، در کمتر از ۵۰ میکروثانیه متولد شوند.

همچنین، همگرایی وب‌اسمبلی در سرور با فناوری‌های مدرن کلاینت نظیر انقلاب نرم‌افزارهای دسکتاپ بر پایه WebGPU و Wasm، رویای توسعه‌دهندگان برای کدهای Universal را پس از دهه‌ها محقق ساخته است. اکنون یک لاجیک محاسباتی واحد می‌تواند به طور همزمان روی مرورگر کاربر، روی گوشی هوشمند، و در هزاران نود توزیع‌شده لبه بدون کوچک‌ترین تغییری در سورس‌کد کامپایل و اجرا گردد.

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

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

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

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

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

مشاهده همه