۱۴۰۵ مهر ۱۵, چهارشنبه
دلار آمریکا۲۶۲٬۲۰۵▼ ۲٫۵۲٪یورو۲۹۴٬۸۳۰▼ ۲٫۸۴٪درهم امارات۷۱٬۷۷۶▼ ۲٫۲۹٪سکه امامی۲۶۷٬۳۸۵٬۰۰۰▼ ۱٫۶۹٪طلای ۱۸ عیار (گرم)۲۶٬۲۶۷٬۶۰۰▼ ۱٫۷۹٪انس طلا۴٬۱۱۶ $▼ ۱٫۱۴٪تتر۲۶۲٬۶۷۸▼ ۲٫۴۱٪بیت‌کوین۸۳٬۷۰۹ $▼ ۲٫۳٪اتریوم۲٬۵۸۴ $▼ ۴٫۲۶٪سولانا۱۱۷٫۵۵ $▼ ۳٫۰۱٪اپل۳۳۳٫۶۳ $▲ ۰٫۲۲٪انویدیا۲۳۹٫۲۴ $▲ ۰٫۱۴٪مایکروسافت۵۲۹٫۳۰ $▲ ۰٫۷۸٪آلفابت (گوگل)۳۴۷٫۶۸ $▲ ۰٫۳۵٪تسلا۳۸۰٫۶۸ $▲ ۰٫۵۲٪شاخص نزدک۲۷٬۶۰۰ $▲ ۰٫۴۵٪
نرخ ارز

Netlify Edge Functions از V8 Isolate به MicroVM کوچ کرد

اجرای Netlify Edge Functions از V8 Isolate به MicroVMهای Firecracker منتقل شد و تأخیر میانه فراخوانی گرم از ۲۵ تا ۴۰ میلی‌ثانیه به ۵ تا ۶ رسید.

کاور گرافیکی DevNA با عنوان «Edge Functions»، نشان Netlify، عدد بزرگ لاتین 5–6ms و برچسب MICROVM روی پس‌زمینه زغالی
کاور گرافیکی DevNA با عنوان «Edge Functions»، نشان Netlify، عدد بزرگ لاتین 5–6ms و برچسب MICROVM روی پس‌زمینه زغالی
فهرست مطالب
  1. مسیر تازه یک درخواست: از نود لبه تا MicroVM
  2. Netlify Edge Functions چقدر سریع‌تر شد؟
  3. مرز امنیتی کجاست: Isolate یا هایپروایزر؟
  4. اسنپ‌شات، مقیاس به صفر و ایمیج EROFS
  5. رندوو هشینگ: معاوضه کُلد استارت با هات‌اسپات
  6. چه چیزی عوض نشد: محدودیت‌ها، npm و قیمت

اگر سایت شما Netlify Edge Functions دارد، کد شما از همین حالا جای دیگری اجرا می‌شود؛ بدون آن‌که یک خط از آن عوض شده باشد. Netlify روز ۲۹ سپتامبر ۲۰۲۶ اعلام کرد زیرساخت Edge Functions را بازسازی کرده است: درخواست دیگر از شبکه این شرکت بیرون نمی‌رود و هر فانکشن در ماشین مجازی کوچک (MicroVM) مستقل خودش روی Firecracker اجرا می‌شود. تأخیر میانه یک فراخوانی گرم از ۲۵ تا ۴۰ میلی‌ثانیه به ۵ تا ۶ میلی‌ثانیه رسیده است.

مسیر تازه یک درخواست: از نود لبه تا MicroVM

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

حالا درخواست روی نزدیک‌ترین نود لبه (Edge Node) می‌نشیند، TLS همان‌جا خاتمه می‌یابد و مسیر با روت‌های همان دیپلوی سنجیده می‌شود. با تطابق، نود لبه یک machine spec می‌نویسد که سه ایمیج را نام می‌برد — ران‌تایم، ایمیج پلتفرم Netlify و ایمیج خود Edge Function — و سقف CPU، حافظه و اتصال‌ها را تعیین می‌کند. هش این spec کنار اطلاعات مخصوص سایت، یک Service ID می‌سازد که همراه هر درخواست سفر می‌کند؛ بعد درخواست به یک نود محاسباتی داخل شبکه خود Netlify می‌رود.

