انتقل إلى المحتوى

الدليل التشغيلي (SRE Playbook) لمنصة لبيب

غرفة التحكم

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

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


مقدمة: ما هو هدف منصة لبيب؟

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

نظرة عامة على المنصة

ما يمكنك القيام به من هنا

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

sequenceDiagram
  autonumber
  participant SCR as خدمة الجلب (Scraper)
  participant API as واجهة API
  participant OS as محرك البحث (OpenSearch)
  participant AI as خدمة الذكاء (AI-Box)
  SCR->>API: POST /ingest (دفعة بيانات)
  API->>OS: فهرسة
  API->>AI: إعادة ترتيب/إثراء (غير متزامن)
  API-->>Client: نتائج البحث

المسار الاحتياطي

إذا كانت خدمة AI-Box بطيئة، قم بتقديم النتائج الأساسية فوراً وتحوط لعملية إعادة الترتيب: انظر API ▸ دفتر التشغيل.

مبادئ SRE الأساسية

تسترشد فلسفتنا التشغيلية بهذه المبادئ الأساسية:

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

الخدمات الأساسية

تتكون المنصة من أربع خدمات مصغرة أساسية، لكل منها مسؤولية تشغيلية مميزة.

  • خدمة API


    الجهاز العصبي المركزي. تطبيق Laravel يتولى جميع عمليات استمرارية البيانات، تنسيق مهام الذكاء الاصطناعي، وطلبات API المواجهة للعميل.

    اذهب إلى تفاصيل الخدمة

  • خدمة جلب البيانات (Scraper)


    محرك جلب البيانات. خدمة FastAPI تعتمد على ملفات تعريف لجلب وتسوية المقالات من مجموعة واسعة من المصادر.

    اذهب إلى تفاصيل الخدمة

  • خدمة الذكاء (AI-Box)


    النواة الذكية. خدمة FastAPI تستضيف نماذج الذكاء الاصطناعي للتحقق من الجدارة الإخبارية، التعرف على الكيانات المسماة (NER)، واسترجاع البحث الدلالي.

    اذهب إلى تفاصيل الخدمة

  • خدمة البحث


    العمود الفقري للاسترجاع. عنقود OpenSearch يوفر قدرات بحث نصي ومتجهي سريعة وقابلة للتوسع.

    اذهب إلى تفاصيل الخدمة


المصطلحات: شرح مبسط للخدمات

لفهم كيفية عمل المنصة، إليك شرح مبسط للمكونات الأساسية بلغة غير تقنية:

المصطلح (الخدمة) المعنى بالعربية (ببساطة) دوره في المنصة
AI-Box "العقل المفكر" هو الجزء الذكي من النظام. يقوم بتحليل المقالات، التحقق من صحتها، واستخلاص المعلومات الهامة مثل الشخصيات والأماكن.
API Service "المنسق العام" هو مركز التحكم الذي يدير جميع العمليات. يستقبل البيانات من خدمة الجلب، يرسلها للتحليل في "العقل المفكر"، ويخزنها بشكل منظم.
Scraper Service "جامع البيانات" مهمته هي تصفح الإنترنت ومصادر الأخبار المختلفة لجمع المقالات والمحتوى الخام وإرساله إلى المنصة للمعالجة.
Search Service "أمين المكتبة" هو المسؤول عن تنظيم كل المعلومات التي تم جمعها وتحليلها، مما يتيح البحث عنها والعثور عليها بسرعة فائقة.

نظرة سريعة على بنية النظام

تتدفق البيانات عبر النظام في مسار محدد جيدًا وقابل للمراقبة. تقوم خدمة Scraper بجلب المحتوى الخام، وتقوم API بتنسيق معالجته وتخزينه، وتقوم AI-Box بإثرائه بالرؤى، ويجعله OpenSearch قابلاً للبحث الفوري.

flowchart LR
    classDef ext fill:#e0f2fe,stroke:#0ea5e9,stroke-width:1px;
    classDef svc fill:#f8fafc,stroke:#64748b,stroke-width:1px;
    classDef store fill:#f0fdf4,stroke:#22c55e,stroke-width:1px;

    subgraph "مصادر البيانات"
        direction LR
        NEWS[مواقع وخلاصات إخبارية خارجية]:::ext
    end

    subgraph "منصة لبيب"
        SCR[(خدمة الجلب Scraper)]:::svc
        API[(واجهة API)]:::svc
        AIB[(خدمة الذكاء AI-Box)]:::svc
        OS[(محرك البحث OpenSearch)]:::store
        PG[(قاعدة بيانات PostgreSQL)]:::store
    end

    NEWS --> SCR
    SCR -- "جلب دفعات بيانات" --> API
    API -- "تخزين البيانات الوصفية" --> PG
    API -- "فهرسة للبحث" --> OS
    API -- "إرسال مهام الإثراء" --> AIB
    AIB -- "جلب بيانات للتحليل" --> OS
    AIB -- "كتابة بيانات الإثراء" --> API

شاهد مخططات البنية الهندسية التفصيلية


دليل التشغيل السريع للمشغلين

يوفر هذا الدليل الأوامر الأساسية لتشغيل حزمة لبيب محليًا للتطوير والاختبار.

الهدف: بناء وتهيئة المنصة بأكملها من نسخة جديدة.

  1. تكوين البيئة: أنشئ ملف .env المحلي الخاص بك من القالب. تحتاج إلى القيام بذلك مرة واحدة فقط.

    cp .env.example .env
    

  2. بناء وبدء الخدمات: قم ببناء صور Docker وابدأ جميع الخدمات في الخلفية.

    docker compose up -d --build
    

  3. تهيئة قاعدة البيانات: قم بتشغيل عمليات ترحيل قاعدة بيانات Laravel لإنشاء الجداول المطلوبة.

    docker compose exec api php artisan migrate
    

  4. إعداد فهرس البحث: قم بإعداد فهارس OpenSearch ومسارات المعالجة والقوالب المطلوبة.

    bash tools/search/install.sh
    

  5. التحقق من التشغيل: قم بتشغيل اختبار التحقق الشامل (smoke test) للتأكد من أن جميع الخدمات تعمل بشكل صحيح.

    bash tools/search/smoke.sh
    

الهدف: العمل على المنصة بشكل يومي.

  1. سحب آخر التغييرات:

    git pull origin main
    

  2. بدء الخدمات: ابدأ جميع الخدمات في الخلفية. لا يلزم إعادة البناء إلا إذا تغير Dockerfile أو الاعتماديات.

    docker compose up -d
    

  3. تشغيل الاختبارات المحلية: قبل الإيداع (commit)، قم بتشغيل مجموعات الاختبار المحلية للخدمة التي تعمل عليها.

    # مثال لخدمة جلب البيانات
    cd scraper && pytest
    

  4. عرض السجلات: تابع سجلات خدمة معينة لتصحيح الأخطاء.

    docker compose logs -f api
    


أدلة التشغيل الرئيسية

تم تنظيم هذه الوثائق في أدلة قابلة للتنفيذ لمساعدتك على تشغيل النظام بفعالية.