أطلقت AWS أجهزة Lambda MicroVMs، وهي حوسبة بدائية جديدة بدون خادم تعمل على تشغيل كل جلسة مستخدم أو وكيل ذكاء اصطناعي في آلة Firecracker الافتراضية الخاصة بها مع عزل على مستوى الأجهزة، وإطلاق سريع قائم على اللقطة، والحفاظ على الحالة لمدة تصل إلى ثماني ساعات. تتوفر أجهزة MicroVM اليوم في خمس مناطق على ARM64 مع ما يصل إلى 16 وحدة معالجة مركزية افتراضية وذاكرة 32 جيجابايت و32 جيجابايت من القرص لكل مثيل.

تعد Lambda MicroVMs موردًا منفصلاً عن Lambda Functions، مع سطح واجهة برمجة التطبيقات (API) الخاص بها. إنه يستهدف نمط عبء العمل الذي لم يتم تصميم الوظائف من أجله على الإطلاق: تطبيقات طويلة الأمد وذات حالة ومتعددة المستأجرين تنفذ تعليمات برمجية لم يكتبها المطور.

تضع مدونة أخبار AWS المشكلة بوضوح:

على مدى السنوات القليلة الماضية، ظهرت فئة جديدة من التطبيقات متعددة المستأجرين والتي تشترك جميعها في الحاجة إلى منح كل مستخدم نهائي بيئة تنفيذ مخصصة خاصة به لتشغيل التعليمات البرمجية التي لم يكتبها مطور التطبيق بأمان.

حتى الآن، واجهت الفرق التي تعمل على بناء هذه التطبيقات مقايضة ثلاثية. توفر الأجهزة الافتراضية عزلًا قويًا ولكنها تستغرق دقائق قليلة للبدء. علاوة على ذلك، يتم إطلاق الحاويات بسرعة؛ ومع ذلك، فإنها تشترك في النواة، الأمر الذي يتطلب تحسينًا مخصصًا كبيرًا للتعليمات البرمجية غير الموثوق بها. علاوة على ذلك، تم تحسين الوظائف للاستجابة للطلبات المستندة إلى الأحداث، وليس للجلسات التفاعلية طويلة الأمد التي تحتاج إلى الاحتفاظ بالحالة. تعمل أجهزة Lambda MicroVMs على التخلص من المفاضلة من خلال الجمع بين الثلاثة: العزل على مستوى الجهاز الافتراضي، والتشغيل شبه الفوري، والتنفيذ ذو الحالة في نظام بدائي واحد مُدار.

يعمل نموذج التنفيذ بشكل مختلف عن وظائف Lambda. تبدأ بإنشاء صورة MicroVM: قم بتحميل ملف Dockerfile والعنصر البرمجي إلى S3، ويقوم Lambda بتشغيل Dockerfile، وتهيئة التطبيق، والتقاط لقطات للذاكرة قيد التشغيل وحالة القرص عبر Firecracker. يتم استئناف كل MicroVM لاحق يتم إطلاقه من تلك الصورة من اللقطة التي تمت تهيئتها مسبقًا بدلاً من التشغيل البارد. اتصل بـ run-microvm، وقم بتمرير صورة ARN وسياسة الخمول، وستقوم الخدمة بإرجاع نقطة نهاية HTTPS مخصصة مع تشغيل التطبيق بالفعل. لا توجد موازنات تحميل، ولا إعداد للشبكات، ولا بنية تحتية لإدارتها.

إن دورة حياة التعليق/الاستئناف هي ما يجعل هذا الأمر عمليًا لحالات الاستخدام التفاعلية. عندما يغادر المستخدم جلسة البرمجة، يتوقف MicroVM مؤقتًا بعد نافذة خاملة قابلة للتكوين، ويلتقط الذاكرة والقرص. عندما تعود حركة المرور، تستأنف العمل بكل شيء سليمًا: الحزم المثبتة، والنماذج المحملة، ومجموعات الملفات العاملة. قام DevelopersIO باختبار دورة الحياة الكاملة باستخدام تطبيق Flask في منطقة طوكيو وأكدوا أن تعليق واستئناف حالة التطبيق المحفوظة بسلاسة. من جانب العميل، لم يحدث التوقف أبدًا.

ضمان العزل هو Firecracker، وهو نفس جهاز VMM خفيف الوزن الذي يعمل على تشغيل ما يزيد عن 15 تريليون استدعاء لوظيفة Lambda شهريًا. يعمل كل MicroVM في جهاز افتراضي خاص به بدون نواة مشتركة ولا موارد مشتركة بين الجلسات. لا يمكن للهروب من الحاوية في جلسة واحدة أن يصل إلى جلسة أخرى أو إلى المضيف. بالنسبة للفرق التي تقوم بتشغيل التعليمات البرمجية التي تم إنشاؤها بواسطة الذكاء الاصطناعي على نطاق واسع، حيث تأتي ملايين عمليات التنفيذ يوميًا من نماذج لا يمكن تدقيقها، يعد هذا حدًا أقوى ماديًا من العزل على مستوى الحاوية.

