نظرة عامة
تطبيق Gorbit هو مجموعة من حاويات Docker التي يمكن نشرها على أي بنية تحتية وبأي حجم.
كمشروع مفتوح المصدر،
تم تصميم Gorbit مع وضع الأمان والخصوصية كأساس أساسي حتى تتمكن الفرق من الوثوق بالبرنامج حتى
دون الحاجة إلى ضمانات الشراكة.
هيكل النظام
المكونات الأساسية
طبقة التطبيق
- عميل الويب الأمامي: تطبيق ويب مبني على Next.js يوفر واجهة المستخدم لمنصة
Gorbit
- خادم API: خادم ويب Python FastAPI للتعامل مع منطق الأعمال والطلبات
- عمال الخلفية: عمال Python للتعامل مع المهام غير المتزامنة مثل جلب تحديثات المستندات، إلخ.
طبقة البيانات
- قاعدة البيانات العلائقية: قاعدة بيانات Postgres لتخزين بيانات التطبيق وجلسات المستخدم وحالة
النظام
- قاعدة بيانات المتجهات: محرك البحث النصي Vespa + مخزن المتجهات لاسترجاع السياق للاستعلامات
- ذاكرة التخزين المؤقت: Redis، تستخدم لتحسين الأداء
- مخزن الملفات: مخزن الكائنات MinIO للملفات التي تم تحميلها من قبل المستخدم والمستندات المسحوبة من الموصلات
طبقة البنية التحتية
- موجه الطلبات: وكيل Nginx العكسي لموازنة الحمل وتوجيه الطلبات
استبدال المكونات
بعض مكونات مكدس Gorbit قابلة للاستبدال بسهولة بينما البعض الآخر ليس كذلك.
يمكن استبدال MinIO بـ S3 أو أي خدمة تخزين كائنات مماثلة.
واجهة مخزن الملفات مجردة لجعل هذا الأمر سهلاً.
يمكن استبدال Redis بخدمة Redis مُدارة مثل AWS ElastiCache.
قد تعمل ذاكرات التخزين المؤقت الأخرى في الذاكرة لكنها ستتطلب تغييرات في الكود.
يمكن استبدال Postgres بخدمة Postgres مُدارة مثل AWS RDS.
من الأصعب بكثير وغير المحبذ التبديل إلى قاعدة بيانات علائقية مختلفة بسبب الميزات الخاصة باللغة و
التحسينات.
يمكن استبدال Vespa بنشر Vespa متعدد العقد (عادةً ليس ضرورياً) أو Vespa Cloud.
Vespa مدمج بإحكام مع وظائف استرجاع السياق واستبداله سيتطلب جهد تطوير
كبير للحفاظ على نفس الوظائف.
يمكن إزالة Nginx واستبداله بوكيل التوجيه الخاص بك.