แพลตฟอร์มการจำลองการตรวจวัดระยะไกลในระบบคลาวด์ของยานพาหนะที่กำหนดโดยซอฟต์แวร์ (SDV) มีโครงสร้างพื้นฐานที่ปรับขนาดได้ตามต้องการเพื่อเรียกใช้การจำลองการตรวจวัดระยะไกลของยานพาหนะใน Google Cloud
ระบบช่วยให้คุณจำลองแคมเปญการตรวจวัดระยะไกลจากสภาพแวดล้อม Android Automotive เสมือน (Cuttlefish) ได้โดยไม่ต้องใช้ฮาร์ดแวร์จริง โดยจะจัดการวงจรการจำลองด้วยการรับคำขอ สร้างเครื่องเสมือน (VM) ของ Compute Engine ชั่วคราว เรียกใช้การจำลองภายในคอนเทนเนอร์ Docker รวบรวมและอัปโหลดผลลัพธ์ไปยัง Cloud Storage และลบทรัพยากร
แนวทางนี้เป็นแพลตฟอร์มที่คุ้มค่าและปรับขนาดได้สูงสำหรับการทดสอบไปป์ไลน์การตรวจวัดระยะไกล เนื่องจากจะใช้ทรัพยากรระหว่างการดำเนินการจำลองเท่านั้น
วัตถุประสงค์และความสามารถ
ระบบจะจัดระเบียบวงจรการจำลองและสรุปการจัดการโครงสร้างพื้นฐานที่เกี่ยวข้อง
- ความสามารถในการปรับขนาดแบบออนดีมานด์: ระบบจะสร้างทรัพยากร (Compute Engine VM) เฉพาะในช่วงระยะเวลาของการจำลองเพื่อให้ต้นทุนตามการใช้งาน
- การจัดการการทำงานพร้อมกัน: ระบบจะบังคับใช้ขีดจำกัดที่กำหนดค่าได้ในการจำลองแบบขนาน (เช่น 5 รายการโดยค่าเริ่มต้น) โดยจะจัดคิวคำขอที่เกินมาและกำหนดเวลาโดยอัตโนมัติเมื่อมีช่องว่าง
- สถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์: ระบบใช้ Cloud Functions และ Pub/Sub สำหรับการจัดการเวิร์กโฟลว์ที่แยกส่วนและยืดหยุ่น ซึ่งรวมถึงการจัดการคำขอ การกำหนดเวลา การสรุป และการล้างข้อมูล
- การจัดการสถานะแบบผสานรวม: ระบบใช้ฐานข้อมูล Firestore เพื่อติดตามสถานะแบบเรียลไทม์และการกำหนดค่าของการจำลองทุกรายการ (เช่น
Simulation request received,running,completed,failedหรือcancelled) - การจัดการอาร์ติแฟกต์: ระบบจะจัดการการดาวน์โหลดไฟล์อินพุตที่จำเป็นและการอัปโหลดเอาต์พุตการจำลองทั้งหมด (เช่น รายงาน, บันทึก, รายงานข้อบกพร่อง และไฟล์ 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 จะติดตามสถานะ (เช่น
Simulation request received,running,completed,failedหรือcancelled) และการกำหนดค่าของการจำลองทุกรายการ ฐานข้อมูลนี้จะจัดเก็บข้อมูลการดำเนินการจำลองทั้งหมด - พื้นที่เก็บข้อมูล (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 ที่ไม่สำเร็จหรือรายการฐานข้อมูลที่ไม่มีการอัปเดต) เพื่อป้องกันไม่ให้ทรัพยากรรั่วไหล
ขั้นตอนถัดไป
หากต้องการเริ่มต้นใช้งานการจำลองการส่งข้อมูลทางไกลในระบบคลาวด์ โปรดดูคำแนะนำต่อไปนี้
- คู่มือการทำให้ใช้งานได้: ดูวิธีตั้งค่าโครงสร้างพื้นฐานและสร้างตัวแทนการจำลอง
- คู่มือผู้ใช้: ดูวิธีเรียกใช้การจำลองโดยใช้เดโมบนเว็บหรือ REST API