Ultimate magazine theme for WordPress.

ما هي الحوسبة بدون خادم ومتى يجب استخدامها؟ – CloudSavvy IT

4

ads

الحوسبة بدون خادم

الحوسبة بدون خادم هي نموذج ترميز جديد يسمح لك بتشغيل التعليمات البرمجية دون إعداد الخوادم. يتم تقديمها كخدمة من قبل العديد من مزودي الخدمات السحابية ، بما في ذلك Amazon و Google. ما كل هذا الضجيج؟

ما هو خادم؟

“بدون خادم” تسمية خاطئة بسيطة – سيستمر تشغيل شفرتك على خادم في مكان ما. لا داعي للقلق بشأن ذلك ، لأن المعدن الذي يعمل عليه ستتم إدارته “في السحابة” ، مما يتركك تركز فقط على البرامج. هذا هو جاذبية الحلول بدون خادم. إن الاستغناء عن تكلفة إدارة الخوادم يوفر لك المال ، سواء من تكلفة العمالة الخاصة بمسؤولي النظام أو تكلفة تشغيل VPS ، خاصة تلك التي قد تكون أكثر مما تحتاج.

تعد Serverless فئة واسعة ، ولكن معظم الخدمات ستتضمن ثلاثة أشياء رئيسية:

  • لا توجد خوادم لإدارة (من الواضح).
  • التحجيم التلقائي مع عدم وجود تكوين إضافي. نظرًا لأنه يتم تشغيل الكود في حاويات صغيرة ، فمن السهل إطلاق عدة حاويات بشكل متوازٍ.
  • الدفع لكل استخدام. هذا يمكن أن يجعل الكود بدون خادم أرخص من الحل التقليدي القائم على VPS ، حيث من المحتمل أنك لا تقوم بتشغيل VPS بأقصى تحميل طوال الوقت.

هذا يجعل من دون خادم نموذج تنافسي يعتمد على التكلفة وحدها. بالنسبة إلى موقع مثل Bustle ، أدى الانتقال إلى AWS Lambda إلى توفير 84٪ في التكلفة مقارنةً ببنيتهم ​​القديمة. يعد توسيع نطاق الحلول التي لا تحتاج إلى خادم أمرًا خطيًا بدرجة أكبر ، لأنك لن تضطر إلى الدفع مقابل مثيلات الخادم الفردية.

PaaS مقابل. FaaS

من المهم توضيح الفرق بين نموذج PaaS و FaaS “بدون خادم” ، لأن التسويق لكل نوع متماثل إلى حد كبير.

النظام الأساسي كخدمة (PaaS) يقطع الخوادم ، لكنه لا يمس الكود الأساسي أو يفرض أي ممارسات ترميز جديدة. يتم ذلك عادةً من خلال حاويات مثل Docker ، حيث يمكن نشر لقطات من تطبيقك بسرعة كبيرة عبر خوادم متعددة. مع بعض الخدمات ، مثل AWS Fargate و Azure Container Instances ، لا داعي للقلق بشأن الخوادم على الإطلاق ، مما يجعلها “بدون خادم”. مع الخدمات الأخرى ، مثل Heroku ، لا يزال يتم تحصيل رسوم منك لكل خادم ، ولكن لا داعي للقلق بشأن إعداده بنفسك ، والتوسع عبر مثيلات متعددة أمر سهل.

تعمل الوظيفة كخدمة (FaaS) على استبعاد فكرة الخوادم تمامًا. بدلاً من ذلك ، يتم تشغيل التعليمات البرمجية الخاصة بك ، وتشغيل وظيفة سريعة ، وتفرض عليك رسومًا مقابل الذاكرة ووقت الحساب الذي استخدمته. تفرض نماذج FaaS فكرة “الخدمات المصغرة” ، حيث تقسم تطبيقك إلى مكوناته ، وتطور كل واحدة على حدة. هذا لا يعمل مع كل شيء ، ولكن عندما يعمل ، يمكنه تسريع التطوير والصيانة بشكل كبير مقابل تصميمات التطبيقات التقليدية “المتجانسة”. AWS Lambda ووظائف Google Cloud ووظائف Azure كلها نماذج FaaS.

يُنظر إلى FaaS عمومًا على أنها حوسبة “بدون خادم” ، على الرغم من أنه ربما لا يكون هذا هو المصطلح الأكثر وصفًا لها. “الخدمات المصغرة” هي أكثر تمثيلاً للأفكار الكامنة وراء نماذج FaaS ونماذج “بدون خادم”. لا يزال بإمكانك إنشاء خدمات مصغرة باستخدام خدمات PaaS ، لكن FaaS تجبرك على القيام بذلك.

حيث تألق الخدمات المصغرة

تخيل أن تطبيقك عبارة عن تطبيق كبير ومترابط يضم العديد من الأجزاء المتحركة المختلفة.

تطبيق متآلف مع العديد من الأجزاء

كل هذه الأجزاء من تطبيقك تتحدث مع بعضها البعض ، وتعتمد على بعضها البعض لجعل كل شيء يعمل. لكن ، الأمر فوضوي ، كل شيء متشابك ، وتصبح إدارة التبعية صعبة. إذا كنت تريد أن يكون لديك فرق متعددة تعمل على أجزاء مختلفة من التطبيق ، فسوف تصطدم ببعضهم البعض كثيرًا.

