0Pricing
Cloud & IT Cert Prep · درس

أنماط التنسيق مقابل التوجيه المركزي

قارن بين توجيه الأحداث (حيث تتفاعل كل خدمة بشكل مستقل) والتنسيق (حيث يوجّه منسّق مركزي الخدمات)، واختر النمط المناسب لبنيتك

أنماط التنسيق مقابل التوجيه المركزي درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

نهجان لتنسيق الخدمات المصغرة

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

شرح نمط التنظيم

في التنظيم، تتحكم خدمة مركزية (المنظِّم) في تسلسل العمليات. فهي تستدعي Service A، وتنتظر الاستجابة، ثم تستدعي Service B، وهكذا. ويتمتع المنظِّم برؤية كاملة لحالة العملية، ويتولى معالجة الأخطاء وإعادة المحاولات، ويمكنه اتخاذ قرارات استنادًا إلى النتائج الوسيطة. وفي AWS، تُعد Step Functions المنظِّم المعتمد — إذ تعرّف سير العمل بأكمله باعتباره آلة حالات، وتدير كل خطوة.

# Orchestration: Step Functions state machine drives order processing
# StepFunctions -> ValidateOrder Lambda -> ChargePayment Lambda -> NotifyShipping Lambda
# Each arrow is an explicit command from the orchestrator
# If ChargePayment fails, Step Functions catches the error and routes to NotifyFailure
# The orchestrator (Step Functions) knows the full state of the order at every moment

شرح نمط التنسيق بالتتابع

في التنسيق بالتتابع، تتواصل الخدمات عبر الأحداث من دون منسق مركزي. تُكمل Service A مهمتها وتنشر حدثًا (مثل OrderValidated) إلى ناقل أحداث أو موضوع. تستمع Service B إلى أحداث OrderValidated وتعالج الدفع، ثم تنشر PaymentCharged. وتستمع Service C إلى PaymentCharged وتشحن الطلب. كل خدمة مستقلة ومنفصلة عن غيرها — ولا تعرف إلا الأحداث التي تستهلكها وتنتجها، وليس الخدمات الأخرى.

# Choreography: EventBridge bus connects services without central coordinator
# OrderService -> publishes 'OrderPlaced' to EventBridge
# PaymentService -> listens for 'OrderPlaced', charges card, publishes 'PaymentCharged'
# ShippingService -> listens for 'PaymentCharged', creates shipment, publishes 'OrderShipped'
# NotificationService -> listens for 'OrderShipped', sends email
# No service calls another service directly — all communication is via events

خدمات AWS لكل نمط

في AWS، تُعد Step Functions أداة التنظيم الأساسية. أما الأدوات الأساسية للتنسيق بالتتابع فهي Amazon EventBridge (لتوجيه الأحداث بين الخدمات مع التصفية القائمة على المحتوى)، وAmazon SNS (للتوزيع البسيط)، وAmazon SQS (لتمرير الرسائل من نقطة إلى نقطة بين الخدمات). ويمكنك الجمع بين النمطين: استخدم EventBridge للتنسيق بالتتابع بين المجالات ضمن السياقات المحددة، وStep Functions لتنظيم الخطوات داخل مجال واحد.

المفاضلات: قابلية المراقبة

يوفر التنظيم رؤية مركزية — إذ يعرض سجل تنفيذ Step Functions الموضع الدقيق لسير العمل، والمدة التي استغرقتها كل خطوة، وما الذي فشل. ويكون تصحيح الأخطاء مباشرًا. أما التنسيق بالتتابع فيُـوزّع الرؤية عبر خدمات متعددة ونواقل أحداث، لذا يتطلب تتبع معاملة تجارية واحدة ربط السجلات والأحداث عبر العديد من الخدمات. ولهذا تعتمد أنظمة التنسيق بالتتابع بشدة على معرّفات الارتباط والتتبع الموزع (AWS X-Ray) لتحقيق رؤية شاملة من البداية إلى النهاية.

