
أجهزة microVMs آمنة وسريعة للحوسبة بدون خادم.
تتمثل مهمتنا في تمكين تشغيل أحمال عمل الحاويات والدوال بأمان، مع تعدد المستأجرين، وبأقل قدر ممكن من الحمل الإضافي.
اقرأ المزيد عن ميثاق Firecracker هنا.
Firecracker هي تقنية افتراضية مفتوحة المصدر صُممت خصيصًا لإنشاء وإدارة خدمات آمنة ومتعددة المستأجرين قائمة على الحاويات والدوال، والتي توفر نماذج تشغيل بدون خوادم (serverless). تشغّل Firecracker أحمال العمل داخل آلات افتراضية خفيفة الوزن تُسمى microVMs، والتي تجمع بين خصائص الأمان والعزل التي توفرها تقنية المحاكاة الافتراضية عبر العتاد وبين سرعة ومرونة الحاويات.
المكوّن الرئيسي لـ Firecracker هو مشرف آلة افتراضية (VMM) يستخدم Linux Kernel Virtual Machine (KVM) لإنشاء وتشغيل microVMs. يتميز Firecracker بتصميم بسيط؛ فهو يستبعد الأجهزة غير الضرورية والوظائف الموجهة للضيف لتقليل استهلاك الذاكرة وسطح الهجوم لكل microVM. وهذا يحسّن الأمان، ويقلل زمن بدء التشغيل، ويزيد من استخدام العتاد. كما تم دمج Firecracker في بيئات تشغيل الحاويات، على سبيل المثال Kata Containers وFlintlock.
طُوّر Firecracker في Amazon Web Services لتسريع وتحسين كفاءة خدمات مثل AWS Lambda وAWS Fargate. Firecracker متاح كمصدر مفتوح بموجب Apache version 2.0.
لمعرفة المزيد عن Firecracker، تفضل بزيارة firecracker-microvm.io.
للبدء مع Firecracker، حمّل أحدث إصدار من الملفات الثنائية أو ابنِه من المصدر.
يمكنك بناء Firecracker على أي نظام Unix/Linux يعمل عليه Docker (نستخدم حاوية تطوير) ومثبّت لديه bash، كما يلي:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
سيوضع الملف الثنائي لـ Firecracker في build/cargo_target/${toolchain}/debug/firecracker. لمزيد من المعلومات حول بناء Firecracker واختباره وتشغيله، راجع دليل البدء السريع.
يعتمد الأمان العام لـ microVMs الخاصة بـ Firecracker، بما في ذلك القدرة على تلبية معايير الحوسبة الآمنة متعددة المستأجرين، على نظام تشغيل مضيف Linux مهيأ بشكل جيد. وتتضمن وثيقة إعداد المضيف للإنتاج تهيئة نعتقد أنها تفي بهذا المستوى.
يعمل Firecracker بالفعل على أعباء عمل إنتاجية داخل AWS، لكنه ما يزال في اليوم الأول من الرحلة التي يوجهها ميثاقنا. هناك المزيد مما يمكن بناؤه، ونرحب بجميع المساهمات.
للمساهمة في Firecracker، اطلع على قسم إعداد بيئة التطوير في دليل البدء، ثم على إرشادات المساهمة الخاصة بـ Firecracker.
تُصدر إصدارات Firecracker الجديدة عبر صفحة الإصدارات في مستودع GitHub، عادةً كل شهرين أو ثلاثة أشهر. ويُسجل تاريخ التغييرات في سجل التغييرات.
سياسة إصدار Firecracker مفصلة هنا.
يوصف الهيكل العام لـ Firecracker في وثيقة التصميم.
يتكون Firecracker من عملية واحدة لمشرف الآلة الافتراضية الدقيقة (microVM) تعرض نقطة نهاية API للمضيف بمجرد بدء تشغيلها. والـ API محدد بصيغة OpenAPI. اقرأ المزيد عنه في وثائق API.
يمكن استخدام نقطة نهاية API من أجل:
[BETA] تكوين شجرة بيانات خدمة البيانات الوصفية الموجهة للضيف. هذه الخدمة متاحة للضيف فقط إذا تم تكوين هذا المورد.[Developer Preview] الإضافة والإزالة الساخنة لأجهزة virtio PCI أثناء تشغيل الـ VM.[x86_64 only] إيقاف تشغيل الـ microVM.القدرات المدمجة:
نختبر جميع التوافيق التالية:
*: نحن ندعم فقط مثيلات AWS EC2 من الجيل الثامن من Intel (*8i) باستخدام نواة مضيف 6.1 أو 6.18. ويعود ذلك إلى ضعف دعم نواة 5.10 لوحدات معالجة Granite Rapids.
pl031 RTC على aarch64 لا يدعم المقاطعات، لذلك لن تعمل برامج الضيف التي تستخدم منبه RTC (مثل hwclock).تُدرج خصائص أداء Firecracker كجزء من وثائق المواصفات. جميع المواصفات هي جزء من التزامنا بدعم أحمال عمل الحاويات والدوال في نماذج التشغيل بدون خوادم، ولذلك يتم فرضها عبر اختبارات التكامل المستمر.
أمان Firecracker هو أولويتنا القصوى. إذا اشتبهت في اكتشاف ثغرة أمنية، فتواصل معنا بشكل خاص، وفق ما هو موضح في وثيقة السياسة الأمنية؛ وسنعطي إفصاحك أولوية فورية.
تُجمع الأسئلة الشائعة في وثيقة الأسئلة الشائعة.
يمكنك التواصل مع مجتمع Firecracker بالطرق التالية:
عند التواصل داخل مجتمع Firecracker، يرجى مراعاة مدونة قواعد السلوك.
| المثيل | نظام التشغيل المضيف والنواة | نظام ملفات جذر الضيف | نواة الضيف |
|---|
| m5n.metal (Intel Cascade Lake) | al2 linux_5.10 | ubuntu 24.04 | linux_5.10 |
| m6i.metal (Intel Ice Lake) | al2023 linux_6.1 | linux_6.1 | |
| al2023 linux_6.18 | |||
| m7i.metal-24xl (Intel Sapphire Rapids) | |||
| m7i.metal-48xl (Intel Sapphire Rapids) | |||
| m8i.metal-48xl (Intel Granite Rapids)* | |||
| m8i.metal-96xl (Intel Granite Rapids)* | |||
| m6a.metal (AMD Milan) | |||
| m7a.metal-48xl (AMD Genoa) | |||
| m6g.metal (Graviton 2) | |||
| m7g.metal (Graviton 3) | |||
| m8g.metal-24xl (Graviton 4) | |||
| m8g.metal-48xl (Graviton 4) |