LLRT: وقت تشغيل JavaScript منخفض الكمون لوظائف بدون خادم
LLRT (وقت التشغيل منخفض الكمون)، من خدمات أمازون ويب، هو وقت تشغيل تجريبي لجافا سكريبت تم بناؤه لوظائف بدون خادم تحتاج إلى حد أدنى من زمن بدء التشغيل البارد. يعمل على تشغيل جافا سكريبت على محرك QuickJS داخل نواة Rust لتقليل وقت البدء واستخدام الذاكرة مقارنة بأوقات التشغيل التقليدية. تشمل القدرات الرئيسية بدء التشغيل البارد فائق السرعة، وملف ذاكرة منخفض، وتوافق جزئي مع واجهة برمجة تطبيقات Node.js، ومجموعة فرعية مسبقة الترجمة من AWS SDK v3. يحصل مطورو الوظائف بدون خادم ومهندسو السحاب على أكبر قيمة من LLRT.
كيف يقلل LLRT من زمن بدء التشغيل البارد؟
يستهدف LLRT البدء البارد عن طريق حذف ميزات المنصة غير الأساسية واستخدام مسار تنفيذ مضغوط. يستخدم المشروع QuickJS لتنفيذ السكربتات ونواة Rust لتقليل تكلفة التهيئة، وهو مزيج يذكر المؤلفون أنه يمكن أن ينتج أوقات بدء تشغيل تصل إلى 10 أضعاف أسرع من Node.js. هذا التصميم يضحي ببعض اكتمال المنصة لصالح تقليل زمن الاستدعاء الأول، وهو أمر مهم لوظائف السيرفرلس قصيرة العمر.
هل يتوافق LLRT مع متطلبات منصة Lambda الشائعة؟
تستهدف بيئة التشغيل بشكل أساسي Linux x86_64 و ARM64 لتتوافق مع بيئات التنفيذ السيرفرلس. تركز الثنائيات المسبقة البناء الرسمية على Linux و macOS، مما يبسط نشر السحابة لتلك الأهداف. يتطلب الاختبار على Windows تجميعًا من المصدر، مما يضيف خطوة بناء. يجب على المعماريين تضمين عمليات بناء موجهة لـ Linux أو استخدام القطع الأثرية المقدمة لـ macOS/Linux عند إعداد حزم النشر لبيئات متوافقة مع Lambda.
هل من الآمن اعتماد LLRT في سير العمل الإنتاجي؟
تصف AWS LLRT بأنه مشروع تجريبي، لذا يتطلب اعتماده للخدمات الحيوية التحقق. لقد تلقى المشروع إشادة من حيث الأداء، لكنه لا ينفذ مكتبة Node.js القياسية بالكامل وبالتالي ليس بديلاً مباشراً. يجب على الفرق إجراء اختبارات تكامل واختبارات اعتماد تحت حمل واقعي والتأكد من السلوك عبر تكاملات الخدمة قبل توجيه حركة المرور المباشرة إلى وظائف قائمة على LLRT.
هل أحتاج إلى أدوات إضافية أو خبرة للهجرة من الوظائف الحالية؟
تتطلب الهجرة وجود خط أنابيب بناء وفحوصات API لأن LLRT ينفذ JavaScript فقط. يجب تحويل TypeScript باستخدام مجمع مثل esbuild أو swc قبل النشر، وقد تحتاج استدعاءات مكتبة Node القياسية إلى الاستبدال. تشمل خطوات الهجرة الموصى بها:
- تحويل TypeScript وتجميع التبعيات
- استبدال الاستدعاءات الخاصة بـ Node غير المدعومة
- تشغيل اختبارات التكامل واختبارات بدء التشغيل البارد في بيئة تجريبية
توصية عملية للتبني
يتناسب LLRT مع الفرق التي تشعر بالراحة في إضافة خطوة بناء وتشغيل اختبارات شاملة في مرحلة الاختبار. استخدمه أولاً للوظائف غير الحرجة والحساسة للزمن، وتحقق من سلوك النظام من البداية إلى النهاية قبل التوسع في النشر. احتفظ بخطة للتراجع وراقب مقاييس الاستدعاء بعد كل نشر حتى يتم اكتشاف التراجعات مبكرًا. اعتبر وقت التشغيل تجريبيًا بينما تبني الثقة في خط أنابيب التكامل المستمر لديك. موصى به.