تشير Backend-as-a-Service (BaaS) إلى الأنظمة الأساسية التي توفر خدمات خلفية ، مثل تخزين البيانات والتحليلات والإشعارات والاشتراكات في الوقت الفعلي والمصادقة إلى تطبيقات البرامج. يعمل موفرو BaaS على تقليل الوقت اللازم لتطوير تطبيق ما ، حيث يلغي الحاجة إلى إنشاء الواجهة الخلفية من البداية.
بعض موفري BaaS المشهورين الذين يدعمون تطبيقات React هم AWS Amplify و Firebase و SupaBase.
AWS Amplify
يمكن أن تكون خدمات AWS صعبة الاستخدام بدون تجربة السحابة. تم إطلاق AWS Amplify في عام 2017 ، وهي مكتبة مفتوحة المصدر تعمل على تبسيط كيفية تفاعلك مع خدمات AWS ودمجها في تطبيقك.
يوفر خدمات مثل التخزين والمصادقة و GraphQL و REST APIs وإشعارات الدفع ، من بين أمور أخرى. يوفر أيضًا طريقة بسيطة لإضافة موارد AWS مثل Cognito و DynamoDB و ElasticSearch إلى تطبيق دون استخدام وحدة تحكم AWS. يمكنك استخدام CLI أو Admin UI للوصول إلى Amplify.
الميزات الرئيسية لبرنامج AWS Amplify
- تعمل AWS Amplify مع الكثير من الأطر واللغات. لتطبيقات الويب ، فهي تدعم مكتبات وأطر JavaScript الشعبية مثل React و Angular و Vue. كما أنه يدعم iOS و Android.
- يدمج Amplify Amazon Cognito لدعم مصادقة البريد الإلكتروني / كلمة المرور ، والمصادقة الاجتماعية مع مزودي الخدمة مثل Facebook و Amazon ، والمصادقة متعددة العوامل.
- يتيح لك Amplify إضافة واجهات برمجة تطبيقات GraphQL و REST إلى تطبيقك. يمكنك استخدام واجهات برمجة التطبيقات هذه للوصول إلى البيانات من مصدر بيانات مثل DynamoDB.
- يتيح لك Amplify استخدام S3 لتخزين وإدارة ملفات الوسائط على الجهاز وفي السحابة.
- يتيح لك Amplify CLI إنشاء وظائف lambda ونشرها. دالة لامدا هي أ وظيفة بدون خادم يسمح لك بتشغيل التعليمات البرمجية دون توفير خادم. تتضمن بعض حالات الاستخدام الشائعة لوظائف lambda إرسال تنبيهات عبر الرسائل القصيرة عند بدء حدث ، وإرسال رسائل بريد إلكتروني ، ومعالجة الصور مثل إنشاء صور مصغرة. راجع مستندات AWS للحصول على المزيد حالات الاستخدام الشائع لوظائف لامدا.
- أنها رخيصة للبدء. يمكنك البدء في إنشاء تطبيقك في المستوى المجاني الذي يقدم معظم ميزات Amplify. بمجرد انتهاء الفترة المجانية ، يمكنك بعد ذلك الدفع مقابل الميزات المحددة التي استخدمتها.
- يقلل Amplify من الوقت اللازم لتسويق التطبيقات البرمجية لأنك لست بحاجة إلى ترميز الواجهة الخلفية من البداية.
تستهدف AWS Amplify سحابة AWS فقط. بالنسبة إلى Google Cloud ، يجب أن تفكر في Firebase.
Firebase
Firebase عبارة عن نظام أساسي BaaS مبني على Google Cloud يوفر نظامًا أساسيًا للخلفية مُدارة لتطبيقات الويب والجوال. يقدم Firebase منتجات تساعد المطورين في بناء البنية التحتية للواجهة الخلفية ، وإصدار التطبيق ومراقبته ، والتفاعل مع المستخدمين.
الميزات الرئيسية لبرنامج Firebase
- يدعم Firebase التكامل مع iOS والويب و Android.
- يحتوي Firebase على قاعدة بيانات Cloud Firestore وهي قاعدة بيانات NoSQL يمكنك استخدامها لتخزين البيانات لتطبيقاتك. يوفر Firebase أيضًا قاعدة بيانات في الوقت الفعلي تتيح لك تخزين البيانات ومزامنتها بين المستخدمين في الوقت الفعلي.
- يسمح لك Firebase بإضافة ملحقات لتطبيقك. الإضافات عبارة عن حزم كود معبأة مسبقًا تضيف المزيد من الوظائف إلى التطبيق. مثال على الامتداد هو Search with Algolia ، وهي حزمة تتيح البحث عن نص كامل على قاعدة بيانات Cloud Firestore باستخدام Algolia. يمكنك أن ترى ملحقات أخرى على تمديد السوق.
- يمكنك إضافة وظائف إلى تطبيقك من خلال دمج Firebase مع أدوات أخرى مثل إعلانات Google و Google Play و Jira و Slack.
- تم تصميم Firebase في Google Cloud ، مما يسمح لك بتوسيع نطاق تطبيقك بسهولة.
- خطة Spark مجانية مما يساعد المطورين على بدء استخدام Firebase بسهولة.
- ال مصادقة Firebase تدعم الخدمة مصادقة المستخدم باستخدام البريد الإلكتروني وكلمات المرور وأرقام الهواتف وموفري المصادقة الاجتماعية مثل Twitter و GitHub.
- تساعدك منتجات Firebase مثل الأعطال ومراقبة الأداء و Google Analytics ومختبر الاختبار في تتبع أداء تطبيقك.
كما ترى ، يتمتع Firebase بميزات رائعة ، ومع ذلك ، فهو ليس مفتوح المصدر ولا يمكن استخدامه إلا على Google Cloud. إذا كنت تريد بديلًا مفتوح المصدر ، فجرّب Supabase.
Supabase
Supabase هي عبارة عن نظام أساسي يمكّن المطورين من إعداد واجهة خلفية لتطبيقاتهم بسرعة. كل مشروع تم إنشاؤه على Supabase عبارة عن قاعدة بيانات Postgres محمولة بنسبة 100٪ مما يبسط الترحيل من وإلى Supabase. قاعدة البيانات ممكّنة في الوقت الفعلي ، ويمكنك الاشتراك والرد على تحديثات قاعدة البيانات. الخدمات الأخرى التي تقدمها Supabase هي وظائف الحافة والمصادقة وواجهات برمجة التطبيقات التي يتم إنشاؤها تلقائيًا.
الميزات الرئيسية لـ Supabase
- يوفر Supabase قاعدة بيانات Postgres كاملة. قاعدة البيانات محمولة ولديها مصادقة مضمنة يمكنك استخدامها للتحكم في وصول المستخدم.
- يوفر طرق مصادقة متعددة مثل عمليات تسجيل الدخول الاجتماعية مع Google و Facebook و Twitter ومصادقة البريد الإلكتروني / كلمة المرور ونظام إدارة المستخدم المدمج الذي يمكنك الوصول إليه عبر واجهة برمجة التطبيقات.
- يدعم Supabase وظائف الحافة وهي وظائف بدون خادم تعمل بالقرب من المستخدمين في جميع أنحاء العالم. باستخدام وظائف الحافة ، يمكنك تقليل زمن الوصول وزيادة سرعات تنفيذ التعليمات البرمجية.
- كما يدعم التحديثات في الوقت الفعلي التي تتيح لك الاستماع إلى الأحداث في قاعدة بيانات Postgres.
- تقدم Supabase و Firebase خدمات مماثلة والفرق الرئيسي بينهما هو أن Supabase مبني على قاعدة بيانات PostgreSQL ، وهي قاعدة بيانات علائقية بينما يعتمد Firebase على قاعدة بيانات NoSQL.
- يعتمد تسعير Supabase على كمية البيانات المخزنة مما يجعل الفواتير متوقعة. تمنحك الحزمة المجانية بالفعل قاعدة بيانات تصل إلى 500 ميجا بايت وتخزين ملفات 1 جيجا بايت وهي مثالية للمشاريع الجانبية. إذا كنت بحاجة إلى مزيد من السعة التخزينية ، فستكون فئة التسعير التالية 25 دولارًا أمريكيًا في الشهر.
- يمكنك الاستعلام عن قاعدة بيانات PostgreSQL موجودة باستخدام GraphQL.
أي منصة BaaS يجب أن تستخدمها؟
تعتمد المنصة التي تختارها على احتياجات المشروع الذي تعمل عليه. يعد Firebase رائعًا للبيانات غير العلائقية لأنه يستخدم قاعدة بيانات NoSQL بينما يعد Supabase خيارًا جيدًا إذا كنت تريد استخدام قاعدة بيانات علائقية. Amplify ، يسمح لك بإنشاء قاعدة بيانات NoSQL مدعومة بواسطة DynamoDB أو S3 ، ولكن يمكنك أيضًا استخدام وظيفة lambda للاتصال بقاعدة بيانات علائقية.
بالإضافة إلى ذلك ، إذا كنت تريد استخدام واجهات برمجة تطبيقات GraphQL ، فاختر Amplify أو Supabase لأن Firebase لا يدعمها.
يجب عليك أيضًا التفكير في مزود السحابة الحالي الخاص بك حيث قد تجد أنه من الأسهل استخدام نظام أساسي مبني على المزود الذي تستخدمه بالفعل. على سبيل المثال ، إذا كنت تستخدم AWS ، فقد تفضل Amplify أو Firebase إذا كنت تستخدم Google Cloud. يعد Supabase خيارًا جيدًا إذا كنت تفضل عدم الارتباط بمورد خدمة سحابي معين.
كيف يساعدك مقدمو BaaS على الشحن بشكل أسرع
لقد تعرفت حتى الآن على ميزات Amplify و Firebase و Supabase وبعض العوامل التي يجب مراعاتها عند اختيار موفر BaaS. بغض النظر عن النظام الأساسي الذي تختاره ، ستساعدك BaaS في توفير وقت التطوير. بدلاً من تكوين قاعدة البيانات ، وبناء نظام مصادقة ، وإعداد التحليلات ، وغيرها من الخدمات الخلفية ، يمكنك التركيز على التصميم والواجهة الأمامية.