عن المشروع

Zyvor Fabric هي لوحة تحكم ذاتية الاستضافة للسحب الخاصة، مبنية على خوادم Linux عادية باستخدام KVM. تقوم بتجميع واجهة برمجة التطبيقات (API)، والمصادقة، والشبكات، والتخزين، والمراقبة في برنامج خادم واحد مكتوب بلغة Rust وهو zyvor-fabricd. وبدلاً من تنفيذ تشغيل الأجهزة الافتراضية (VM) بنفسها، فإنها تعمل كطبقة تنسيق وتجربة مستخدم فوق مشروعين مرافقين: FluxVM (محرك الأجهزة الافتراضية، الذي يتم الوصول إليه عبر REST على 127.0.0.1:7788) و GuestKit (لفحص الأقراص وتخصيصها دون اتصال بالإنترنت قبل عملية الإقلاع الأولى). الواجهات والأتمتة يدعم نفس البرنامج أربع واجهات أمامية أساسية: أداة السطر البرمجي zyvorctl، ووحدة تحكم ويب يتم تقديمها جنباً إلى جنب مع API (المنفذ الافتراضي 9095)، ومشغل Kubernetes يقوم بمطابقة الموارد المخصصة VirtualMachine مع مثيل fabricd يعمل، ومزود Terraform. كما يتضمن المشروع محتوى Ansible وأداة فحص مسبق تسمى "Fabric Doctor". يمكن تطبيق تعريفات الأجهزة الافتراضية التصريحية باستخدام zyvorctl apply -f، ويدعم إنشاء الأجهزة الافتراضية نطاق المستأجرين الاختياري. ويذكر ملف README أن البرنامج يوفر أكثر من 480 نقطة نهاية REST بالإضافة إلى ثلاث قنوات WebSocket، ويشير إلى وجود حوالي 48 حزمة Rust وما يقرب من 87 ألف سطر من الكود بلغتي Rust و TypeScript. الأمان وتعدد المستأجرين تستخدم المصادقة رموز JWT، مع مطالبات المستأجرين لتحديد نطاق عمليات القائمة والجلب والتعديل. يدرج المشروع أدوار RBAC، وتصدير التدقيق، والتشفير أثناء السكون، ويوثق تكامل الهوية عبر OIDC/SSO و SCIM، بالإضافة إلى طبقة توافق مع OpenStack مع مواد تعليمية للعملاء. الشبكات يميز ملف README بين مستويين من السياسات يجب عدم الخلط بينهما: Fabric SDN (عزل المضيف المعتمد على التسميات عبر nftables، وتتم إدارته عبر /api/network-policies) ومستوى بيانات Network Fabric الخاص بحافة الجهاز الافتراضي، والذي يربط برامج TC/eBPF بواجهة المضيف لكل جهاز افتراضي. يدعم مستوى بيانات الحافة قوائم السماح CIDR لـ IPv4/IPv6 لكل جهاز افتراضي (خرائط LPM)، وفرض بروتوكول/منفذ L4، وحدود معدل Mbps/PPS، وإحصائيات لكل جهاز افتراضي وسجلات تدفق LRU، وكلها قابلة للقراءة والكتابة من خلال /api/vms/{name}/dataplane/{status,policy,stats,flows} وأوامر zyvorctl dataplane الفرعية المطابقة. توصف تحديثات السياسة بأنها عمليات إعادة كتابة لخرائط BPF في مكانها، مع وجود نافذة قصيرة موثقة من "الرفض الزائد" أثناء إعادة التكوين بدلاً من أي فجوة "سماح للكل". تم توثيق ثلاثة أنماط: nftables التقليدي فقط، و eBPF على حافة الجهاز الافتراضي، ونمط التعايش مع Cilium. وتوفر طبقة Service Fabric منفصلة موازنة أحمال Maglev VIP ومرافق ذات صلة. تعيش السياسة الدائمة في /var/lib/fluxvm/network-policy، مع برامج وخرائط مثبتة تحت /sys/fs/bpf/fluxvm. كما يتم توفير تمرير PCI/VFIO العام عبر REST API لوحدات GPU والأجهزة المماثلة. النشر توجد أربعة مسارات موثقة للنشر: المعدن العاري (bare metal) عبر systemd أو الملف الثنائي المباشر مع سكربتات مساعدة (بما في ذلك تدفقات "ship" بأمر واحد)، و Docker/Podman Compose للتقييم المحلي مع /dev/kvm وشبكات المضيف، و Kubernetes باستخدام DaemonSets بامتيازات hostNetwork بالإضافة إلى مخططات Helm وسكربت مختبر k3s عن بعد، ونمط المشغل فقط لتدفقات عمل GitOps مقابل برنامج خادم موجود. تشمل متطلبات Kubernetes وجود /dev/kvm على العقد، ومستوى أمان pod بامتيازات، ومحرك حاويات rootful على مضيف البناء. يتم إنشاء بيانات اعتماد المسؤول وقت النشر ويمكن استرجاعها من القرص أو من Kubernetes Secret الخاص بـ zyvor-fabric-secrets، مع توفر متغيرات بيئية لتعيينها أو إعادة تعيينها. ملاحظات للتقييم يحتوي ملف README على مواد مقارنة تدعي أن نهج المشروع في سياسة حافة الجهاز الافتراضي يتفوق على libvirt/nftables، وجدران الحماية ذات الجسر المشترك، و QEMU user-mode NAT، وإعدادات microVM-plus-CNI النموذجية؛ هذه ادعاءات المطورين أنفسهم، وبعض أرقام الأداء المذكورة (مثل زمن انتقال تحديث السياسة) موصوفة بأنها قياسات مختبرية. تغطي مجموعة التوثيق الأساسية في المستودع: البدء السريع، و Kubernetes، و Docker، والبنية التحتية، والشبكات، وواجهة الويب، ودورة حياة المضيف، والحوكمة، وسياسة الأمان. الترخيص هو Apache-2.0.