ادفع مقابل ما تستخدمه، وتوسّع إلى الصفر عندما لا تستخدمه، وتوقف عن إدارة الخوادم تمامًا — ولكن اعرف متى تتوقف الجدوى الاقتصادية.

يحتوي تطبيقك على حركة مرور متغيرة — هادئة ليلاً، وارتفاعات خلال ساعات العمل، واندفاعات غير متوقعة من الحملات التسويقية أو الأحداث الموسمية. أنت تدفع مقابل خوادم تبقى خاملة 70% من الوقت. أو أنك تقوم ببناء منتج جديد ولا ترغب في الاستثمار في توفير البنية التحتية (infrastructure provisioning)، وتخطيط السعة (capacity planning)، وتناوب فريق الاستجابة على مدار الساعة (on-call rotation) قبل التحقق من ملاءمة المنتج للسوق (product-market fit). توفر لك Serverless تسعيراً حسب الطلب (per-request pricing)، وتوسعاً تلقائياً، وإدارة بنية تحتية معدومة — ولكن فقط عندما تتناسب خصائص عبء العمل.
Explore more design patterns and system architectures
يمكن لفريق معماري لدينا مساعدتك في تصميم وبناء الأنظمة باستخدام هذا النمط لمتطلباتك المحددة.
تواصل معناتبني هندسة Serverless-first التطبيقات بالكامل على خدمات حوسبة مُدارة وقابلة للتوسع إلى الصفر (Lambda, Cloud Functions, Vercel Functions) متصلة بخدمات أحداث مُدارة (EventBridge, SQS, Step Functions). لا توجد خوادم للتصحيح، ولا مجموعات لتغيير حجمها، ولا سعة للتخطيط. تتنفذ الدوال استجابةً للأحداث (HTTP requests, queue messages, schedule triggers, database changes) وتتوسع تلقائيًا من الصفر إلى آلاف من النسخ المتزامنة. يمتد هذا النمط ليشمل قواعد البيانات اللاخادمية (serverless databases) مثل (DynamoDB, Neon, PlanetScale)، وقوائم الانتظار اللاخادمية (serverless queues) مثل (SQS)، والتنسيق اللاخادمي (serverless orchestration) مثل (Step Functions, Temporal Cloud).
تعتمد الهندسة المعمارية على الأحداث بطبيعتها. يقوم API Gateway (AWS API Gateway, Vercel) بتوجيه طلبات HTTP إلى دوال فردية. تُطلق مصادر الأحداث (Event sources) (SQS queues, EventBridge rules, S3 notifications, DynamoDB streams) الدوال بشكل غير متزامن. يقوم Step Functions أو Temporal بتنسيق سير العمل متعدد الخطوات حيث تكون كل خطوة عبارة عن دالة مع إعادة المحاولة المدمجة (built-in retry) والمهلة الزمنية (timeout) ومعالجة الأخطاء (error handling). تتولى قواعد البيانات اللاخادمية (Serverless databases) (DynamoDB للقيم الرئيسية (key-value)، Neon/PlanetScale للبيانات العلائقية (relational)) معالجة التخزين دون إدارة السعة. يتيح نمط strangler fig الترحيل التدريجي من التطبيقات المتجانسة (monoliths) الموجودة.
| الطبقة | التقنيات |
|---|---|
| الحوسبة (Compute) | AWS Lambda, Vercel Functions (Fluid Compute), Google Cloud Functions, Cloudflare Workers |
| API | API Gateway (REST/WebSocket), Vercel, AppSync (GraphQL) |
| التنسيق (Orchestration) | AWS Step Functions, Temporal Cloud, Vercel Workflow DevKit |
| البيانات (Data) | DynamoDB, Neon Postgres, PlanetScale, Upstash Redis, S3 |
| الأحداث (Events) | EventBridge, SQS, SNS, Vercel Queues |
| المراقبة (Observability) | CloudWatch, Datadog (serverless monitoring), Lumigo, X-Ray |
| متى تستخدم | متى تتجنب |
|---|---|
| عندما تكون حركة المرور متغيرة مع فترات خمول كبيرة (التوسع إلى الصفر يوفر المال) | عندما تكون حركة المرور ثابتة وعالية الحجم — تكون المثيلات المحجوزة (reserved instances) أرخص بنسبة 50-70% عند التحميل المستمر |
| عندما تريد إدارة بنية تحتية معدومة ونفقات تشغيل صفرية | عندما تحتاج إلى اتصالات مستمرة (خوادم WebSocket، مجمعات اتصالات قواعد البيانات) — على الرغم من أن Vercel يتعامل مع هذا |
| عندما يتحلل التطبيق بشكل طبيعي إلى دوال موجهة بالأحداث | عندما يتطلب عبء العمل أكثر من 15 دقيقة من التنفيذ المستمر لكل طلب |
| عندما تقوم بالترحيل تدريجياً من تطبيق متجانس (monolith) وتريد نشر كل نقطة نهاية على حدة | عندما لا يكون الفريق على دراية بالأنظمة الموزعة — تُدخل Serverless تعقيد تصحيح الأخطاء الموزعة |
يتعامل MW مع Serverless كقرار اقتصادي، وليس قراراً عقائدياً. نحن نصمم تكلفة Serverless مقابل الحاويات مقابل المثيلات المحجوزة (reserved instances) لنمط حركة المرور الفعلي الخاص بك (وليس النظري)، ونوصي بالخيار الذي يقلل من إجمالي تكلفة الملكية (total cost of ownership) بما في ذلك وقت الهندسة للعمليات. تشمل بنياتنا المعمارية اللاخادمية (serverless architectures) تحديد التكلفة لكل دالة (وضع علامة على كل استدعاء بالميزة التي أطلقته)، ومراقبة البدء البارد (cold start monitoring) مع التنبيه عندما يتجاوز P99 العتبات، وكتيبات الترحيل التدريجي التي تنقل نقطة نهاية واحدة لكل سباق (sprint). لقد قمنا بترحيل التطبيقات المتجانسة (monoliths) إلى Serverless لشركات الإعلام، ومنتجات SaaS، ومنصات التجارة الإلكترونية — وفي حالتين، قمنا بترحيل أجزاء مرة أخرى إلى الحاويات عندما تغيرت خصائص عبء العمل.
الأمن ليس ميزة تضيفها بعد الإطلاق. إنه خاصية معمارية — إما أن النظام قد صُمم لأجلها، أو لم يُصمم.
لا يناسب serverless-first جيدًا العمليات طويلة الأمد التي تتجاوز 15 دقيقة، وأعباء العمل التي تتطلب اتصالات WebSocket مستمرة، والتطبيقات ذات حركة المرور العالية والمستمرة حيث تكون السعة المحجوزة أرخص، والأنظمة التي تحتاج إلى تكوين OS أو شبكة على مستوى منخفض. تقوم MicrocosmWorks بتقييم كل عبء عمل مقابل هذه القيود أثناء تصميم البنية وتوصي بأساليب هجينة حيث يتعامل serverless مع نقاط نهاية API ومعالجة الأحداث بينما تقوم containers أو VMs بتشغيل أعباء العمل التي تحتاج إلى persistent compute. يتجنب هذا النهج العملي الخطأ الشائع المتمثل في إجبار كل مكون على serverless عندما لا يكون مناسبًا.
تخفف MicrocosmWorks من Lambda cold starts من خلال provisioned concurrency لـ critical endpoints، وfunction bundle optimization لتقليل initialization time، والاستخدام الاستراتيجي لـ Lambda SnapStart لـ Java workloads الذي يقلل من cold starts من ثوانٍ إلى ميلي ثانية. كما نقوم بتصميم applications بحيث تستخدم latency-sensitive paths lightweight runtimes مثل Node.js أو Python مع minimal dependencies، مع الحفاظ على cold starts أقل من 200ms حتى بدون provisioned concurrency. لـ endpoints حيث يكون حتى هذا latency غير مقبول، نستخدم Lambda@Edge أو CloudFront Functions لـ sub-10ms responses.
تقوم MicrocosmWorks بإعداد بيئات التطوير المحلية باستخدام أدوات مثل SST (Serverless Stack) أو LocalStack أو وضع عدم الاتصال (offline mode) لـ Serverless Framework، التي تحاكي الخدمات السحابية على جهاز المطور بدقة قريبة من الإنتاج. نحن نطبق مجموعات اختبار التكامل التي تعمل مقابل بيئات سحابية مؤقتة يتم تشغيلها لكل pull request، بحيث يمكن للمطورين التحقق مقابل خدمات AWS الحقيقية دون مشاركة بيئة اختبار (staging environment). يوفر هذا النهج المزدوج حلقات تكرار محلية سريعة للتطوير مع اكتشاف المشكلات الخاصة بالسحابة قبل أن يصل الكود إلى الإنتاج.
وجدت MicrocosmWorks أن serverless أرخص بكثير للتطبيقات ذات أنماط حركة المرور المتغيرة أو المتذبذبة—غالبًا ما تكون أقل بنسبة 70-90% من عمليات نشر الـ containers المكافئة التي تعمل دائمًا—ولكن الميزة التنافسية للتكلفة تضيق عند مستويات الإنتاجية المستدامة التي تتجاوز 10-20 مليون استدعاء شهريًا. نقوم ببناء نماذج لتوقع التكلفة أثناء تصميم البنية تقارن تسعير serverless لكل استدعاء مقابل سعة الـ container المحجوزة لأنماط حركة المرور الخاصة بك، بما في ذلك التكاليف الخفية مثل رسوم API Gateway ورسوم نقل البيانات. خدمة التحسين لدينا، والمتاحة بأسعار استشارية تتراوح بين 10-35 دولارًا في الساعة، تراجع فواتير serverless بانتظام لتحديد الهدر الناتج عن الذاكرة المخصصة بشكل زائد، أو مدة تشغيل الوظائف المفرطة، أو الاستخدام غير الضروري لـ API Gateway.
تستخدم MicrocosmWorks وكلاء تجميع الاتصالات (connection pooling proxies) مثل Amazon RDS Proxy أو PgBouncer، يتم نشرها كطبقة دائمة بين دوال Lambda وقاعدة البيانات، والتي تضاعف آلاف اتصالات Lambda في مجموعة قابلة للإدارة من اتصالات قاعدة البيانات الفعلية. كما نصمم التطبيقات اللاخادمية لتفضيل DynamoDB أو قواعد البيانات الأخرى عديمة الاتصال (connection-less) لأعباء العمل عالية التزامن حيث سيظل تجميع الاتصالات (connection pooling) يسبب اختناقات. بالنسبة للتطبيقات التي يجب أن تستخدم قواعد البيانات العلائقية، ننفذ حدود توسيع نطاق واعية بالاتصال (connection-aware scaling limits) التي تحد من استدعاءات Lambda المتزامنة لتتناسب مع سعة اتصال قاعدة البيانات.