حالة الخدمات المصغرة وفقًا للتقنيات المؤقتة

  • Jul 19, 2023

تعد الهندسة حول حالات فشل العقدة أمرًا بالغ الأهمية لتطبيقات السحابة الأصلية لمواصلة العمل. يسرق Temporal صفحة من محفوظات Java باستخدام برمجية وسيطة لإدارة الحالة مصممة للتعامل مع الفشل.

clock.jpg
صراع الأسهم

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

من المفهوم أنك ربما لم تسمع أبدًا عن هذه الشركة التي يبلغ عمرها عامين من قبل ، حيث أن موقعها الإلكتروني المتناثر يجعل الشركة تبدو وكأنها لا تزال متخفية. ليس من الواضح ما إذا كان لدى Temporal قاعدة عملاء مدفوعة ؛ يسرد عددًا من الشعارات مثل Datadog و Netflix و Instacart و Qualtrics و Box وغيرها ، لكنهم مستخدمون لتكنولوجيا مفتوحة المصدر ، وليسوا عملاء يدفعون. إذا بحثت عن كثب بما فيه الكفاية ، يمكنك في الواقع العثور على بعض الوثائق الحقيقية. ولكن فقط في حالة نسيان ذكرها ، فقد حصلت Temporal للتو على جولة بقيمة 103 مليون دولار من السلسلة B.

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

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

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

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

بالنسبة للخدمات المصغرة ، يتعين على المؤسسات عادةً كتابة أجهزة الحالة الخاصة بها بالإضافة إلى مجموعة التطبيقات. للمستخدم المؤقت Checkr، وهي خدمة توفر فحوصات خلفية للموظفين عبر الإنترنت ، غالبًا ما يتضمن سير العمل النموذجي سلسلة من 50 - 60- خطوات آلية ويدوية (كل منها خدمات مصغرة) لاسترجاع البيانات من مجموعة متنوعة من الخارجية مصادر. كان هناك الكثير من قوائم انتظار كافكا للتوفيق بينها ، وكتابة البيانات إلى قواعد بيانات متعددة الهدف ، ثم كتابة المنطق لدمج النتائج. باستخدام خادم مؤقت ، يمكنهم التركيز على التطبيق بدلاً من محرك الحالة.

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

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

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

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

البيانات الكبيرة

كيفية معرفة ما إذا كنت متورطًا في خرق البيانات (وماذا تفعل بعد ذلك)
تبدأ مكافحة التحيز في الذكاء الاصطناعي بالبيانات
توقعات عادلة؟ كيف يقدم 180 من خبراء الأرصاد بيانات الطقس "الجيدة بما فيه الكفاية"
تعتمد علاجات السرطان على كميات هائلة من البيانات. إليك كيفية فرزها في السحابة
  • كيفية معرفة ما إذا كنت متورطًا في خرق البيانات (وماذا تفعل بعد ذلك)
  • تبدأ مكافحة التحيز في الذكاء الاصطناعي بالبيانات
  • توقعات عادلة؟ كيف يقدم 180 من خبراء الأرصاد بيانات الطقس "الجيدة بما فيه الكفاية"
  • تعتمد علاجات السرطان على كميات هائلة من البيانات. إليك كيفية فرزها في السحابة