# Correlation ID pattern for choreography observability
# Every event includes a correlationId that flows through the entire chain
{
  'source': 'com.myapp.orders',
  'detail-type': 'OrderPlaced',
  'detail': {
    'orderId': 'ORD-123',
    'correlationId': 'CORR-abc-456',  # propagated to every downstream event
    'customerId': 'CUST-789',
    'total': 99.99
  }
}

المفاضلات: الاقتران

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

المفاضلات: معالجة الأخطاء

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

# Saga pattern in choreography: compensating events
# Happy path:
# OrderPlaced -> PaymentCharged -> InventoryReserved -> OrderShipped
#
# Failure path (InventoryReservation fails):
# InventoryReservationFailed event published
# PaymentService listens -> issues refund -> publishes PaymentRefunded
# OrderService listens -> cancels order -> publishes OrderCancelled
#
# In orchestration (Step Functions), the compensating logic is in explicit Catch states

متى تختار التنظيم

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

متى تختار التنسيق بالتتابع

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

البنى المعمارية الهجينة

تستخدم معظم بنى AWS الواقعية كلا النمطين على مستويات مختلفة من التفصيل. ومن الأنماط الهجينة الشائعة: استخدام تنسيق EventBridge لفصل السياقات المحددة (فمثلًا، يُصدر نطاق الطلبات أحداثًا، بينما تستجيب نطاقات المخزون والمدفوعات والشحن كلٌّ منها بشكل مستقل)، مع استخدام تنسيق Step Functions داخل نطاق المدفوعات لتنسيق خطوات سير عمل الدفع الداخلية (تحصيل الرسوم، والتحقق من الاحتيال، والتفويض، والتسوية). ويوفر ذلك اقترانًا ضعيفًا بين النطاقات، مع وضوح العملية الداخلية.

# Hybrid: EventBridge for inter-domain + Step Functions for intra-domain
#
# EventBridge bus (choreography):
#   Order domain publishes 'OrderPlaced'
#   Payment domain receives it, starts Step Functions execution
#
# Step Functions (orchestration inside Payment domain):
#   ValidateCard -> FraudCheck -> AuthorisePayment -> SettlePayment
#   On success: PaymentDomain publishes 'PaymentCharged' to EventBridge bus
#   On failure: Step Functions Catch -> publishes 'PaymentFailed' event

مؤشرات اختبار SAA-C03

ابحثوا في الاختبار عن هذه المؤشرات. كلمات التنسيق اللامركزي المفتاحية: 'loosely coupled' و'services react to events' و'teams own independent services' و'fan-out to multiple consumers' و'add new service without changing existing ones'. كلمات التنسيق المركزي المفتاحية: 'coordinate steps in sequence' و'track workflow state' و'handle partial failures with compensation' و'human approval step' و'long-running process with error handling'. والسؤال الذي يصف منسقًا مركزيًا يوجّه خدمات أخرى يشير دائمًا إلى التنسيق المركزي.

تحقق سريع

اختبروا مدى فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

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

الأسئلة الشائعة

هل درس «أنماط التنسيق مقابل التوجيه المركزي» مجاني؟

نعم — نص درس «أنماط التنسيق مقابل التوجيه المركزي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

ماذا ستتعلم في «أنماط التنسيق مقابل التوجيه المركزي»؟

قارن بين توجيه الأحداث (حيث تتفاعل كل خدمة بشكل مستقل) والتنسيق (حيث يوجّه منسّق مركزي الخدمات)، واختر النمط المناسب لبنيتك تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟

لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أنماط التنسيق مقابل التوجيه المركزي»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟

نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. EventBridge: ناقل الأحداث والقواعد
  2. Step Functions: تنسيق سير العمل دون خوادم
  3. Kinesis Data Streams لمعالجة الأحداث الفورية
  4. أنماط التنسيق مقابل التوجيه المركزي
← العودة إلى Cloud & IT Cert Prep