في السنوات الأخيرة، أصبحت التطبيقات السحابية الأصلية هي المعيار الرئيسي للعديد من الشركات لبناء تطبيقات قابلة للتوسع. من بين التطورات العديدة في تقنيات السحابة، تبرز الهندسيات بدون خادم كنهجًا تحوليًا. السهولة في الاستخدام والكفاءة هما الخاصيتان الأكثر رغبة لتطوير التطبيقات الحديثة، وتقدم الهندسيات بدون خادم هذه الخصائص. وقد جعل ذلك الهندسيات بدون خادم هو محدد المسار لكل من مقدمي السحابة والمستهلكين.
بالنسبة للشركات التي تسعى لبناء تطبيقات بهذا النهج، تقدم مقدمي السحابة الرئيسيون الكثير من الحلول البدون خادم. في هذه المقالة، سنستكشف الميزات والفوائد والتحديات التي تواجه هذا النمط المعماري، جنبًا إلى جنب مع حالات الاستخدام. في هذه المقالة، استخدمت أمازون ويب سيرفيسز كمثال لاستكشاف المفاهيم، ولكن نفس المفاهيم قابلة للتطبيق عبر جميع مقدمي السحابة الرئيسيين.
بدون خادم
بدون خادم لا يعني عدم وجود خوادم. هذا يعني ببساطة أن البنية التحتية لهذه الخدمات يتم إدارتها من قبل مقدمي السحابة. هذا يتيح للمهندسين والمطورين تصميم وبناء التطبيقات دون القلق بشأن إدارة البنية التحتية. إنه مشابه لاستخدام تطبيق مشاركة الركوب أوبر: عندما تحتاج إلى ركوب، لا داعي للقلق بشأن امتلاك أو صيانة سيارة. أوبر يتولى كل ذلك، ويمكنك التركيز فقط على الوصول إلى المكان الذي تحتاج إليه من خلال دفع ثمن الرحلة.
تقدم الهندسيات بدون خادم العديد من الفوائد التي تجعلها مناسبة وجذابة للعديد من حالات الاستخدام. فيما يلي بعض المزايا الرئيسية:
توسيع تلقائي
واحد من أكبر مزايا الهندسة الخادمة هو أنها تدعم بشكل طبيعي التوسع. تتولى مزودات الخدمة السحابية العبء الثقيل لتقديم قدرة توسع تقريبًا غير محدودة. على سبيل المثال، إذا كانت هناك تطبيق مبني باستخدام تقنيات الهندسة الخادمة يحظى فجأة بشعبية، فإن الأدوات أو الخدمات ستتوسع تلقائيًا لتلبية احتياجات التطبيق. لا داعي لنا للنهوض في منتصف الليل لإضافة الخوادم أو غيرها من الموارد.
التركيز على الابتكار
بما أنك لم تعد مكلفًا بإدارة الخوادم، يمكنك بدلاً من ذلك التركيز على بناء التطبيق، وإضافة الميزات نحو نمو التطبيق. بالنسبة لأي منظمة، سواء كانت صغيرة أو متوسطة أو كبيرة، تساعد هذه النهج في التركيز على ما يهم حقًا — نمو الأعمال.
كفاءة التكلفة
مع نماذج الخوادم التقليدية، غالبًا ما تنتهي بدفع تكاليف للموارد غير المستخدمة حيث يتم شراؤها مقدمًا وإدارتها حتى عندما لا تكون قيد الاستخدام. تقوم الهندسة الخادمة بتغيير هذا الوضع من خلال التحول إلى نموذج الدفع حسب الاستخدام. في معظم الحالات، تدفع فقط مقابل الموارد التي تستخدمها فعليًا. إذا لم يحظى التطبيق الذي تبنيه بانتشار على الفور، ستكون تكاليفك دنياً، مثل دفع تكلفة جلسة واحدة بدلاً من سنة كاملة. مع نمو حركة التطبيق، ستنمو التكلفة وفقًا لذلك.
زمن أقصر حتى السوق
مع الأطر الخادمة، يمكنك بناء ونشر التطبيقات بشكل أسرع بكثير مقارنة بنماذج الخوادم التقليدية. عندما يكون التطبيق جاهزًا، يمكن نشره بجهد أدنى باستخدام موارد الخدمة الخادمة. بدلاً من قضاء الوقت في إدارة الخادم، يمكنك التركيز على التطوير وإضافة ميزات جديدة، ونشرها بوتيرة أسرع.
الصيانة التشغيلية المخفضة
نظرًا لأن مزودي الخدمة السحابية يديرون البنية التحتية، فإن المستهلكين ليس عليهم القلق بشأن توفير الموارد، والصيانة، وتوسيع النطاق، أو التعامل مع تصحيحات الأمان والثغرات.
الأطر الخالية من الخادم توفر مرونة ويمكن تطبيقها في مجموعة متنوعة من الحالات الاستخدام. سواء كان الأمر يتعلق ببناء تطبيقات الويب أو معالجة البيانات في الوقت الحقيقي، فإنها توفر التوسعية والكفاءة اللازمة لهذه الحالات الاستخدام.
بناء واجهات برمجة تطبيقات الويب باستخدام خدمات AWS الخالية من الخادم
الآن بعدما ناقشنا فوائد الهندسات الخالية من الخادم، دعونا ننغمس في بعض الأمثلة العملية. في هذا القسم، سنقوم بإنشاء تطبيق ويب خلفي بسيط باستخدام موارد AWS الخالية من الخادم.
تحتوي تصميم التطبيق الخلفي أعلاه على ثلاث طبقات لتوفير واجهات برمجة تطبيقات لتطبيق ويب. بمجرد نشره على AWS، يكون نقطة الوصول البوابية متاحة للاستهلاك من قبل واجهات البرمجة التطبيقية. عند استدعاء واجهات البرمجة من قبل المستخدمين، يتم توجيه الطلبات من خلال بوابة الواجهة إلى وظائف اللامبدا المناسبة. لكل طلب واجهة برمجة تطبيق، يتم تشغيل وظيفة اللامبدا، وتقوم بالوصول إلى دينامو دي بي لتخزين البيانات واسترجاعها. هذا التصميم هو حلاً مبسطاً وفعّالاً من حيث التكلفة يتوسع تلقائيًا مع زيادة الطلب، مما يجعله خيارًا مثاليًا لبناء واجهات برمجة تطبيقات بأدنى تكاليف إضافية. تتكامل المكونات في هذا التصميم بشكل جيد مع بعضها البعض مما يوفر مرونة.
هناك جزءان رئيسيان في هذه الهندسة — الحوسبة والتخزين.
الحوسبة الخادمة
قامت الحوسبة الخادمة بتغيير الطريقة التي يتم بها بناء ونشر التطبيقات والخدمات السحابية الأصلية. إنها تعد بنموذج حقيقي للدفع حسب الاستخدام بدقة على مستوى الجزء من الثانية دون إهدار أي موارد. نظرًا لبساطتها ومزاياها الاقتصادية، اكتسب هذا النهج شعبية، ويدعم العديد من مقدمي الخدمات السحابية هذه القدرات.
أبسط طريقة لاستخدام الحوسبة الخادمة هي من خلال تقديم الشفرة لتنفيذها من قبل المنصة حسب الطلب. أدى هذا النهج إلى ظهور منصات الوظائف كخدمة (FaaS) التي تركز على السماح لقطع صغيرة من الشفرة الممثلة كوظائف بتشغيلها لفترة محدودة من الزمن. يتم تنشيط الوظائف بواسطة أحداث مثل طلبات HTTP، تغييرات التخزين، رسائل، أو إشعارات. نظرًا لأن هذه الوظائف تُستدعى وتتوقف عند اكتمال تنفيذ الشفرة، فإنها لا تحتفظ بأي حالة دائمة. للحفاظ على الحالة أو الاحتفاظ بالبيانات، يستخدمون خدمات مثل DynamoDB التي توفر قدرات تخزين دائمة.
AWS Lambda قادر على التوسع حسب الطلب. على سبيل المثال، قام AWS Lambda بمعالجة أكثر من 1.3 تريليون استدعاء في يوم العروض الرئيسي لعام 2024. مثل هذه القدرات حاسمة في التعامل مع الزيادات الفجائية في حركة المرور.
تخزين الحوسبة الخادمة
في نظام الحوسبة بدون خادم، يشير التخزين بدون خادم إلى حلول تخزين مستندة على السحابة تتحجم تلقائيًا دون الحاجة لإدارة البنية التحتية من قبل المستهلكين. تقدم هذه الخدمات العديد من الإمكانيات، بما في ذلك التوسع حسب الطلب، والتوافر العالي، والدفع حسب الاستخدام. على سبيل المثال، يعد DynamoDB قاعدة بيانات NoSQL مدارة بالكامل وبدون خادم مصممة للتعامل مع نماذج البيانات الرئيسية-القيمة والمستند. إنه مصمم بغرض تلبية احتياجات التطبيقات التي تتطلب أداءً متسقًا عند أي مقياس، مع تقديم تأخر بالغة الدقة في العدد الواحد من ملي الثانية. كما يوفر إمكانيات تكامل سلسة مع العديد من الخدمات الأخرى.
تقدم مزودو السحابة الكبيرة العديد من خيارات التخزين بدون خادم للاحتياجات الخاصة، مثل S3، ElastiCache، Aurora، وغيرها الكثير.
حالات استخدام أخرى
في القسم السابق، تحدثنا عن كيفية استغلال الهندسة المعمارية بدون خادم لإنشاء واجهات برمجة تطبيقات خلفية لتطبيق ويب. هناك العديد من حالات الاستخدام الأخرى التي يمكن أن تستفيد من الهندسة المعمارية بدون خادم. وتشمل بعض تلك الحالات:
معالجة البيانات
دعونا نستكشف مثالًا آخر على كيفية استخدام الهندسة المعمارية بدون خادم لإخطار الخدمات استنادًا إلى تغييرات البيانات في مخزن البيانات. على سبيل المثال، في منصة التجارة الإلكترونية، يمكن تخزين الطلب في DynamoDB عند إنشائه. من أجل إخطار الخدمات الأخرى، يمكن تشغيل عدة أحداث استنادًا إلى هذا الحدث في التخزين.
باستخدام DynamoDB Streams، يمكن استدعاء وظيفة Lambda عند حدوث هذا الحدث. يمكن لهذه الوظيفة ثم دفع حدث التغيير إلى SNS (خدمة الإشعار البسيطة). يعمل SNS كخدمة إشعار لإخطار العديد من الخدمات الأخرى التي تهتم بهذه الأحداث.
معالجة الملفات في الوقت الحقيقي
في العديد من التطبيقات، يقوم المستخدمون بتحميل الصور التي تحتاج إلى تخزينها، ومعالجتها لتغيير الحجم، وتحويلها إلى تنسيقات مختلفة، وتحليلها. يمكننا تحقيق هذه الوظيفة باستخدام الهندسة المعمارية الخادمة في AWS بالطريقة التالية. عند تحميل صورة، يتم دفعها إلى دلو S3 مكون لتشغيل حدث لاستدعاء وظيفة Lambda. يمكن للوظيفة Lambda معالجة الصورة، وتخزين البيانات الوصفية في DynamoDB، وتخزين الصور المصغرة في دلو S3 آخر. يمكن استخدام هذه الهندسة المعمارية المتطورة لمعالجة الملايين من الصور دون الحاجة إلى إدارة أي بنية تحتية أو أي تدخل يدوي.
التحديات
تقدم الهندسة المعمارية الخادمة العديد من الفوائد، ولكنها تحمل أيضًا تحديات معينة يجب معالجتها.
بدء بارد
عند استدعاء وظيفة خادمية، تحتاج المنصة إلى إنشاء وتهيئة وتشغيل حاوية جديدة لتنفيذ الكود. يعرف هذا العملية باسم “بدء التشغيل البارد”، ويمكن أن يسبب تأخيرًا إضافيًا في سير العمل. تقنيات مثل الاحتفاظ بالوظائف الدافئة أو استخدام التنفيذ المسبق للتوازن يمكن أن تساعد في تقليل هذا التأخير.
مراقبة وتصحيح الأخطاء
نظرًا لوجود عدد كبير من الاستدعاءات، يمكن أن تصبح مراقبة وتصحيح الأخطاء أمرًا معقدًا. من الصعب تحديد المشكلات وتصحيحها في التطبيقات التي تستخدم بشكل كثيف. من الموصى به بشدة تكوين أدوات مثل AWS Cloudwatch للمقاييس والسجلات والتنبيهات للتعامل مع هذه المشكلات.
على الرغم من أن الهندسة المعمارية الخادمية تتميز بالتوسع التلقائي، يجب تحسين تكوينات الموارد لمنع حدوث Engbottlenecks. تخصيص الموارد بشكل صحيح وتنفيذ استراتيجيات تحسين التكاليف ضروري.
الاستنتاج
تعتبر الهندسة المعمارية الخادمية خطوة كبيرة نحو تطوير تطبيقات سحابية أصلية مدعومة بالحوسبة والتخزين الخادمي. تُستخدم بشكل كبير في أنواع مختلفة من التطبيقات، بما في ذلك سير العمل القائم على الأحداث، معالجة البيانات، معالجة الملفات، وتحليل البيانات الكبيرة. نظرًا لقابليتها للتوسع وليونتها وارتفاع توافرها، أصبحت الهندسة المعمارية الخادمية خيارًا موثوقًا للشركات بجميع الأحجام.
Source:
https://dzone.com/articles/from-zero-to-scale-with-aws-serverless