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