ما هو الحوسبة بدون خادم (Serverless)؟
الحوسبة بدون خادم، كما يوحي الاسم، تشير إلى الحوسبة التي لا تعتمد على خوادم. قد تتساءل: كيف يمكن إجراء العمليات الحسابية دون خوادم؟ في الواقع، لا يعني “بدون خادم” عدم وجود خوادم بالمعنى الحرفي، بل يستخدم التكنولوجيا لتجريد مفهوم الخادم بعيدًا عن منطق الأعمال، مما يسمح للمطورين بالتركيز فقط على تطبيقاتهم دون القلق بشأن البنية التحتية الأساسية.
كيف تعمل الحوسبة بدون خادم؟
منذ ظهور الحوسبة بدون خادم، اعتبرها العديد من المطورين تقنية جديدة، وهي بالفعل كذلك نظرًا لسهولتها. ومع ذلك، لا داعي لتعقيد الأمور أو التخوف منها. فالمنطق الأساسي لتشغيل التطبيقات لم يتغير. الحوسبة بدون خادم تستخدم فقط وسائل تقنية لحجب التعقيدات عنا، تمامًا مثل أي تقنية سحابية أخرى.
قبل الحوسبة بدون خادم، كان نشر تطبيق ويب عملية مرهقة. لتشغيل تطبيقنا، كان علينا أولاً بناء بيئة تشغيل على جانب الخادم. يتضمن ذلك شراء أجهزة افتراضية، تهيئة بيئاتها، تثبيت التبعيات المطلوبة – مع ضمان التوافق مع بيئة التطوير المحلية قدر الإمكان. بعد ذلك، لجعل تطبيقنا متاحًا للمستخدمين، كنا بحاجة لشراء اسم نطاق، وتسجيله باستخدام عنوان IP للجهاز الافتراضي، وتكوين Nginx وتشغيله، وأخيرًا رفع كود التطبيق وتشغيله.
على النقيض التام من سير العمل التقليدي، يتطلب نشر الحوسبة بدون خادم ثلاث خطوات بسيطة فقط، مما يجعله تجريدًا متطرفًا لعمليات جانب الخادم. بشكل أساسي، تظل سلسلة طلبات بيانات HTTP من المستخدم كما هي من حيث النوعية؛ كل ما تفعله الحوسبة بدون خادم هو تبسيط النموذج العام.
للتوضيح، كنا في السابق بحاجة لبناء بيئة تشغيل على جانب الخادم، بينما تقوم تطبيقات FaaS (الوظائف كخدمة) بتجريد هذه الخطوة إلى خدمات وظيفية. كنا بحاجة إلى موازنة التحميل والوكيل العكسي، لكن تطبيقات FaaS تجرد هذا إلى مشغلات HTTP وظيفية. كان رفع الكود وبدء التطبيق ضروريًا، لكن تطبيقات FaaS تجرد هذا إلى كود وظيفي.
عندما يصل مستخدم إلى مشغل HTTP وظيفي لأول مرة، يحتفظ المشغل بطلب HTTP الخاص بالمستخدم ويُنشئ إشعار حدث طلب HTTP لخدمة الوظيفة.
ثم تتحقق خدمة الوظيفة من وجود نسخ وظيفية خاملة. إذا لم تكن متوفرة، تقوم بجلب الكود الخاص بك من مستودع الكود الوظيفي، تهيئ وتطلق نسخة وظيفية، تنفذ الوظيفة، تمرر كائن طلب HTTP كمعامل، وتقوم بتشغيل الوظيفة.
علاوة على ذلك، يتم إرجاع استجابة HTTP لتنفيذ الوظيفة إلى مشغل الوظيفة، الذي يقوم بدوره بإرجاع النتيجة إلى عميل المستخدم المنتظر.
أكبر فرق بين الحوسبة بدون خادم ومنصات PaaS (النظام الأساسي كخدمة) لاستضافة التطبيقات يكمن في استخدام الموارد، وهو الابتكار الأبرز للحوسبة بدون خادم. يمكن لنسخ تطبيقات الحوسبة بدون خادم التقلص إلى الصفر، بينما تتطلب منصات PaaS وجود خادم واحد على الأقل أو حاوية تعمل باستمرار.
قبل أول استدعاء، يكون الاستخدام الفعلي للخادم للوظيفة صفرًا. فقط عندما يقوم المستخدم بطلب بيانات HTTP، يتم تشغيل خدمة الوظيفة بواسطة حدث HTTP، مما يبدأ نسخة وظيفية. هذا يعني أنه بدون طلبات المستخدمين، لا توجد نسخ قيد التشغيل لخدمة الوظيفة ولا تستهلك أي موارد خادم. على العكس، إنشاء نسخة تطبيق على منصة PaaS يستغرق عادة عشرات الثواني، ولضمان توفر الخدمة، يجب أن يكون خادم واحد على الأقل قيد التشغيل لتطبيقك بشكل مستمر.
للتشبيه، الحوسبة بدون خادم تشبه الضوء الذي يعمل بالصوت: يضيء بسرعة عندما يكون هناك شخص، وينطفئ عندما لا يكون هناك أحد. مقارنة بالأضواء التقليدية التي تعمل يدويًا، تتفوق الأضواء الصوتية في كفاءة الطاقة. لكن هذه القدرة على توفير الطاقة تعتمد على قدرة الضوء الصوتي على الإضاءة بسرعة عند الحاجة.
وبالمثل، يكمن مفتاح مزايا الحوسبة بدون خادم في وقت التشغيل السريع. كيف تحقق ذلك؟
لماذا يمكن للحوسبة بدون خادم أن تبدأ بسرعة؟
البدء البارد هو مفهوم نشأ من أجهزة الكمبيوتر الشخصية، ويشير إلى عملية إعادة تحميل جدول BIOS بعد دورة طاقة – أي التشغيل من مشغلات الأجهزة، مما يؤدي إلى أوقات بدء بطيئة.
في بيئات السحابة الحالية، نادرًا ما يتم إعادة تشغيل الخوادم الفعلية. في سياق الحوسبة بدون خادم، يشير البداية الباردة إلى العملية الكاملة من استدعاء الوظيفة حتى تصبح النسخة الوظيفية جاهزة. تركيزنا هنا هو تقليل وقت البدء، حيث أن أوقات البدء الأقصر تؤدي مباشرة إلى استخدام أعلى للموارد. مزودو الخدمات السحابية الحاليون، باستخدام تحسينات خاصة بلغات البرمجة، حققوا متوسط أوقات بدء بارد بين 100 و 700 مللي ثانية. بفضل التجميع في الوقت المناسب (JIT) في محرك JavaScript الخاص بـ Google، تتميز Node.js بأسرع بداية باردة.
من الجدير بالذكر أن خدمة الحوسبة بدون خادم يمكن أن تبدأ من الصفر، تنفذ وظيفة، وتكمل العملية خلال 100 مللي ثانية – وهذا سبب رئيسي لقدرة الحوسبة بدون خادم على التقلص إلى الصفر بثقة. عند فتح صفحة ويب، يعتبر وقت استجابة أقل من ثانية واحد ممتازًا بشكل عام. في هذا السياق، وقت البدء البالغ 100 مللي ثانية له تأثير ضئيل على أوقات تحميل الصفحة.
علاوة على ذلك، من الآمن افتراض أن مزودي الخدمات السحابية سيواصلون تحسين بنيتهم التحتية لتحقيق أوقات بدء أسرع، مما يؤدي في النهاية إلى استخدام أعلى للموارد. على سبيل المثال، تنزيل كود الوظيفة هو خطوة تستغرق وقتًا أثناء البداية الباردة. لذلك، عند تحديث الكود، غالبًا ما يبدأ مزودو الخدمات السحابية جدولة الموارد بشكل استباقي لتنزيل وبناء صور حاويات لنسخ وظيفتك. عندما يصل الطلب الأول، يمكنهم الاستفادة من هذه الصور المخزنة مؤقتًا، متجاوزين خطوة تنزيل الكود من البداية الباردة وإطلاق الحاوية مباشرة من الصورة. هذه التقنية تُعرف باسم البداية الدافئة. وبالتالي، للتطبيقات الحساسة لزمن الاستجابة، يمكننا استخدام استراتيجيات البداية الدافئة أو التسخين المسبق للنسخ لتسريع أو تجاوز أوقات البداية الباردة تمامًا.
كيف يتم تقسيم الحوسبة بدون خادم إلى طبقات؟
عند تنفيذ نسخة الحوسبة بدون خادم الخاصة بك، تتكون من ثلاث طبقات على الأقل: الحاوية، بيئة التشغيل، وكود الوظيفة.
اعتبر الحاوية مثل نظام التشغيل (OS). يتطلب تنفيذ الكود التفاعل مع الأجهزة، وتحاكي الحاوية معلومات النواة والأجهزة، مما يسمح لكودك وبيئة التشغيل بالعمل داخلها. تتضمن معلومات الحاوية حجم الذاكرة، إصدار OS، تفاصيل CPU، متغيرات البيئة، وأكثر. حاليًا، قد تستخدم تطبيقات FaaS حاويات Docker، أجهزة افتراضية (VMs)، أو حتى بيئات sandbox.
بيئة التشغيل تمثل السياق الذي تنفذ فيه وظيفتك. تتضمن معلومات بيئة التشغيل لغة البرمجة والإصدار المستخدم، مثل Node.js v10 أو Python 3.6؛ الكائنات القابلة للاستدعاء، مثل SDK الخاص بـ Aliyun؛ ومعلومات النظام مثل متغيرات البيئة.
ما فوائد هذا النهج الطبقي؟ توفر طبقة الحاوية تطبيقًا أوسع، مما يمكن مزودي الخدمات السحابية من تسخين العديد من نسخ الحاويات مسبقًا، مما يجزئ موارد الخادم الفعلية بشكل فعال. نسخ بيئة التشغيل، بتطبيقها الأقل، يمكن تسخينها مسبقًا بأعداد أصغر. بمجرد تثبيت الحاوية وبيئة التشغيل، يصبح تنزيل الكود وتنفيذه أمرًا بسيطًا. هذه البنية الطبقية تمكن من تحسين الموارد بكفاءة، مما يسمح بتنفيذ سريع ومنخفض التكلفة لكودك.
ملخص
- سلسلة استدعاء تطبيق الحوسبة بدون خادم النقي تتكون من ثلاثة مكونات رئيسية: مشغلات الوظائف، خدمات الوظائف، وكود الوظيفة. هذه تحل محل عمليات جانب الخادم التقليدية: موازنة التحميل والوكيل العكسي، الخوادم وبيئات تشغيل التطبيقات، ونشر كود التطبيق على التوالي.
- الفرق الأبرز بين الحوسبة بدون خادم ومنصات PaaS التقليدية لاستضافة التطبيقات يكمن في قدرة تطبيقات الحوسبة بدون خادم على التقلص إلى الصفر والبدء بسرعة عند تشغيل الأحداث. وظائف Node.js، على سبيل المثال، يمكن أن تحقق بدء وتنفيذ خلال 100 مللي ثانية.
- الحوسبة بدون خادم، بطبيعتها، تضحي بتحكم المستخدم ونطاق التطبيق لتبسيط نموذج الكود. هيكلها الطبقي يعزز استخدام الموارد، وهو المساهم الرئيسي في أوقات البداية الباردة القصيرة بشكل ملحوظ.
ستطلق Novita AI خدمة الحوسبة بدون خادم لمستخدمينا، انضم إلى قائمة الانتظار الآن وابدأ عملك مع الحوسبة بدون خادم.
Novita AI هي المنصة السحابية الشاملة التي تعزز طموحاتك في الذكاء الاصطناعي. واجهات برمجة تطبيقات متكاملة، حوسبة بدون خادم، مثيل GPU — الأدوات الفعالة من حيث التكلفة التي تحتاجها. تخلص من البنية التحتية، ابدأ مجانًا، وحقق رؤيتك في الذكاء الاصطناعي.
قراءات مقترحة
