محاكاة بيانات قياس إحصاءات السحابة الإلكترونية عن بُعد

توفّر منصة محاكاة قياس بيانات المركبات السحابية (SDV) بنية تحتية قابلة للتوسّع وحسب الطلب لتشغيل عمليات محاكاة قياس بيانات المركبات على Google Cloud.

يتيح لك النظام محاكاة حملات قياس بيانات الاستخدام من بيئة Android Automotive افتراضية (Cuttlefish) بدون أجهزة فعلية. وتدير هذه الخدمة دورة حياة المحاكاة من خلال تلقّي الطلبات وإنشاء أجهزة افتراضية مؤقتة في Compute Engine وتشغيل عمليات المحاكاة داخل حاويات Docker وجمع النتائج وتحميلها إلى Cloud Storage وحذف الموارد.

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

الغرض والإمكانات

ينسّق النظام دورة حياة المحاكاة ويجرّد إدارة البنية التحتية الأساسية.

  • قابلية التوسّع عند الطلب: ينشئ النظام موارد (أجهزة افتراضية في Compute Engine) لمدة المحاكاة فقط لتوفير تكلفة مستندة إلى الاستخدام.
  • إدارة التزامن: يفرض النظام حدًا قابلاً للضبط على عمليات المحاكاة المتوازية (على سبيل المثال، 5 عمليات تلقائيًا). يضع النظام الطلبات الزائدة في قائمة انتظار ويجدولها تلقائيًا عندما تصبح خانات متاحة.
  • البنية المستندة إلى الأحداث: يستخدم النظام Cloud Functions وPub/Sub لتنظيم سير العمل بشكل منفصل ومرن، ويشمل ذلك معالجة الطلبات والجدولة والإنهاء والتنظيف.
  • إدارة الحالة المدمجة: يستخدم النظام قاعدة بيانات Firestore لتتبُّع الحالة المباشرة وإعدادات كل محاكاة (على سبيل المثال، PENDING أو RUNNING أو COMPLETED أو FAILED).
  • إدارة العناصر: يتعامل النظام تلقائيًا مع تنزيل ملفات الإدخال المطلوبة وتحميل جميع نتائج المحاكاة (مثل التقارير والسجلات وتقارير الأخطاء وملفات Logcat) إلى Cloud Storage.
  • تنظيف الموارد: تمنع مهمة Cloud Scheduler مبرمَجة تسريب الموارد من خلال تنظيف الآلات الافتراضية أو إدخالات قاعدة البيانات غير المرتبطة بأي عنصر.

هندسة معمارية

يستخدم النظام بنية أساسية بلا خادم تعتمد على الأحداث مع العديد من خدمات Google Cloud. يمكنك التفاعل مع النظام باستخدام واجهة مستخدم على الويب أو واجهة برمجة تطبيقات REST.

  • تفاعل المستخدم: يمكنك استخدام العرض التوضيحي على الويب المقدَّم أو تطبيق مخصّص أو التفاعل مباشرةً مع نقاط نهاية واجهة برمجة التطبيقات.
  • طبقة التنسيق:
    • read-simulation: تتيح لك هذه الدالة طلب البحث عن عمليات المحاكاة وعدد الأجهزة الافتراضية التي يتم تشغيلها والحد الأقصى لعدد الأجهزة الافتراضية التي يتم تشغيلها في الوقت نفسه.
    • receive-request: يتحقّق النظام من صحة الطلبات استنادًا إلى قائمة سماح صارمة لبصمات الصور وينشرها في Pub/Sub.
    • schedule-simulation: يتم تشغيل هذه الدالة من خلال Eventarc استنادًا إلى رسائل Pub/Sub أو تغييرات Firestore. يتحقّق من الحدّ الأقصى للتزامن ويوفر الآلات الافتراضية.
    • finish-simulation: يستدعي الوكيل هذه الدالة في نهاية عملية التنفيذ لتعديل الحالة وبدء عملية التنظيف.
    • delete-simulation: تعالج هذه الدالة عملية الإلغاء اليدوي وعملية تنظيف الموارد.
  • إدارة الحالة (Firestore): تتتبّع قاعدة بيانات Firestore حالة كل عملية محاكاة (على سبيل المثال، PENDING أو RUNNING أو COMPLETED أو FAILED) وإعداداتها. تخزّن قاعدة البيانات هذه جميع بيانات تنفيذ المحاكاة.
  • تخزين البيانات (Cloud Storage): يخزّن النظام جميع الملفات ذات الصلة بالمحاكاة في حزمة Cloud Storage. ويشمل ذلك ملفات إعدادات الإدخال وتقارير الإخراج وسجلّات جهاز Cuttlefish وتقارير الأخطاء وملفات Logcat.
  • طبقة التنفيذ (Compute Engine):
    • تنشئ الدالة schedule-simulation جهازًا افتراضيًا على Compute Engine لكل عملية محاكاة. يشغّل الجهاز الافتراضي simulation-agent حاوية Docker.
    • تسحب أداة simulation-agent ملفات الإدخال من Cloud Storage، وتبدأ مثيل SDV، وتدير التفاعلات مع جهاز Cuttlefish الافتراضي لتنفيذ محاكي القياس عن بُعد واسترداد البيانات الناتجة.
  • الصيانة (Cloud Scheduler): يتم تشغيل مهمة مجدوَلة بشكل دوري لتنظيف أي موارد غير مرتبطة (مثل الأجهزة الافتراضية التي تعذّر تشغيلها أو إدخالات قاعدة البيانات القديمة) لمنع تسرُّب الموارد.

الخطوات التالية

لبدء استخدام "محاكاة قياس استخدام الخدمات السحابية"، راجِع الأدلة التالية:

  • دليل النشر: تعرَّف على كيفية إعداد البنية الأساسية وإنشاء برنامج المحاكاة.
  • دليل المستخدم: تعرَّف على كيفية إجراء عمليات المحاكاة باستخدام العرض التوضيحي على الويب أو واجهة REST API.