عن المشروع
هذا المستودع يوضح كيفية بناء حل تحليلات منخفض الكمون لحركة مرور الويب على منصة Google Cloud. تتكون الهندسة المعمارية من أربعة أجزاء رئيسية:
1. **استهلاك الأحداث** – موضوع Pub/Sub يتلقى رسائل تدفق النقرات التي يولدها مولد أحداث بسيط بلغة Python. يوفر Pub/Sub حافلة رسائل دائمة ومتاحة عالمياً تفصل بين المنتجين والمستهلكين.
2. **المعالجة المتدفقة** – خط أنابيب Apache Beam يعمل على Dataflow (runner=DataflowRunner) في وضع البث. يقرأ الخط أنابيب الأحداث من Pub/Sub، يستخرج الحقول ذات الصلة ويحدّث عدادات المقاييس في Cloud Memorystore (Redis). يُستخدم Redis كمخزن في الذاكرة لأن أوامره الأصلية للمجموعات وHyperLogLog (`SCARD`, `SINTERSTORE`, `PFADD`, `PFCOUNT`) تجعل عد الزوار الفريدين والتحليلات القائمة على المجموعات فعّالة جداً.
3. **مخزن المقاييس** – Cloud Memorystore (Redis) يحتفظ بالمقاييس في الوقت الحقيقي. من خلال الاستفادة من هياكل البيانات المدمجة في Redis، يتجنب الحل كتابة كود تجميع مخصص ويحقق زمن استجابة أقل من الثانية.
4. **التصوير** – تطبيق Spring Boot (الموجود في مجلد `dashboard/`) يتصل بـ Redis عبر عميل Jedis، يقرأ القيم المجمعة ويعرضها باستخدام Google Charts. توفر الواجهة تحديثاً تلقائياً، مما يسمح للمسوقين أو المشغلين بمراقبة مؤشرات الأداء الرئيسية مثل المستخدمين النشطين، مشاركة التجارب، معدلات التحويل، وتداخل المستخدمين.
يتضمن المستودع سكريبتات وتعليمات لـ:
- إعداد خدمات GCP المطلوبة (Pub/Sub، Dataflow، Memorystore، Cloud Storage، شبكة VPC).
- نشر خط أنابيب Dataflow باستخدام Maven.
- تشغيل مولد الأحداث الوهمي في بيئة افتراضية Python.
- تشغيل لوحة التحكم Spring Boot خلف جهاز افتراضي وكيل للوصول إلى Redis المقيد بـ VPC.
- عرض لوحة التحكم الحية عبر معاينة الويب في Cloud Shell.
جميع المكونات هي خدمات مُدارة بالكامل، لذا يتوسع الحل تلقائياً ويتطلب حدًا أدنى من الجهد التشغيلي. وهو عبارة عن مجموعة بدء سريعة لأي شخص يحتاج إلى تحليلات ويب في الوقت الحقيقي، مراقبة اختبارات A/B، أو أي تقارير KPI تعتمد على تدفق النقرات على GCP.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.