Netlify Edge Functions چقدر سریع‌تر شد؟

سنجه زیرساخت قبلی زیرساخت جدید
فراخوانی گرم (میانه) ۲۵ تا ۴۰ میلی‌ثانیه ۵ تا ۶ میلی‌ثانیه
فراخوانی‌های p99 مبنا ۴۷٫۴٪ سریع‌تر
فراخوانی سرد — حدود ۹ میلی‌ثانیه، روی ۱٫۲٪ فراخوانی‌ها
راه‌اندازی MicroVM (p99) — حدود ۲ میلی‌ثانیه
تحویل لاگ (میانه، به روایت Unikraft) ۲٫۵ ثانیه ۵۰۰ میلی‌ثانیه
دسترس‌پذیری — ۹۹٫۹۹۸٪

روزانه حدود یک میلیارد Edge Function روی Netlify اجرا می‌شود و هر کدام جلوی یک درخواست می‌نشیند؛ این میلی‌ثانیه‌ها مستقیم روی زمان تا اولین بایت (TTFB) و Core Web Vitals اثر می‌گذارند.

مرز امنیتی کجاست: Isolate یا هایپروایزر؟

جداسازی در معماری تازه از همان Service ID می‌آید: دو دیپلوی با کد یا متغیرهای محیطی متفاوت، دو سرویس جدا هستند و هرگز یک MicroVM را به اشتراک نمی‌گذارند. Netlify صریح می‌نویسد: «یک دیپلویِ احتمالاً آلوده در MicroVM جداگانه‌ای اجرا می‌شود و حتی اگر از ران‌تایم فرار کند، نمی‌تواند مشتریان دیگر یا خودِ لایه محاسباتی را آلوده کند. V8 Isolateها، با هر نامی، چنین سطحی از جداسازی را فراهم نمی‌کنند.»

تفاوت معماری پشت این جمله ساده است: Isolate سندباکسی در سطح زبان و داخل یک پراسس مشترک است، پس فرار از ران‌تایم یعنی رسیدن به چیزی که با بقیه شریک است؛ مرز MicroVM را هایپروایزر نگه می‌دارد.

اسنپ‌شات، مقیاس به صفر و ایمیج EROFS

هر MicroVM در کمتر از یک میلی‌ثانیه ساخته می‌شود، چون به‌جای سیستم‌عامل کامل یک لینوکس خلاصه‌شده بوت می‌شود. فایل‌های فانکشن به‌صورت ایمیج EROFS فشرده‌نشده مانت و در حافظه نگاشته می‌شوند (memory-mapped)؛ یعنی VM فقط بخش‌هایی از باندل را می‌خواند که واقعاً به آن‌ها می‌رسد.

بخش تعیین‌کننده اسنپ‌شات است: همین‌که سرور جاوااسکریپت روی پورت گوش می‌دهد، Netlify اسنپ‌شات می‌گیرد. فانکشن بیکار به صفر مقیاس می‌یابد و فراخوانی بعدی MicroVM تازه‌ای از همان اسنپ‌شات می‌سازد؛ اسنپ‌شات هم نگاشته‌شده است، پس اجرا پیش از خوانده‌شدن کاملش شروع می‌شود. این چرخه — بوت، اسنپ‌شات، بازیابی و مقیاس به صفر — محصول Unikraft است، که می‌گوید EROFS و قابلیت ROM مصرف حافظه هر سرور را نصف کرده‌اند.

رندوو هشینگ: معاوضه کُلد استارت با هات‌اسپات

انتخاب نود با رندوو هشینگ (rendezvous hashing) انجام می‌شود: یک سرویس همیشه روی همان نود می‌نشیند تا MicroVM گرم بماند و کد از قبل روی دیسک و در کش باشد. به گفته Netlify، پخش یکنواخت درخواست‌ها بین همه نودها کُلد استارت (cold start) بیشتری می‌ساخت.