يقسم نموذج التطبيق المستند إلى الخدمات المصغرة كل شيء إلى جانب الخدمة الخاصة به. لا يزال من الممكن تشغيل هذه على نفس الجهاز ، ولكن ربما قد ترغب في تجميعها مع Docker للتشغيل على خوادم منفصلة ، أو توسيع نطاقها عبر مجموعة مع Kubernetes. هذا أسهل بكثير عندما يمكنك قياس قطعة واحدة بشكل منفصل عن الأخرى.

يقيس تطبيق الخدمات المصغرة قطعة واحدة منفصلة عن الأجزاء الأخرى

يمكن تقسيم ذلك بشكل أكبر مع موفري خدمة FaaS ، حيث يمكن أن تكون وحدات البناء هذه الآن وظائف فردية بدلاً من خدمات كاملة. على سبيل المثال ، يمكن أن يكون لديك وظيفة لتغيير حجم الصور تلقائيًا لأجهزة مختلفة ، مثل سياتل تايمز التي تستخدم Lambda لـ. يمكنك إنشاء وظائف منفصلة لكل نقطة نهاية REST API ، والتخلي عن تشغيل خادم API تمامًا.

من الواضح أن هذا النموذج لا يعمل مع كل تطبيق. لم يتم تصميم بعض الأشياء لتقسيمها ، والقيام بذلك بأثر رجعي يمكن أن يكون بمثابة ألم كبير. ولكن عندما يعمل ، يمكن أن ينتهي بك الأمر مع تطبيق منظم للغاية يسهل إصلاحه عندما يبدأ في التعطل.

الخدمات المصغرة ليست دائمًا أبسط

الخدمات المصغرة أكثر نظافة ، وعندما تضعها بالكامل ، تبدو أجمل بكثير من التصميم الأحادي الفوضوي الذي تستخدمه العديد من التطبيقات. لكن يجب على شخص ما تصميم كل هذا الهيكل.

يضع إنشاء تطبيق قائم على الخدمات المصغرة ضغطًا كبيرًا على دورة DevOps ، خاصةً عند التخطيط لكل شيء. بينما قد تكون قادرًا على تمهيد تطبيق مترابط وبناء كل شيء كما تذهب ، تتطلب الخدمات المصغرة تخطيطًا دقيقًا من البداية. هذا يتطلب مهندسين معماريين جيدين ، وتواصل جيد مع باقي الفريق حول هيكل التطبيق.

ومع المزيد من الخدمات ، يأتي المزيد من الأشياء التي يجب مراقبتها وتصحيحها وصيانتها. إذا كان لديك فريق تطوير صغير فقط ، فقد تكون محاولة إنشاء العديد من الخدمات وإصلاحها في وقت واحد أمرًا مربكًا.

تفرض خدمة FaaS على وجه التحديد أيضًا تأمين البائع. بينما يمكنك عادةً التقاط صورة Docker ونشرها على مزود آخر ، فإن بناء التطبيق الخاص بك على خدمة مثل Lambda يجبرك على استخدام Lambda فقط لاستضافة تطبيقك. تصبح محبوسًا في النظام البيئي ، وفجأة لا تكتب كود JavaScript ، فأنت تكتب كود Lambda. لا يزال بإمكانك التحكم في ما تكتبه ، لذا من الممكن نقله إلى خدمة أخرى ، لكن الانفصال عن خدمة تعتمد عليها عادة ما يكون أصعب مما يبدو.

أيضًا ، لا يُراد عادةً تشغيل خدمات FaaS على مدار الساعة طوال أيام الأسبوع. إذا كنت تستخدم وظائف Lambda لإنشاء تطبيق يؤدي باستمرار إلى تشغيل وظائف Lambda ، فستزيد فاتورتك أكثر من مجرد دفع VPS.

متى ومتى لا تستخدم Serverless

تعمل خدمات PaaS مثل AWS Fargate ببساطة على تشغيل التطبيقات المعبأة في حاويات دون إزعاجك بشأن المعدن الذي يتم تشغيله عليه. يمكنك تبديل البنية الأساسية للتطبيق بالكامل إلى خدمة مثل هذه دون أي مشاكل. بالإضافة إلى ذلك ، يأتي مع PaaS تجميعًا سهلاً ، ويمكن أن يساعدك اعتماد بعض المُثُل العليا من نموذج الخدمات المصغرة على تحسين قابلية تطبيقك للتوسع دون إعادة هيكلة كبيرة.

خدمات FaaS أكثر تعقيدًا. إنها ليست مناسبة لكل شيء ولكنها مفيدة جدًا عند استخدامها بشكل صحيح. إنها رائعة لخدمات الخلفية البسيطة خفيفة الوزن التي لا تحتاج إلى الكثير من التكوين أو خادم VPS كامل لتشغيلها. يمكنك استخدامها كمكملات لتطبيقك الحالي ، وبينما يمكنك إنشاء تطبيق قائم على الخدمات المصغرة بالكامل باستخدام وظائف السحابة بدون خادم فقط ، فإن هذا القرار أكثر تعقيدًا.

لكن المال هو أيضًا عامل رئيسي ، وبينما قد يكون التخطيط للخدمات الصغيرة ونماذج التطبيقات التي لا تحتاج إلى خادم أكثر صعوبة ، إذا تمكنت من القيام بذلك ، فسوف توفر الكثير من المال.

تعتبر AWS Lambda مفيدة جدًا أيضًا مع خدمات AWS الأخرى. يمكن تشغيل وظائف Lambda استنادًا إلى الإجراءات في البنية التحتية لـ AWS ، مثل تشغيل وظيفة تلقائيًا عند إسقاط ملف في حاوية S3. إذا كنت تستخدم خدمات AWS بالفعل ، فيمكن أن تكون Lambda أداة أتمتة رائعة.

ads

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.