การจัด Orchestration ในระบบคลาวด์ใน OmniLab ATS

แอป Cloud Orchestration มี วิธีที่มีประสิทธิภาพสูงและปรับขนาดได้ในการจัดการอินสแตนซ์ Cuttlefish โดยเฉพาะอย่างยิ่ง สำหรับอุปกรณ์เสมือน (CHD) ที่ใช้ ARM OmniLab ATS รองรับ Cloud Orchestration เพื่อให้คุณเรียกใช้การทดสอบในอุปกรณ์เสมือนได้ ก่อนเริ่มใช้อุปกรณ์เสมือน ให้ทำตาม OmniLab Android Test Station เพื่อติดตั้ง OmniLab ATS

ภาพรวม

Cloud Orchestration ช่วยให้ OmniLab ATS มอบหมายการจัดการอินสแตนซ์ Cuttlefish ให้กับบริการ Cloud Orchestrator โดยเฉพาะ แนวทางนี้มีข้อดีหลายประการเหนือโหมดโลคัลและโหมดระยะไกลที่มีอยู่ ขณะเดียวกันก็ยังคงประสบการณ์การใช้งานที่คุ้นเคยไว้

  • การเปิดใช้อินสแตนซ์แบบขนาน: อนุญาตให้เปิดใช้อินสแตนซ์ Cuttlefish หลายรายการพร้อมกัน ซึ่งช่วยลดเวลาที่ใช้ในการเตรียมการก่อนเริ่มการทดสอบได้อย่างมาก
  • ความสามารถในการปรับขนาด: เหมาะสำหรับสภาพแวดล้อมการทดสอบขนาดใหญ่
  • การแยกทรัพยากร: แยกสภาพแวดล้อมการดำเนินการทดสอบ (ATS Worker) ออกจากสภาพแวดล้อมการจำลองอุปกรณ์

สิ่งที่ต้องมีก่อน

  • เครื่องโฮสต์ที่เรียกใช้ Docker ได้
  • สิทธิ์เข้าถึงอิมเมจ Docker ของ Cuttlefish Orchestration

ตั้งค่าบริการ Cloud Orchestrator

บริการ Cloud Orchestrator จะจัดการวงจรชีวิตของอินสแตนซ์ Cuttlefish คุณสามารถติดตั้งใช้งานบริการในสภาพแวดล้อมต่างๆ ได้ และบริการนี้รองรับทั้งสถาปัตยกรรม x86 และ ARM

  • โฮสต์เดียวกับ ATS Worker: ทำงานในคอนเทนเนอร์ Docker บนเครื่องเดียวกัน
  • เครื่องแยกต่างหาก: ทำงานบนเซิร์ฟเวอร์ในองค์กรที่เรียกใช้ Docker ได้
  • อินสแตนซ์ระบบคลาวด์: ทำงานบนเครื่องเสมือนในสภาพแวดล้อมระบบคลาวด์ เช่น Google Compute Engine

ติดตั้งและตั้งค่าบริการ

ทำตามไฟล์ README ของ Cloud Android Orchestration เพื่อเปิดใช้บริการ

การตรวจสอบสิทธิ์และสิทธิ์

หากบริการ Cloud Orchestrator ทำงานบนเครื่องระยะไกล ให้ตรวจสอบว่าโฮสต์ ATS Worker มีสิทธิ์ที่จำเป็นในการเข้าถึงบริการผ่านคำขอ HTTP หากไม่ได้รับอนุญาตให้เชื่อมต่อผ่าน HTTP คุณอาจต้องตั้งค่าการส่งต่อพอร์ต SSH ดูรายละเอียดได้ที่ ลองใช้ Cloud Orchestrator

สถานะที่คาดไว้

หลังจากเริ่มบริการ Cloud Orchestrator สำเร็จแล้ว ควรเข้าถึงบริการได้โดยใช้ HTTP คุณสามารถตรวจสอบสถานะได้โดยการค้นหา API ของบริการ

  • Ping บริการ: คุณควรเข้าถึงปลายทางของบริการจากโฮสต์ ATS Worker ของ OmniLab ได้ ตัวอย่างเช่น การเรียกใช้ curl -I http://localhost:8080/v1/zones/local/hosts ควรแสดงการตอบกลับ HTTP ที่สำเร็จ (ทั้ง HTTP/1.1 200 OK หรือการเปลี่ยนเส้นทาง 302 Found ไปยัง /username) ซึ่งยืนยันว่าบริการทำงานอยู่และเข้าถึงได้

กำหนดค่า OmniLab ATS สำหรับ Cloud Orchestration

