كيفية تجنب تحويل الخدمات الصغيرة إلى كود سباغيتي موزع

  • Sep 05, 2023

يمكن أن تؤدي الراحة المطلقة للبناء بدون خادم إلى قيام المطورين بإحياء كود السباغيتي المخيف للبنى المتجانسة.

واحدة من أروع الأشياء بدون خادم تتيح لك العروض "مزج ومطابقة لغات وأطر البرمجة بشكل لم يسبق له مثيل"، كمدير أبحاث Gartner قال راج بالا. وهذا يعني، كما اقترح، أنه يمكنك كتابة تطبيق Java الذي يستدعي مكتبات Python، على سبيل المثال، باستخدام نظام أساسي للوظائف كخدمة (بدون خادم).

خاصية مميزة

تقرير خاص: الخدمات المصغرة: أساس تطبيقات المؤسسات المستقبلية (ملف PDF مجاني)

يفحص هذا الكتاب الإلكتروني، المستند إلى أحدث الميزات الخاصة لـ ZDNet / TechRepublic، كيف تتمتع بنية الخدمات الصغيرة بالقدرة على يمكنك المتابعة من حيث توقفت البنية الموجهة نحو الخدمة (SOA)، مما يجعل تطوير التطبيقات أسرع وأكثر قابلية للتطوير والمزيد مرن.

اقرا الان

لذا. رائع.

ومع ذلك، قد يعني ذلك أيضًا حقبة جديدة من كود السباغيتي (أي رمز غير منظم ويصعب صيانته). فقط لأنك تنتقل من التعليمات البرمجية المتجانسة (سيئة!) لا يعني أنك لا تستبدلها بـ "a" مشكلة في الأنظمة الموزعة لها آثار على النشر والاتصال والمراقبة وما إلى ذلك" (سيء أيضًا!) مثل

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

يرى: تقرير خاص: الاستعداد للحوسبة بدون خادم (ملف PDF مجاني) (تك ريبابليك)

نشر حب الخدمات المصغرة

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

الميزات الخاصة الأخيرة

  • الروبوتات في المؤسسة
  • الخدمات المصغرة: أساس تطبيقات المؤسسات المستقبلية
  • تكنولوجيا القطاع العام: أدوات جديدة للوضع الطبيعي الجديد
  • فيروس كورونا: الأعمال والتكنولوجيا في ظل الوباء
  • العمل من المنزل: مستقبل الأعمال بعيد
  • مكدس SMB الجديد

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

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

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

يرى: الحوسبة بدون خادم: دليل لقادة تكنولوجيا المعلومات (تك ريبابليك بريميوم)

السباغيتي الموزعة

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

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

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

بالطبع هذا لا يلغي احتمال وجود "Spaghetti Code 2.0". القوة والراحة التي يتمتع بها بالا يمكن أن تؤدي الاستدعاءات إلى قيام المطورين بإنشاء جميع أنواع استدعاءات واجهة برمجة التطبيقات (API) لوظائف بدون خادم يمكن أن تصبح غير عملية سريع. ومع ذلك، فإن ضمان الاقتران غير المحكم للخدمات يمكن أن يساعد.

الإفصاح: أنا أعمل لدى AWS، لكن لا يوجد هنا ما يتعلق بشكل مباشر أو غير مباشر بعملي هناك.

ملاحظة المحرر: تم نشر هذه المقالة في الأصل على موقع TechRepublic التابع لـ ZDNet. تم إعادة نشره على ZDNet كجزء من ميزتنا الخاصة، الخدمات المصغرة: أساس تطبيقات المؤسسات المستقبلية.

اقرأ أكثر

على طريق غير مرئي: الطريق غير الممهد لشبكة الخدمة إلى التطبيق العملي

أفضل موفري الخدمات السحابية في عام 2020: AWS، وMicrosoft Azure، وGoogle Cloud، ومشغلات SaaS الهجينة

5 طرق تقدمتنا بها التكنولوجيا خلال 10 سنوات: القصة حتى الآن

بايثون والخدمات الصغيرة والمزيد من اتجاهات التكنولوجيا لعام 2020، وفقًا لأورايلي (تك ريبابليك)