اكتملت الآن مقارنة المقياس الفائق للفرق التي تقوم بتقييم مكان تشغيل التعليمات البرمجية التي أنشأها الوكيل. تستخدم صناديق Cloudflare Sandboxes العزلة القائمة على الحاوية والموزعة عبر شبكتها الطرفية، مع عزلات V8 لأحمال العمل الأخف. يستخدم GKE Agent Sandbox من Google اعتراض gVisor kernel باعتباره بدائيًا أصليًا في Kubernetes. تستخدم الجلسات الديناميكية لـ Azure Container Apps أجهزة Hyper-V microVM مع عزل على مستوى الأجهزة. تستخدم AWS Lambda MicroVMs Firecracker مع الإطلاق القائم على اللقطة. يقدم كل منهم مقايضة مختلفة: تعمل Cloudflare على تحسين زمن الوصول والتوزيع العالمي، وGoogle لقابلية النقل الأصلية لـ Kubernetes، وAzure للتكامل مع منصات Logic Apps ووكلاء Foundry، وAWS للعزل الكامل مع التحكم في تعليق/استئناف دورة الحياة.

على موقع Reddit، قام الممارسون بالموازنة بين حماسة الإطلاق والواقعية. تحدى أحد المعلقين الإطار القائل بأن MicroVMs يفتح شيئًا جديدًا بشكل أساسي:

لا تعمل أجهزة Lambda MicroVMs على تمكين أعباء العمل الجديدة تمامًا والتي كانت مستحيلة من قبل. ما يغيرونه هو مقايضة التكلفة/الأداء/الأمان. أكبر حالات الاستخدام هي تنفيذ التعليمات البرمجية غير الموثوق بها، وSaaS متعدد المستأجرين، ووكلاء الذكاء الاصطناعي، وأحمال العمل المعزولة للغاية بدون خادم حيث لا تعتبر الحاويات آمنة بما فيه الكفاية ولكن الأجهزة الافتراضية الكاملة كانت ثقيلة للغاية. يتم إلغاء القفل بعزل على مستوى الجهاز الافتراضي (VM) على نطاق شبه بدون خادم.

تدعم الشبكات بروتوكول HTTPS الوارد على منافذ قابلة للتكوين باستخدام بروتوكولات HTTP/2 وgRPC وWebSocket. يمكن تكوين الوصول الخارجي لاتصال الإنترنت العام أو اتصال VPC. تستخدم المصادقة رموز JWE المقدمة من الخدمة والمرفقة بالطلبات عبر رأس X-aws-proxy-auth.

تكمل أجهزة Lambda MicroVM وظائف Lambda بدلاً من استبدالها. يمكن للتطبيق الذي يستخدم الوظائف لعموده الفقري القائم على الأحداث الاتصال بأجهزة MicroVMs للحصول على الخطوات التي تحتاج إلى تشغيل تعليمات برمجية غير موثوقة بشكل منفصل. يشترك الاثنان في وحدة تحكم Lambda ويرثان نفس النموذج التشغيلي (سجلات CloudWatch، وأدوار IAM، وتكامل VPC) ولكنهما يخدمان أنماط عبء عمل مختلفة بشكل أساسي.

تتوفر أجهزة Lambda MicroVM حاليًا في شرق الولايات المتحدة (شمال فرجينيا وأوهايو)، وغرب الولايات المتحدة (أوريغون)، وأوروبا (أيرلندا)، وآسيا والمحيط الهادئ (طوكيو). يتبع التسعير نموذج الأساس الزائد: يدفع المستخدمون مقابل الحوسبة الأساسية أثناء تشغيل MicroVM، وفقط مقابل الموارد الإضافية المستهلكة عندما يتجاوز عبء العمل خط الأساس. تعمل أجهزة MicroVM المعلقة على تقليل التكلفة الخاملة مع الحفاظ على الحالة. قام معلق آخر على Reddit بتشغيل الأرقام ووضع علامة على علاوة التكلفة:

الحد الأدنى من الإعداد لوحدة معالجة مركزية واحدة + 2 جيجابايت من ذاكرة الوصول العشوائي سيكلفك 3.03 دولارًا في اليوم. هذا هو 9x+ التسعير الفوري لـ Fargate.

يشتري الإصدار المميز عزلًا على مستوى الجهاز الافتراضي وتعليقًا/استئنافًا محددًا، ولكن يجب على الفرق أن تصمم نسب الخمول إلى النشاط بعناية قبل الالتزام.



شاركها.
اترك تعليقاً