ก่อนเริ่ม OmniLab ATS ให้ตรวจสอบว่าอินสแตนซ์ Cuttlefish ทั้งหมดในโฮสต์ ATS Worker ของ OmniLab หยุดทำงานแล้ว OmniLab ATS จะเปิดและหยุดอุปกรณ์เสมือนโดยอัตโนมัติตลอดวงจรการทดสอบ และอินสแตนซ์ Cuttlefish ที่มีอยู่จะขัดแย้งกับอินสแตนซ์ที่จัดการโดย OmniLab ATS ดูรายละเอียดเกี่ยวกับการหยุด อินสแตนซ์ Cuttlefish ได้ที่ หยุด Cuttlefish

หากต้องการเปิดใช้ Cloud Orchestration ใน OmniLab ATS ให้ส่งแฟล็กเฉพาะเมื่อเริ่ม OmniLab ATS ดังนี้

mtt start --use_cloud_orchestrator \
  --cloud_orchestrator_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network
  • --use_cloud_orchestrator: เปิดใช้ฟีเจอร์ Cloud Orchestration
  • --cloud_orchestrator_service_url: ระบุ URL ที่บริการ Cloud Orchestrator กำลังรอรับการเชื่อมต่อ เช่น http://localhost:8080
  • --max_local_virtual_devices: กำหนดจำนวนสูงสุดของอุปกรณ์เสมือนที่ OmniLab ATS จัดสรรได้พร้อมกัน จำนวนเริ่มต้นคือ 0
  • --use_host_network: ใช้เนมสเปซเครือข่ายของโฮสต์สำหรับคอนเทนเนอร์ คุณต้องใช้แฟล็กนี้เพื่อเข้าถึงบริการ Cloud Orchestrator

เรียกใช้การทดสอบด้วยอุปกรณ์ที่จัดระเบียบโดยระบบคลาวด์

ส่วนนี้อธิบายขั้นตอนในการเรียกใช้การทดสอบในอุปกรณ์เสมือนที่จัดระเบียบโดยระบบคลาวด์

เลือกอุปกรณ์

ในรายการอุปกรณ์ OmniLab ATS จะแสดงอุปกรณ์เสมือนที่จัดระเบียบโดยระบบคลาวด์เป็นตัวยึดตำแหน่งแทนหมายเลขซีเรียลจริง ตัวยึดตำแหน่งจะแสดง ในรูปแบบของ HOSTNAME:PORT (เช่น thehostname:6520) โดยสถานะจะเป็น พร้อมใช้งาน หรือจัดสรรแล้ว ตัวยึดตำแหน่งในสถานะพร้อมใช้งาน แสดงว่าอุปกรณ์เสมือนจริงไม่ได้ทำงานและจัดสรรให้กับการทดสอบได้

เลือกอุปกรณ์ที่จัดระเบียบในระบบคลาวด์

รูปที่ 1 การเลือกอุปกรณ์เสมือนที่จัดระเบียบโดยระบบคลาวด์

เพิ่มการทำงานของอุปกรณ์

เมื่อกำหนดเวลาการทดสอบในอุปกรณ์เหล่านี้ ATS จะเพิ่มการทำงานของอุปกรณ์ที่จำเป็นโดยอัตโนมัติเพื่อจัดเตรียมและจัดการอินสแตนซ์ Cuttlefish ระหว่างวงจรการทดสอบ

การดำเนินการของอุปกรณ์อัตโนมัติ

รูปที่ 2 การทำงานของอุปกรณ์อัตโนมัติ

ตั้งค่าทรัพยากรการทดสอบ

เมื่อกำหนดเวลาการทดสอบ คุณต้องระบุทรัพยากรการทดสอบที่จำเป็น ในส่วนตั้งค่าทรัพยากรการทดสอบ ให้ตรวจสอบว่าคุณได้แมปไฟล์ที่อัปโหลดกับชื่อทรัพยากรที่ถูกต้องแล้ว ดังนี้

  • แมปแพ็กเกจเครื่องมือโฮสต์ เช่น cvd-host_package.tar.gz กับชื่อ cvd_host_package
  • แมปไฟล์ ZIP ของอิมเมจอุปกรณ์กับชื่อ cvd_device_image

ทรัพยากรการทดสอบสำหรับการจัด Orchestrate ในระบบคลาวด์

รูปที่ 3 การแมปทรัพยากรการทดสอบ

ดูการเรียกใช้และการบันทึกการทดสอบ

หลังจากที่การทดสอบเสร็จสมบูรณ์แล้ว คุณจะดูบันทึกได้ในส่วนไฟล์เอาต์พุต บันทึกเฉพาะที่รวบรวมไว้สำหรับอินสแตนซ์ที่จัดการโดย Cloud Orchestrator ได้แก่

  • launcher.log: บันทึกจากตัวเปิดใช้ Cuttlefish
  • kernel.log: บันทึกเคอร์เนล Android มาตรฐาน