من زمان والناس نفسها انه تتيح للـ Developers الفرصة أنهم يركزوا على جزء الـ Development وانهم يكونوا قادرين على بناء Services قوية ويبدعوا فيها بدون عوائق الـ Infrastructure أو التفكير فيها ..
بحيث يركزوا على الـ Core Product أو المنتج اللي مهتمين بيه بمعنى أصح ، من غير ما يهتموا بازاي هيديروا البنية التحتية للـ Product ده
ازاي Serverless Architecture بتشتغل ؟
كلنا عارفين أن الـ Servers عشان تسمح للـ Users بإنهم يتواصلوا مع أي تطبيق والـ Business Logic بتاعه , ده هيتطلب Resources وبنية تحتية هتطلب موارد واهتمام وادارة زي :
- Server Hardware
- Security Updates
- Backups
- Resources Management
ومن خلال اتباع الـ Serverless Architecture احنا بنشيل العبء ده كله وبنخلي الـ Developers يهتموا بس بجزء الـ Business Logic / Core Product وانهم يكتبوا الـ Application Code وبنشيل عبء البنية التحتية ونخليها مسئولية Third Party Provider زي الـ Cloud Services اللي موجودة دلوقتي ومن أشهرهم AWS , Google Cloud , Microsoft Azure
أحد أشهر الـ Serverless Architecture هي الـ FaaS واللي هي اختصار لـ Function as a Service , واللي من خلالها الـ Developers بيكتبوا الـ Application بتاعهم والـ Core Product اكنه بالظبط عبارة عن مجموعة محددة من الـ Functions اللي بتتنفذ واللي بيحصلها Triggering من خلال الـ Events زي مثلا ان حد يبعت رسالة لحد , أو ان يتبعت Email أو ان يحصل HTTP Request بشكل معين.
وبالشكل ده انت كـ Developer مسئول عن :
- كتابة الـ Function أو الـ Application Code على هيئة الـ Functions دي وتعملها Upload / Deploy على الـ Cloud Provider
- تحدد الـ Trigger أو ايه هو الحدث اللي هيتسبب في إن الـ Function بتاعتك يحصلها Invocation ويتم تنفيذها ؟ يعني امتة بالظبط الـ Cloud Provider ينادي عليها وينفذها ؟
وبعد ما تعمل ده أول مالـ Cloud Provider بيعرف أن حصل Trigger بيبدأ هو يعمل Execution للـ Function بتاعتك على أحد الـ Servers واللي ده بيكون من اختصاصه هو, ولو ماكنش فيه Servers وقتها قايمة فدوره انه يعمل Spawning لواحد ويبدأ ينفذ عليه الـ Function بتاعتك.
وبالشكل ده الـ Developer بيكون معزول تماما عن ايه بيحصل من ناحية البنية التحتية , ولكن بيكون تركيزه منصب في الـ Function Logic فقط