نموذج الهرم العكسي
ما هو «نموذج الهرم العكسي» في الهندسة المعمارية
نموذج الهرم العكسي هو طريقة لتصميم النظم والبروتوكولات التي يتم فيها نقل أهم وأقل المعلومات/الوظيفة الضرورية أولاً وضمانها، وتتم إضافة التفاصيل الأقل أهمية تدريجياً واختيارياً. يستعير المصطلح فكرة من الصحافة (الشيء الرئيسي هو في البداية)، ولكنه يتكيف مع المهام الهندسية: المسار الحاسم يعمل تحت أي ظروف، كل شيء آخر هو «طبقات الإثراء».
الصورة البديهية: الجزء العلوي الضيق في الأعلى هو «عقد الضمان الأدنى» (MGC)، فيما يلي التمديدات والتحسينات والميزات الغنية التي يطبقها النظام إذا كانت هناك موارد/توافق.
حيث ينطبق
بروتوكولات الشبكة وواجهات برمجة التطبيقات: REST/gRPC/GraphQL، خطافات الويب، وسماسرة الأحداث.
قنوات البث: WebSocket و SSE و Kafka/NATS و RTC.
بنية الخدمة: مسار حرج مقابل الآثار الجانبية (تدقيق، تحليلات، احترار ذاكرة التخزين المؤقت).
عملاء الهاتف المحمول/الويب: أولاً واجهة المستخدم «الهيكل العظمي» والبيانات الرئيسية، ثم التحميل الكسول للوسائط والتوصيات.
سلاسل الدفع والمخاطر: الإذن/الحجز - على سبيل الأولوية ؛ مكافحة الغش/التحليل - غير متزامن، مع مواعيد نهائية.
القابلية للرصد: مقياس السجل/المستوى الأدنى دائماً ؛ التتبع/التنميط - عن طريق أخذ العينات.
المبادئ النموذجية
1. عقد الضمان الأدنى (MGC)
مجموعة من المجالات والعمليات التي بدونها لا يكون النص منطقيًا. إنه مستقر ومتوافق مع الخلف ويمر أولاً.
2. التخصيب التدريجي
وتقدم مجالات/وظائف إضافية كتمديدات اختيارية (القدرات/أعلام الميزات/التفاوض).
3. التدهور دون فشل
عندما يتم تحميله بشكل زائد أو غير متاح جزئيًا، يتخلص النظام من الطبقات الاختيارية، مما يحافظ على تشغيل MGC.
4. تحديد الأولويات صراحة واتفاقات الأمن المستدامة
لكل طبقة SLO خاص بها (زمن الوصول والتوافر) وقوائم الانتظار وفئات الخدمة (QoS).
5. تطور الدوائر المضافة
وتضاف حقول جديدة باعتبارها غير قابلة للإلغاء/اختيارية، ولا تفرق بين العملاء ؛ التغييرات الصعبة - فقط من خلال الإصدار الجديد.
6. إمكانية الرصد حسب الطبقة
تتميز المقاييس والسجلات بالحرجية: "النواة. '،' enh. '،' دفعة. لمعرفة ما يضحي به النظام تحت التحميل.
مقارنة مع هرم الطبقة «الكلاسيكية»
تؤكد العمارة الكلاسيكية (القيعان - القاعدة، القمم - واجهة المستخدم) على التبعيات.
يؤكد الهرم العكسي على أهمية ونظام التسليم: أولاً «النواة»، ثم «اللطيفة».
تصميم البروتوكول النموذجي
1) REST/HTTP
MGC: الحد الأدنى من الموارد/نقطة النهاية والحقول المطلوبة.
الامتدادات:- نفي المحتوى («قبول»، «تفضيل»)،
- المعلمات ؟ تشمل = '/' ؟ الحقول = 'للدقة الانتقائية،
- وصلات إلى مرفقات «ثقيلة» (عناوين URL موقعة مسبقًا) بدلاً من الخط الداخلي.
- التحلل: عند انقضاء المهلة، إعطاء MGC بدون مجموعات متداخلة ؛ 206 المحتوى الجزئي للأجسام الكبيرة
- النسخ: الحقول المضافة دون تغيير العقود القديمة ؛ النسخة الرئيسية فقط لكسر التغييرات.
2) gRPC
proto: حقول «اختيارية» جديدة ذات ترقيم آمن للعلامات ؛ لا تعيد استخدام العلامات المحذوفة.
المواعيد النهائية لجانب الخادم و QoS لكل طريقة (RPCs الحرجة على الأولوية).
البث: الرسائل الأولى - الرؤوس/المجاميع، ثم التفاصيل بالقطع.
3) حافلات الأحداث (كافكا/ناتس)
الحدث الأساسي: «الحدث _ النوع»، «الهوية»، «حدث _ في»، الحد الأدنى من مجالات الأعمال.
الإثراء: نخرج في outbox/CDC والمواضيع الفردية «- مثرية».
تلخيص التفاصيل أولاً لاحقًا: يمكن للمستهلكين إكمال عملية العمل حسب النواة، ويتم تحميل التفاصيل بشكل غير متزامن.
الأنماط التي تتناسب جيدًا مع الهرم العكسي
المسار الحرج أولاً: منفصل «إلزامي» متزامن عن الآثار الجانبية غير المتزامنة.
الكتابة مسبقًا/Outbox: سجل حقيقة الحدث، والباقي هو تسليم الخلفية.
إحضار كسول وتدريجي: الاستعداد، المؤشرات، «إذا تم تعديلها منذ ذلك الحين »/ETag.
اكتشاف القدرات - يقوم الخادم/العميل بالإبلاغ صراحة عن دعم الملحقات.
الضغط الخلفي والميزانيات: المواعيد النهائية، وحدود وحدة المعالجة المركزية/مكتب المراقبة الداخلية لكل طبقة ؛ إلغاء المهام الثانوية تحت التحميل.
SLO-Scoped Caching: نقوم بتخزين «النواة» بشكل أكثر قوة، الإثراء - أقصر/أرق.
خوارزمية التنفيذ
1. رسم خرائط السيناريو: اكتب رحلة المستخدم وسلط الضوء على «لحظة القيمة».
2. تحديد MGC: الحد الأدنى من المجالات/العمليات لتحقيق القيمة.
3. انقسم إلى طبقات: «core»، «extended»، «analytics/batch».
4. ضبط SLO/SLA و QoS لكل طبقة.
5. تدهور التصميم: ما الذي نتجاهله عند فشل N ٪/p95 ؟
6. تطور المخططات: سياسة النسخة، المضافة أولاً.
7. إمكانية الرصد: علامات الطبقة في المقاييس/السجلات/المسارات، التنبيهات على «النواة».
8. الاختبار: هندسة الفوضى وحقن الأخطاء حسب الطبقة.
9. الإطلاق والتعليقات: قم بتشغيل الملحقات على ficheflags وطرحها على الكناري.
المقاييس و SLO حسب الطبقة
Core: p95/p99 latency, parte of success critical operations, failure conservation within dealance.
تمديد: النسبة المئوية للاستجابات المخصبة، ومتوسط وقت التحميل.
الدفعة/التحليلات: تأخر عن الوقت الفعلي، نسبة الأحداث المعالجة لكل نافذة.
مقاييس الأعمال: التحويل إلى «نقطة القيمة» في مقابل الحمل الزائد أمر طبيعي.
الأنماط المضادة
«كل شيء أساسي»: تصبح التمديدات إلزامية، ويصبح التدهور مستحيلًا.
كسر تغييرات MGC بدون إصدار رئيسي جديد.
الهشاشة الخفية: يعتمد المسار الحرج على التبعيات الخارجية «الثانوية» (على سبيل المثال، الدعوة المتزامنة لمكافحة الاحتيال).
الامتدادات الضمنية: لا يعرف العملاء ما يمكن تمكينه/إعاقته.
عدم إمكانية الملاحظة: النظام يتحلل «بصمت» ولا ترى أين.
أمثلة
ألف - نبذة المستخدم (REST)
MGC: 'id', 'display _ name', 'avatar _ url',' tier '.
الإضافات: "شارات []"، "روابط اجتماعية []"، "نشاط حديث []" بواسطة "؟ تشمل = '.
التدهور: عند انقضاء المهلة، امنح MGC ووصلات بالموارد المشتركة (HATEOAS/URLs).
باء - الإذن بالدفع
MGC: نتيجة الإذن (تمت الموافقة عليها/رفضها)، «المعاملة _ id»، «المبلغ»، «العملة».
الامتدادات: القياس عن بعد 3DS، معدل المخاطر، geo، إسناد الشريك - غير متزامن بدفع الحدث. مأذون به '.
التدهور: إذا فشلت التحليلات، يذهب الدفع، ويلحق التدقيق/التسجيل.
باء - اقتباسات التيار
MGC: أحدث سعر «لقطة».
الامتدادات: عمق زجاجي، مؤشرات مجمعة - تدفق بعد لقطة.
التحلل: تحت الحمل، ينخفض تكرار تحديثات التمديد، لكن اللقطة مستقرة.
الإصدار والتطور
أولاً إضافي: حقول جديدة «اختيارية/غير قابلة للإلغاء»، تبقى الحقول القديمة.
الإصدارات الدلالية: 'v1' للنواة ؛ 'v1. ' v2 '- عندما تتغير MGC.
العقود في الرمز: JSON Schema/Protobuf + CI التحقق من صحة «عدم كسر» الانتشار.
السلامة والامتثال
تم توقيع/مصادقة MGC: الحد الأدنى من مجموعة الحقول له سلامة التشفير.
أقل امتياز: الوصول إلى الإثراء حسب النطاقات الفردية.
PII/financial data: take out in extensions, key separation and TTL.
قابلية الملاحظة والتصحيح
البادئات المترية: "النواة. الطلب. المدة '،' enh. مرفق. load_time'، 'دفعة. تأخر ".
أخذ العينات: 100٪ سجلات للأخطاء الأساسية ؛ تمديد العينة.
ميزة القياس عن بعد للأعلام: يمكنك معرفة الملحقات التي يتم تمكينها للعملاء.
قائمة التنفيذ المرجعية (قصيرة)
- حددت MGC ووثقت.
- يتم الإعلان عن التمديدات عبر القدرات/الأعلام.
- تم تكوين SLO/QoS/قوائم الانتظار حسب الطبقة.
- تم اختبار التحلل عن طريق اختبارات الفوضى.
- تطور المخططات مضاف فقط دون «فترات راحة».
- المقاييس/المسارات/الجذوع متعددة الطبقات.
- وثائق للعملاء لتمكينهم من التمديد.
التعليمات
هل الهرم العكسي يحل محل العمارة ذات الطبقات ؟
لا ، ليس كذلك هذا مبدأ متعامد: كيفية تقديم الوظائف وتحديد أولوياتها على الطبقات المألوفة.
متى لا تتقدم ؟
في الحزم غير المتصلة بالإنترنت، حيث يكون التسليم الجزئي بلا معنى (بروتوكولات التشفير مع الذرة)، أو عندما تكون جميع الحقول حرجة بنفس القدر.
ما الذي يختلف عن التدهور الرشيق ؟
يتوقع الهرم العكسي في البداية الحد الأدنى الكافي من العقد وأولوياته، ولا يحاول إنقاذ النظام المثقل بالفعل «بعد الواقعة».
النتيجة
يساعد نموذج الهرم العكسي في بقاء العمارة والبروتوكولات مفيدة تحت أي حمل: الشيء الرئيسي هو الأول وبالتأكيد ؛ الباقي إن أمكن يؤدي هذا إلى زيادة توافر المسار الحرج، وتسريع عرض الميزات وتبسيط التطور دون حدوث أعطال.