الخدمات المصغرة بدون خادم مقابل الخدمات المصغرة - ما هي الهندسة المعمارية التي يجب أن تختارها الشركات؟
نشرت: 2022-05-31لكل عمل تجاري ، يعد استخدام التكنولوجيا أحد الجوانب الأساسية التي تميز المنظمة عن منافسيها. وبالتالي ، يصبح من الضروري للمؤسسات الترقية بناءً على التقنيات الجديدة.
بعد قولي هذا ، من المهم بنفس القدر التأكد من أن المنظمة تجد التوازن بين مرونة التكنولوجيا المستقبلية والعائد على استثماراتها التكنولوجية الحالية. يجب الموازنة بين الإعداد الدقيق والمعرفة بالتكامل المتضمن في عملية الترقية مع أخذ ذلك في الاعتبار.
تتقدم التكنولوجيا بوتيرة سريعة ، وكذلك الحاجة إلى التطبيقات التي يمكن أن تتوسع بسهولة وتكون رشيقة بما يكفي لأداء أفضل مع التسليم المستمر. أدت هذه المتطلبات المتطورة إلى ظهور تقنيات مثل الخدمات المصغرة والحوسبة بدون خادم.
تم ذكر معمارتين هنا تطرحان سؤالاً فضوليًا - ما هي الهندسة المعمارية التي تناسب احتياجات أعمالنا ، الخدمات التي لا تحتاج إلى خادم مقابل الخدمات المصغرة. في بعض الأحيان يكون أحدهما أكثر ملاءمة من الآخر. بينما تعتمد كلتا التقنيتين نهجين مختلفين ، يظل الأمن هو الأولوية لكلا البنيتين.
لفهم الفرق بين الاثنين ، من المهم أن نفهم ما هي بنية بدون خادم وما هي بنية الخدمات المصغرة.
ما هي الخدمة المصغرة؟
Microservice هو النمط المعماري لتقسيم التطبيق إلى تطبيقات أو خدمات أصغر ، وبالتالي الاسم. هذا هو النقيض تمامًا للهندسة المعمارية المتجانسة حيث يحتوي كيان واحد على جميع الوظائف.
لفهم أفضل ، دعنا نأخذ مثالاً لتطبيق التجارة الإلكترونية. يقوم المستخدم بالبحث عن المنتج / المنتجات وإضافتها إلى سلة التسوق ووضع الطلب. هناك العديد من الخدمات التي تعمل بشكل مستقل ويتم تجميعها معًا من خلال واجهة برمجة التطبيقات (API) . تعتبر الخدمات مثل المنتج وعربة التسوق والدفع من خلال بوابة الدفع خدمات صغيرة.
هناك عدة طرق يمكن من خلالها تنفيذ الخدمات المصغرة. لكي يتم تشغيلها بشكل مستقل ، تحتوي كل خدمة مصغرة على العناصر الأساسية - قاعدة البيانات والمكتبات والقوالب الخاصة بها. إنه يتبع بشكل أساسي قواعد SOA (الهندسة المعمارية الموجهة للخدمة) حيث يحصل المستخدم على الاستفادة من إنشاء تطبيقات جديدة ويمكنه تشغيل تطبيقات مختلفة بشكل مستقل.
تقسم DevOps جميع وظائف التطبيق إلى تطبيقات / خدمات أصغر تعمل بشكل مستقل مع الاحتفاظ بوظائف التطبيق. تم تطوير تطبيقات الخدمات المصغرة هذه واختبارها بشكل فردي لوظائفها قبل النشر.
يعد مثل هذا الإطار المعماري مفيدًا لأنه حتى في حالة تلف إحدى الخدمات الصغيرة أو خضوعها للصيانة ، فمن الأسهل إصلاحها دون التأثير على الخدمات الأخرى وبالتالي على الوظيفة العامة.
أنواع الخدمات المصغرة
- الخدمات المصغرة عديمي الجنسية
لا يقوم هذا النوع من الخدمات المصغرة بتخزين البيانات الموجودة. في وقت كل استخدام ، يتم إنشاء واجهة جديدة ويجب إضافة البيانات في كل مرة حيث لا يتم الاحتفاظ بالبيانات أبدًا.
- الخدمات المصغرة ذات الحالة
يحتفظ هذا النوع من الخدمات المصغرة دائمًا بسجل في قاعدة البيانات مما يسهل على المستخدم البرمجة بكفاءة. يجب تخزين هذه المعلومات خارجيًا في مخزن البيانات مثل RDBMS وقاعدة بيانات noSQL وما إلى ذلك.
[اقرأ أيضًا: Microservices vs Monolithic Architecture: أيهما مناسب للشركات الناشئة؟ ]
ما هي الهندسة المعمارية بدون خادم؟
البنية بدون خادم هي المكان الذي يتم فيه استضافة التطبيق جزئيًا أو كليًا على خادم جهة خارجية مثل الحوسبة السحابية . المصطلح ، رغم ذلك ، مضلل لعدم وجود خادم. بدلاً من ذلك ، فهذا يعني أن المؤسسات لا داعي للقلق بشأن الإنفاق على الأجهزة المادية أو صيانتها في مواقعها. تتم إدارة البنية التحتية المادية والشبكة والتخزين وما إلى ذلك من قبل جهة خارجية موثوق بها.
باختصار ، يحتاج المطورون فقط إلى التركيز على الترميز. كل شيء آخر يعتني به مزود الخدمة من تصحيحات الأمان إلى موازنة التحميل وإدارة السعة والتوسيع والتسجيل والمراقبة. تتضمن بعض الأنظمة الأساسية الشائعة التابعة لجهات خارجية AWS Lamba بنية بدون خادم ، وبنية Microsoft Azure ، و Google Cloud.
تعمل الهندسة المعمارية بدون خادم على منظورين مختلفين -
- الوظيفة كخدمة (FaaS)
تتيح هذه الخدمة للمستخدم إنشاء بنية معيارية تكون قابلة للتطوير وفعالة باستخدام عدد قليل من الموارد. أفضل مثال على FaaS هو عمال Cloudflare.
- الخلفية كخدمة (BaaS)
تُستخدم هذه الخدمة أساسًا لإنشاء تطبيقات للهواتف المحمولة والويب. يمكّن استخدام خدمات الجهات الخارجية المستخدمين من التركيز على الواجهة الأمامية للتطبيق. أفضل مثال على BaaS هو AWS Lambda.
لسهولة الفهم ، راجع الجدول أدناه لمعرفة ما هي البنية التحتية بدون خادم وما هي البنية التحتية للخدمات المصغرة.
خدمات دقيقة | خوادم |
---|---|
تم تطوير تطبيقات وظيفية صغيرة بشكل مستقل | يوفر بيئة لتنفيذ الكود على أي حال في أي مكان |
هذا هو SOA (بنية الخدمة الموجهة) | هذا نموذج الحوسبة السحابية |
تمتلك Microservice التكنولوجيا داخل بيئة قائمة على السحابة | الوظائف التي لا تحتوي على خادم هي الطريقة الوحيدة لاستضافة الخدمات المصغرة |
إنها تقنية لإنشاء تطبيق | يمكنك تشغيل التطبيقات على بنية Serverless |
العمارة الناضجة | أقل نضجًا |
يمكن إدارة حلول متعددة | من الصعب مراقبة وإدارة السجلات |
الاختلاف الأساسي هو - الخدمات المصغرة هي تقنية لتصميم تطبيق ، في حين أن الخوادم هي البنية لتشغيل الجزء أو التطبيق الكامل. يمكن استضافة الخدمات المصغرة على بنية بدون خادم.
من الناحية المثالية ، ينبغي للمرء أن يختار الوظائف بدون خادم عندما تحتاج المؤسسة إلى توسيع نطاق تلقائي وتكاليف وقت تشغيل أقل ، وينبغي أن تختار المؤسسة بنية الخدمات المصغرة عند البحث عن المرونة وترغب في التحول إلى الهندسة المعمارية الحديثة.
الأدوار والموارد المطلوبة لـ Serverless مقابل Microservices
كما هو مذكور أعلاه ، فإن الخدمات المصغرة هي تطبيقات أصغر تم تطويرها تتكامل لتشكل تطبيقًا أكبر أثناء العمل بشكل فردي. لإنشاء تطبيق بهذه البنية ، يجب أن تكون مرحلة التخطيط شاملة لمعرفة ما يجب إنشاء جميع الخدمات الصغيرة وكيف ستتفاعل مع بعضها البعض من خلال واجهات برمجة التطبيقات. يمكن لمهندس برمجيات متمرس إدارة هذا الدور بكفاءة.
لتطوير التطبيقات ، يجب أن يكون لديك فريق من المطورين والمختبرين الذين لديهم فهم واضح لبنية الخدمات المصغرة. الخدمات المصغرة ليست خاصة بلغة معينة ويمكن إنشاؤها بأي لغة برمجية. بعد قولي هذا ، فإن التقنيات الأكثر استخدامًا هي JS / TypeScript و Java و .NET و Python . تعمل فرق صغيرة متعددة الوظائف من المطورين معًا بشكل أفضل.
من الملاحظ أن تكلفة الخدمات المصغرة أعلى أثناء عملية التطوير ولكنها أرخص على المدى الطويل. تكون تكاليف الصيانة أيضًا أقل حيث يستمر التطبيق في العمل بشكل طبيعي حتى في حالة تعطل إحدى الخدمات المصغرة. لا تستغرق التطبيقات الصغيرة وقتًا أقل لإزالة الأخطاء فحسب ، بل إنها أسهل وأرخص في الصيانة.

