Table of Contents

إعادة تعريف السرعة: لماذا حدث دريفن ميكرو الخدمات هو العمود الفقري لفرق أغويل الحديثة

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

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

ما هي خدمة الأحداث الصغيرة؟ وكيف يتفككون؟

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

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

وتشمل الخصائص الرئيسية للخدمات الصغرى التي تحركها الأحداث ما يلي:

  • Asynchronous communication] - الخدمات لا تحجب أبدا انتظار الردود.
  • Loose coupling] – producers and consumers only share the event schema, not API contracts.
  • Broker mediation] - A medium message broker ensures reliable delivery and buffering.
  • Event sourcing /CQRS] - often coupleed with event stores to maintain full audit tracks.

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

المنافع الاستراتيجية لفرق العمل الصغيرة

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

1- القابلية الحقيقية للتكرار المستقل

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

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

2 - المرونة في إضافة الخدمات أو تعديلها

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

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

3- القدرة على التكيف من خلال الازدواج في اللووس

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

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

4 - دورات التنمية السريعة من خلال العمل الموازي

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

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

5- الاستجابة في الوقت الحقيقي دون بولينج

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

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

كيف حدث درفين الخدمات الدقيقة تأقلم مع ممارسات أغيل

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

مواصلة التكامل والتبليغ المستمر (CI/CD)

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

الاختبارات و A/B الاختبارات

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

الأفرقة المستقلة

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

حالات الاستخدام الحقيقي في العالم: حيث توجد حالات صغيرة في منطقة دارفين

فالهيكلات التي تحركها الأحداث ليست نظرياً - فهي تنشر على نطاق واسع في بعض أكثر المنظمات جسامة في العالم.

التجارة الإلكترونية والتجزئة

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

الخدمات المالية والشؤون المالية

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

الرعاية الصحية والتطبيب عن بعد

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

شبكة الإنترنت للأشياء

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

التحديات التي ستواجهها (وكيف تتغلب عليها)

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

الاتساق في الأحداث

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

تعقيد الاختبار

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

القابلية للملاحظة

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

إدارة السمسرة

ويصبح سمسار الحدث جزءاً حاسماً من البنية التحتية، ويجب أن يكون متاحاً جداً ومتسامحاً مع الأخطاء، وأن يؤدي خدمات السحب التي يديرها (Amazon EventBridge, Google Pub/Sub, Azure Event Hubs) وأن يخفض النفقات العامة للعمليات، ولكن ينبغي أن تُدخل خيارات المصدر المفتوح مثل Apache Kafka مزيداً من الرقابة، بل تحتاج إلى خبرة.

أفضل الممارسات لتنفيذ الخدمات البالغة الصغر في بيئة أغيلي

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

  • Start with a single bounded context.] Don’t try to event-ify the entire system at once. pick a business flow that naturally benefits from async processing (e.g., order processing). Prove the pattern before expanding.
  • Design event schemas for evolution.] Use schemas with required and optional fields. Prefer additive changes (new fields) over breaking ones. Keep a schema registry to enforce compatibility.
  • Use idempotent consumers.] Events may be delivered more than once. Ensure consuming services can handle duplicates safely, typically by using event IDs as de-duplication keys.
  • Practice event modeling. In your backlog, define events as nouns (e.g., “OrderPlaced”, “Payment Received”).
  • Implement dead-letter queues.] When a consumer fails to process an event (e.g., bad data), the event should go to a dead-letter queue for analysis, not be lost. Incorporate DLQ monitoring into your sprint demos.
  • طقوس اختبارات العقود أولاً.] قبل أن يُبنى المنتجون والمستهلكون بالكامل، أكتب اختبارات التكامل التي تحقق من شكل الحدث، وهذا يلحق أوجه عدم التوافق في مرحلة مبكرة من البصمة.
  • Keep events small and meaningful.] Publish only the relevant data in an event. If a consumer needs more details, it can query the producer’s API (synchronously) or request a separate data event.

الخلاصة: هيكل أغيل في سكال

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

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

تبدأ الرحلة بحدث واحد، ابدأ بالصغير، واتعلم بسرعة، ودع الأحداث ترشد تطورك