السلام عليكم و رحمة الله وبركاته
ما هي خدمة أو نموذج الـServerless؟
هو نموذج تطوير سحابي (Cloud-Native) يسمح للمطورين بإنشاء التطبيقات وتشغيلها دون الحاجة إلى إدارة السيرفرات (manage servers).
ما الفرق بين الـ Serverless و خدمات أو نماذج الحوسبة السحابية الاخرى؟
يختلف الـ Serverless عن نماذج الحوسبة السحابية الأخرى، في أن موفر السحابة مسؤول عن إدارة كل من البنية التحتية السحابية (cloud infrastructure) وتوسيع نطاق التطبيقات؛ حيث يتم نشر تطبيقات الـ Serverless في حاويات يتم تشغيلها تلقائيًا عند الطلب عندما تُستدعى.
وفقًا لنموذج الحوسبة السحابية للبنية التحتية كخدمة الـ(IaaS) يقوم المستخدمون بشراء وحدات السعة مسبقًا، مما يعني على المستخدم دفع لمزود السحابة العامة (public cloud provider) مقابل مكونات السيرفر التي تعمل دائمًا لتشغيل تطبيقاته، وتقع على عاتق المستخدم مسؤولية زيادة سعة السيرفر خلال أوقات ارتفاع الطلب، أوتقليص حجم السعة عندما لا تكون هناك حاجة إليها، و تكون البنية للشبكة السحابية (cloud infrastructure) اللازمة لتشغيل التطبيق نشطة حتى في حالة عدم استخدام التطبيق.
على النقيض من ذلك، مع بنية الـ Serverless، يتم تشغيل التطبيقات حسب الحاجة فقط، حيث يقوم حدث(event) بتفعيل كود تشغيل التطبيق، ويقوم موفر السحابة العامة ديناميكيًا بتخصيص الموارد لهذا الكود، و يتوقف المستخدم عن الدفع عند الانتهاء من تنفيذ الكود.
مع الـServerless يتم نقل جميع المهام الروتينية إلى مزود خدمات سحابية مثل إدارة نظام التشغيل، ونظام الملفات وتصحيحات الأمان (security patches)، وموازنة الحمل(load-balancing) وإدارة السعة (capacity management)، والتوسيع (scaling)، والتسجيل (logging)، والمراقبة (monitoring)، حيث يدير موفر السحابة سيرفرات فعلية (physical servers) ويخصص مواردها ديناميكيًا نيابة عن المستخدمين.
حالات استخدام الـ Serverless:
- تعتبر الـ Serverless Architecture مثالية للتطبيقات غير المتزامنة، وتطبيقات الـ stateless التي يمكن تشغيلها على الفور، ويعد استخدام Serverless مناسبًا جيدًا لحالات الاستخدام التي تشهد ارتفاعات غير متوقعة في الطلب.
- تعد تطبيقات الـ Serverless مناسبة لحالات الاستخدام التي تتضمن تدفقات البيانات الواردة، أو روبوتات الدردشة (botchat)، أو المهام المجدولة، أو business logic.
- بعض حالات الاستخدام الشائعة للـ Serverless هي واجهات برمجة التطبيقات الخلفية (back-end APIs) وتطبيقات الويب، وأتمتة عمليات الأعمال(business process automation)، ومواقع الويب(websites)، والتكامل عبر أنظمة متعددة (integration across multiple systems).
تنقسم حوسبة الـServerless عادةً إلى مجموعتين:
- Backend-as-a-Service (BaaS).
- Function-as-a-Service (FaaS).
ماهي خدمة الـBackend-as-a-Service (BaaS)؟
هي خدمة تتيح للمطورين الوصول إلى مجموعة متنوعة من خدمات وتطبيقات جهات خارجية أو طرف ثالث ( third-party)؛ على سبيل المثال، قد يقدم موفر الخدمات السحابية خدمات مصادقة (authentication services)، وتشفير إضافي (extra encryption)، وقواعد بيانات يمكن الوصول إليها عبر السحابة؛ وعادةً ما يتم استدعاء وظائف الـ serverless من خلال واجهات الـ APIs.
ما الفرق بين الFrontend و الـ Backend في خدمة الBaaS ؟
- الـFrontend خاص ببناء المطور(Developer builds) للـuser-interface و الـ client-side logic
- الـ backend خاص بموفر الخدمة، حيث يقدم موفروا خدمة الـ BaaS للمطور التالي:
- إدارة قاعدة البيانات (Database management).
- التخزين السحابي (Cloud storage) (للمحتوى الذي ينشئه المستخدم).
- مصادقة المستخدم (User authentication).
- دفع الإخطارات (Push notifications).
- التحديث عن بعد(remote updating).
- الاستضافة (Hosting).
أمثلة على موفروا الـ BaaS و الـMBaaS هما Microsoft Azure و Google Firebase.
و خدمةالـ ((MBaaS) Mobile-Backend-as-a-Service): هي عبارة عن BaaS مصمم خصيصًا لإنشاء تطبيقات الجوال.
ما الفرق بين الـ BaaS والمنصة كخدمة (PaaS)؟
توفر الـ PaaS منصة عبر السحابة للمطورين لبناء تطبيقاتهم، حيث أن نموذج الـمنصة كخدمة ((PaaS)platform-as-a- Service) مثل حوسبة Serveless و الـ BaaS في أنه يلغي حاجة المطور لبناء وإدارة الواجهة الخلفية(backend) للتطبيق. ومع ذلك لا تتضمن خدمة الـ PaaS تطبيق pre-built server-side application logic مثل إشعارات الدفع ومصادقة المستخدم؛ إذاً الـ PaaS يوفر للمطورين مزيدًا من المرونة، بينما يوفر الـBaaS المزيد من الوظائف.
ما هي الوظيفة كخدمة (Function-as-a-Service (FaaS))؟
الوظيفة كخدمة (FaaS) هي نموذج تنفيذ حوسبة يعتمد على الأحداث (event-driven) حيث يكتب المطورون logic يتم نشره في حاويات (containers)، و تُدار بالكامل بواسطة منصة (platform)، ثم يتم تنفيذه عند الطلب؛ وباستخدام الـ FaaS يتم التعامل مع الأجهزة المادية(physical hardware) ونظام تشغيل الـvirtual machine، وإدارة برنامج الويب سيرفر تلقائيًا بواسطة مزود الخدمة السحابية.
الحاويات(containers):هي حزم من البرامج التي تحتوي على كافة العناصر الضرورية (necessary elements) لتشتغل في أي بيئة، وتقوم الحاويات بمحاكاة نظام التشغيل (virtualize the operating system)وتشتغل في أي مكان مثل مركز بيانات خاص (a private data center)، أو السحابة العامة (public cloud)، أو حتى على الكمبيوتر المحمول الشخصي للمطور.
أمثلة على الـ FaaS :
• IBM Cloud Functions.
• Amazon’s AWS Lambda.
• Google Cloud Functions.
• Microsoft Azure Functions (open source).
• OpenFaaS (open source).
م.أمــــل عبــــدالكــــريم الأصبـــــحي،،،