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

توفّر منصة محاكاة بيانات القياس عن بُعد للمركبات المحدّدة بالبرامج (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 API.

  • تفاعل المستخدم: يمكنك استخدام العرض التوضيحي على الويب المقدَّم أو تطبيق مخصّص أو التفاعل مباشرةً مع نقاط نهاية واجهة برمجة التطبيقات.
  • طبقة التنسيق:
    • 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 لكل محاكاة، ويشغّل الجهاز الافتراضي حاوية Docker simulation-agent.
    • تسحب simulation-agent ملفات الإدخال من Cloud Storage، وتبدأ مثيل SDV، وتدير التفاعلات مع الجهاز الافتراضي Cuttlefish لتنفيذ محاكي القياس عن بُعد واسترداد البيانات الناتجة.
  • الصيانة (Cloud Scheduler): يتم تشغيل مهمة مجدوَلة بشكل دوري لتنظيف أي موارد غير مرتبطة (مثل الأجهزة الافتراضية التي تعذّر تشغيلها أو إدخالات قاعدة البيانات القديمة) لمنع تسرُّب الموارد.

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

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

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