اما همین مسیر سریع، هات‌اسپات (hot spot) هم می‌سازد؛ سرویسی که سهم بزرگی از ترافیک یک منطقه را بگیرد، نود میزبانش را به ضرر بقیه اشباع می‌کند. راه‌حل Netlify شل‌کردن چسبندگی است: بالاتر از یک آستانه، سرویس روی برشی از نودها پخش می‌شود تا اسپایک یک مشتری، سرویس‌های دیگرِ هش‌شده به همان نود را از پا نیندازد. هر MicroVM هم فقط تعداد ثابتی درخواست را جواب می‌دهد و بعد خاموش می‌شود؛ جانشینش کمی زودتر بالا می‌آید.

چه چیزی عوض نشد: محدودیت‌ها، npm و قیمت

Netlify می‌نویسد این تغییر «نحوه نوشتن یا استفاده از Edge Functions را عوض نمی‌کند — ایمپورت از URL، پکیج‌های npm، ماژول‌های داخلی Node، تعریف‌ها در netlify.toml، توسعه محلی — همه‌اش دقیقاً مثل قبل کار می‌کند» و «همین امروز ترافیک پروداکشن شما را سرو می‌کند، با همان قیمت‌گذاری، بدون قدم مهاجرت…».

در مقابل، آنچه این معماری «ممکن» کرده هنوز عرضه نشده است. پشتیبانی از پکیج‌های npm همچنان بتاست، با همان هشدارهای باینری نیتیو و ایمپورت فایل در زمان اجرا. سقف‌های عملیاتی هم تغییر نکرده‌اند: مستندات رسمی در زمان نوشتن این خبر همان ۵۰ میلی‌ثانیه CPU برای هر درخواست، ۵۱۲ مگابایت حافظه و ۲۰ مگابایت کد فشرده را فهرست می‌کند. Netlify این عددها را میراث مدل اجرای Isolate می‌داند و می‌گوید حالا «جا برای بازنگری» دارد: «کارمان تمام نشده.»

$ devna rate --article

—
هنوز رأیی ثبت نشده
  1. ۵۰
  2. ۴۰
  3. ۳۰
  4. ۲۰
  5. ۱۰

این مطلب چقدر به کارتان آمد؟

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

واکنش شما

اولین نفری باشید که واکنش نشان می‌دهد.

پرسش‌های پرتکرار

برای این تغییر باید کدم را عوض کنم یا دیپلوی تازه بگیرم؟

نه. Netlify می‌گوید نحوه نوشتن و استفاده از Edge Functions عوض نشده است: ایمپورت از URL، پکیج‌های npm، ماژول‌های داخلی Node، تعریف‌ها در netlify.toml و توسعه محلی همه مثل قبل کار می‌کنند و هیچ قدم مهاجرتی لازم نیست.

این زیرساخت تازه الان فعال است؟

بله. به گفته Netlify اجرای Edge Functions روی MicroVM همین حالا ترافیک پروداکشن سایت‌ها را سرو می‌کند، با همان قیمت‌گذاری قبلی.

محدودیت‌های Edge Functions در Netlify بالا رفته است؟

نه. مستندات رسمی Netlify هنوز همان سقف‌های قبلی را می‌گوید: ۵۰ میلی‌ثانیه CPU برای هر درخواست، ۵۱۲ مگابایت حافظه و ۲۰ مگابایت کد فشرده. Netlify فقط گفته حالا «جا برای بازنگری» این سقف‌ها باز شده است.

پشتیبانی از پکیج‌های npm از بتا بیرون آمد؟

نه. npm در Edge Functions همچنان بتاست و هشدارهایش درباره باینری‌های نیتیو و ایمپورت فایل در زمان اجرا سر جایش است؛ Netlify می‌گوید یک VM واقعی با فایل‌سیستم واقعی بیشتر دلیل‌های این محدودیت‌ها را برمی‌دارد.

منابع

  1. 5x faster Edge Functions: v8 isolates to Firecracker MicroVMs – Netlify Blog
  2. How Netlify Runs all of Edge Functions on Unikraft microVMs – Unikraft
  3. Edge Functions limits – Netlify Docs

خطایی در این مطلب دیدید؟ به تحریریه گزارش دهید؛ اصلاحیه‌ها طبق اصول تحریریه ثبت می‌شوند.

دیدگاه‌ها

۰/۲٬۰۰۰

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

$ comments --count۰

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

مطالب مرتبط