แพลตฟอร์มการจำลองระบบคลาวด์สำหรับการวัดและส่งข้อมูลทางไกลของยานพาหนะที่กำหนดโดยซอฟต์แวร์ (SDV) มีโครงสร้างพื้นฐานแบบออนดีมานด์ที่ปรับขนาดได้เพื่อเรียกใช้การจำลองการวัดและส่งข้อมูลทางไกลของยานพาหนะ ใน Google Cloud
ระบบช่วยให้คุณจำลองแคมเปญการวัดและส่งข้อมูลจากสภาพแวดล้อม Android Automotive เสมือน (Cuttlefish) ได้โดยไม่ต้องใช้ฮาร์ดแวร์จริง โดยจะจัดระเบียบวงจรการจำลองด้วยการรับคำขอ สร้างเครื่องเสมือน (VM) ของ Compute Engine ชั่วคราว เรียกใช้การจำลองภายในคอนเทนเนอร์ Docker รวบรวมและอัปโหลดผลลัพธ์ไปยัง Cloud Storage รวมถึงลบทรัพยากร
แนวทางนี้เป็นแพลตฟอร์มที่คุ้มค่าและปรับขนาดได้สูงสำหรับการทดสอบไปป์ไลน์การวัดและส่งข้อมูล เนื่องจากจะใช้ทรัพยากรเฉพาะในระหว่างการดำเนินการจำลองเท่านั้น
วัตถุประสงค์และความสามารถ
ระบบจะจัดระเบียบวงจรการจำลองและสรุปการจัดการโครงสร้างพื้นฐานที่เกี่ยวข้อง
- ความสามารถในการปรับขนาดตามต้องการ: ระบบจะสร้างทรัพยากร (VM ของ Compute Engine ) เฉพาะในช่วงระยะเวลาของการจำลองเพื่อคิดต้นทุนตามการใช้งาน
- การจัดการการทำงานพร้อมกัน: ระบบจะบังคับใช้ขีดจำกัดที่กำหนดค่าได้กับการจำลองแบบคู่ขนาน (เช่น 5 รายการโดยค่าเริ่มต้น) ระบบจะจัดคิวคำขอที่เกินขีดจำกัดและกำหนดเวลาคำขอเหล่านั้นโดยอัตโนมัติเมื่อมีช่องว่าง
- สถาปัตยกรรมแบบขับเคลื่อนด้วยเหตุการณ์: ระบบใช้ Cloud Functions และ Pub/Sub สำหรับการจัดเวิร์กโฟลว์ที่แยกจากกันและมีความยืดหยุ่น ซึ่ง รวมถึงการจัดการคำขอ การกำหนดเวลา การสรุป และการล้างข้อมูล
- การจัดการสถานะแบบผสานรวม: ระบบใช้ฐานข้อมูล Firestore เพื่อ
ติดตามสถานะสดและการกำหนดค่าของการจำลองทุกรายการ (เช่น
PENDING,RUNNING,COMPLETEDหรือFAILED) - การจัดการอาร์ติแฟกต์: ระบบจะจัดการการดาวน์โหลดไฟล์อินพุตที่จำเป็นและอัปโหลดเอาต์พุตการจำลองทั้งหมด (เช่น รายงาน บันทึก รายงานข้อบกพร่อง และไฟล์ Logcat) ไปยัง Cloud Storage โดยอัตโนมัติ
- การล้างข้อมูลทรัพยากร: งาน Cloud Scheduler ที่เป็นแบบอัตโนมัติจะป้องกันไม่ให้ทรัพยากรรั่วไหลโดยการล้างข้อมูล VM หรือรายการฐานข้อมูลที่ไม่มีเจ้าของ
สถาปัตยกรรม
ระบบใช้สถาปัตยกรรมแบบ Serverless ที่ขับเคลื่อนด้วยเหตุการณ์ร่วมกับบริการต่างๆ ของ Google Cloud คุณโต้ตอบกับระบบได้โดยใช้ UI บนเว็บหรือ REST API
- การโต้ตอบของผู้ใช้: คุณสามารถใช้เว็บเดโมที่ให้ไว้ แอปพลิเคชันที่กำหนดเอง หรือโต้ตอบกับปลายทาง API โดยตรง
- เลเยอร์การประสานงาน:
read-simulation: ฟังก์ชันนี้ช่วยให้คุณค้นหาการจำลอง จำนวน VM ที่ทำงาน และจำนวนสูงสุดของ VM ที่กำหนดค่าให้ทำงานพร้อมกันได้receive-request: ระบบจะตรวจสอบคำขอเทียบกับรายการที่อนุญาตแบบเข้มงวด ของลายนิ้วมือของรูปภาพ แล้วเผยแพร่ไปยัง Pub/Subschedule-simulation: Eventarc จะทริกเกอร์ฟังก์ชันนี้ตามข้อความ Pub/Sub หรือการเปลี่ยนแปลง Firestore โดยจะตรวจสอบขีดจำกัด การทำงานพร้อมกันและจัดสรร VMfinish-simulation: ตัวแทนจะเรียกใช้ฟังก์ชันนี้เมื่อสิ้นสุดการเรียกใช้ เพื่ออัปเดตสถานะและทริกเกอร์การล้างข้อมูลdelete-simulation: ฟังก์ชันนี้จัดการการยกเลิกด้วยตนเองและการล้างข้อมูล ทรัพยากร
- การจัดการสถานะ (Firestore): ฐานข้อมูล Firestore จะติดตามสถานะ
(เช่น
PENDING,RUNNING,COMPLETEDหรือFAILED) และ การกำหนดค่าของการจำลองทุกครั้ง ฐานข้อมูลนี้จะจัดเก็บข้อมูลการจำลอง การดำเนินการทั้งหมด - ที่เก็บข้อมูล (Cloud Storage): ระบบจะจัดเก็บไฟล์ทั้งหมดที่เกี่ยวข้องกับการจำลองไว้ในที่เก็บข้อมูล Cloud Storage ซึ่งรวมถึงไฟล์การกำหนดค่าอินพุต รายงานเอาต์พุต บันทึกจากอุปกรณ์ Cuttlefish รายงานข้อบกพร่อง และไฟล์ Logcat
- เลเยอร์การดำเนินการ (Compute Engine):
- ฟังก์ชัน
schedule-simulationจะสร้าง VM ของ Compute Engine สำหรับ การจำลองแต่ละครั้ง VM เรียกใช้คอนเทนเนอร์ Dockersimulation-agent simulation-agentจะดึงไฟล์อินพุตจาก Cloud Storage เริ่มอินสแตนซ์ SDV และจัดการการโต้ตอบกับอุปกรณ์เสมือน Cuttlefish เพื่อเรียกใช้เครื่องจำลองการวัดและส่งข้อมูล และดึงข้อมูลผลลัพธ์
- ฟังก์ชัน
- การบำรุงรักษา (Cloud Scheduler): งานที่กำหนดเวลาไว้จะทำงานเป็นระยะๆ เพื่อ ล้างทรัพยากรที่ไม่มีเจ้าของ (เช่น VM ที่ล้มเหลวหรือฐานข้อมูลที่ล้าสมัย รายการ) เพื่อป้องกันการรั่วไหลของทรัพยากร
ขั้นตอนถัดไป
หากต้องการเริ่มต้นใช้งานการจำลองข้อมูลการวัดและส่งข้อมูลของ Cloud โปรดดูคำแนะนำต่อไปนี้
- คู่มือการติดตั้งใช้งาน: ดูวิธีตั้งค่าโครงสร้างพื้นฐานและสร้าง เอเจนต์จำลอง
- คู่มือผู้ใช้: ดูวิธีเรียกใช้การจำลองโดยใช้เว็บเดโมหรือ REST API