لتنفيذ بنية التطبيق بدون خادم ، تحتاج إلى العثور على مزود خدمة جيد مثل AWS Lambda و Microsoft Azure Functions و Google Cloud Functions و Cloudflare Workers. تحتاج أيضًا إلى الاختيار بين FaaS و BaaS لكتابة جميع الوظائف ومحفزاتها.
يحتاج فريق التطوير إلى خلفية قوية في العمل مع مزود الخدمة الذي تختاره. يجب أن يكون المطور بارعًا تمامًا في مهارات JavaScript أو Python.
من الأرخص نسبيًا استضافة تطبيق أو جزء منه على خادم بعيد ، وبالتالي فإن تكلفة التطوير أقل أيضًا. أيضا ، يمكن تشغيل التطبيق في أي وقت من الأوقات.
الجمع بين الخوادم والخدمات المصغرة
يمكن للمؤسسة الاختيار بين الخدمات بدون خادم مقابل الخدمات المصغرة بناءً على احتياجاتها كما هو مذكور أعلاه. ومع ذلك ، يمكن لفريق التطوير في الواقع تطوير الخدمات المصغرة كمجموعة من الوظائف التي تعتمد على الأحداث والتي يمكن تخزينها على البنية التحتية لجهة خارجية.
باتباع النهج المذكور أدناه ، يمكن لفريق التطوير سد الفجوة والجمع بين بنية الخدمات المصغرة مقابل البنية التي لا تحتوي على خادم.
- لكي تكون الخدمة المصغرة بدون خادم ، يجب أن يتم تشغيلها بواسطة الحدث. يجب أن تستجيب الخدمات المصغرة لشروط معينة وإجراءات المستخدم لكي تعمل كوظيفة.
- باستخدام Logic Apps (Microsoft) أو Step Functions (Amazon) ، يمكن تعيين المشغلات للخدمات المصغرة ويمكن دمج العديد من الوظائف في الخدمة. هذا يزيد من جدوى دمجهم معًا.
- يعتمد تطوير الوظائف بدون خادم بشكل كبير على التخزين السحابي والحوسبة. وبالتالي ، من المهم الانتقال إلى البنية التحتية السحابية بحيث يمكنك تنفيذ مبادئ معينة من بنية بدون خادم.
أمثلة من العالم الحقيقي
بناءً على الاختلافات والأساليب المعمارية المذكورة أعلاه ، دعنا الآن نستكشف بعض الأمثلة الواقعية لكل من البنى التي قد تساعدك بشكل أكبر في اختيار البنية المناسبة لعملك .
أمثلة من العالم الحقيقي لهندسة الخدمات المصغرة
1. Netflix - تعد Netflix واحدة من أولى المؤسسات التي اعتمدت خدمات الحوسبة السحابية المصغرة أو الخدمات الصغيرة بدون خادم والتي تُستخدم لصيانة الخادم والموثوقية والخوارزميات لتوصيات العروض.
2. أمازون - مع النمو المتسارع ، تم تقديم خدمات متعددة. ومع ذلك ، في البداية ، كانت الشركة تتبع الهندسة المعمارية المتجانسة التي كانت باهظة الثمن. ثم أعادت الشركة بناء التطبيق في خدمات مصغرة.
3. Uber - تتم إدارة جميع العمليات التجارية من خلال بنية الخدمات المصغرة مثل إدارة الركاب والفواتير والإشعارات وغير ذلك الكثير.
أمثلة من العالم الحقيقي للهندسة المعمارية بدون خادم
1. نوردستورم - قام موقع التسوق الإلكتروني ببناء إطاره الخاص بناءً على بنية بدون خادم. استخدم موقع الويب الخاص بهم بدون خادم لإنشاء تطبيق قائم على الأحداث وإضافة المزيد من الميزات.
2. Codepen - هي عبارة عن منصة تطوير اجتماعي لمطوري ومصممي الواجهة الأمامية للمساعدة في إنشاء موقع ويب يديره فريق DevOps من رجل واحد حيث يقوم بالباقي بدون خادم.
3. Figma - بمساعدة بنية بدون خادم ، يمكن للمستخدمين التعاون في تصميم واحد بينما يمكن للمطورين التركيز على مشاريعهم بدلاً من إدارة الملفات.
كيف يمكن أن تساعد Appinventiv في اتخاذ القرارات الصحيحة بشأن Serverless مقابل Microservices؟
من خلال خبرتنا في خدمات التحول الرقمي ، نحن ، في Appinventiv ، نسعى جاهدين للتميز في كل مشروع نقوم به ، بغض النظر عن الحجم. نحن نساعد المؤسسات على تحقيق أهداف أعمالها ضمن الجداول الزمنية والتكاليف المنصوص عليها.
على سبيل المثال ، نجحنا في بناء منصة لتحليل البيانات تتمحور حول العميل لإحدى أكبر شركات الاتصالات التي تتخذ من الولايات المتحدة مقراً لها. من خلال الاستفادة من ذكاء الأعمال ، يمكننا ضمان توفر البيانات بنسبة 100٪ لكل قسم من أقسام الشركة في الوقت الفعلي.
من خلال خدمات الحوسبة السحابية الأفضل في فئتها ، يمكننا مساعدتك في اختيار الهيكل المناسب الذي سيكون مفيدًا لمنتجك أو مواءمتهما مع حل التكامل الأكثر فاعلية والذي يناسب احتياجات عملك.
تحدث إلى خبرائنا لمعرفة كيف يمكننا الشراكة معك لمساعدتك في تحقيق أهداف عملك.
الماخذ الرئيسية
غير الخوادم مقابل الخدمات المصغرة ، كلا التقنيتين متشابهتين هيكلياً باتباع نهج مختلفة. مقابل البنية المتجانسة ، تعطي كل من الخدمات التي لا تحتاج إلى خادم والخدمات المصغرة الأولوية لقابلية التوسع والمرونة والفعالية من حيث التكلفة وسهولة إضافة ميزات جديدة. تركز الخدمات المصغرة على قابلية التوسع طويلة المدى حيث تعمل كل خدمة كتطبيق في حد ذاتها.
يمكن للمرء أن يختار بين النهجين بناءً على نطاق منتجات الشركة وأولوياتها. إذا كنت تخطط لإنشاء نظام أساسي كبير يتطلب توسيع نطاق مستمر ، فستوفر لك الخدمات المصغرة خدمات صغيرة بدون خادم لحلول طويلة الأجل. إذا كنت تبحث عن تشغيل سريع وفعال من حيث التكلفة ، فإن الهندسة المعمارية بدون خادم تعد خيارًا جيدًا.
أسئلة وأجوبة
س: هل يمكن أن تعمل الخدمات بدون خادم والخدمات المصغرة معًا؟
A. ليس من الضروري اختيار أي من البنى. تقدم بعض التطبيقات الأفضل عندما يتم الجمع بين البنيتين. تتكامل الخدمات المصغرة والخوادم التي لا تحتاج إلى خادم وتكمل بعضها البعض بنقاط القوة والضعف الخاصة بها. يمكن نشر الخدمات المصغرة كجزء من بنية التطبيق بدون خادم.
س: متى يجب ألا تستخدم هندسة الخدمات المصغرة؟
أ. يجب على المرء ألا يستخدم بنية الخدمات المصغرة عندما:
- المجال المحدد غير واضح أو غير مؤكد
- الكفاءة المحسنة ليست مضمونة
- حجم التطبيق صغير جدًا
س: متى يجب استخدام بنية الخدمات المصغرة؟
ج: تعد الخدمات المصغرة مفيدة عند الحاجة إلى تطوير تطبيقات كبيرة يمكنها تحمل التكاليف الأولية. يمكن الحفاظ على التطبيقات الصغيرة وخفيفة الوزن كعمارة متجانسة.
- التطبيقات التي تحتاج إلى زيادة أو تقليل
- إضافة وظائف جديدة هو مطلب منتظم
- في تطبيقات البيانات الضخمة
- إعادة كتابة التطبيقات القديمة
- تحتاج إلى إعادة استخدام بعض المكونات من أكثر من برنامج واحد