Điều phối đám mây trong OmniLab ATS

Ứng dụng Cloud Orchestration cung cấp một cách có thể mở rộng và hiệu suất cao để quản lý các phiên bản Cuttlefish, đặc biệt là đối với các thiết bị ảo dựa trên ARM (CHD). OmniLab ATS hỗ trợ tính năng Điều phối đám mây để bạn có thể chạy các bài kiểm thử trên thiết bị ảo. Trước khi bắt đầu sử dụng thiết bị ảo, hãy làm theo Trạm kiểm thử Android OmniLab để cài đặt OmniLab ATS.

Tổng quan

Cloud Orchestration cho phép OmniLab ATS uỷ quyền việc quản lý các phiên bản Cuttlefish cho một dịch vụ Cloud Orchestrator chuyên dụng. Phương pháp này mang lại một số lợi ích so với chế độ cục bộ và từ xa hiện có, đồng thời vẫn duy trì trải nghiệm quen thuộc cho người dùng:

  • Khởi chạy song song các phiên bản: Cho phép khởi chạy đồng thời nhiều phiên bản Cuttlefish, giúp giảm đáng kể thời gian hao tổn trước khi bắt đầu kiểm thử.
  • Khả năng mở rộng: Phù hợp với môi trường kiểm thử quy mô lớn.
  • Cách ly tài nguyên: Tách môi trường phiên chạy thử nghiệm (ATS worker) khỏi môi trường mô phỏng thiết bị.

Điều kiện tiên quyết

  • Một máy chủ lưu trữ có thể chạy Docker
  • Truy cập vào các hình ảnh Docker điều phối Cuttlefish

Thiết lập dịch vụ Cloud Orchestrator

Dịch vụ Cloud Orchestrator quản lý vòng đời của các phiên bản Cuttlefish. Bạn có thể triển khai dịch vụ này trong nhiều môi trường và dịch vụ này hỗ trợ cả kiến trúc x86 và ARM:

  • Cùng máy chủ với ATS worker: Chạy trong một vùng chứa Docker trên cùng một máy
  • Máy riêng biệt: Chạy trên một máy chủ tại chỗ có khả năng chạy Docker
  • Phiên bản đám mây: Chạy trên một máy ảo trong môi trường đám mây, ví dụ: Google Compute Engine

Cài đặt và thiết lập dịch vụ

Làm theo Cloud Android Orchestration README (Cloud Android Orchestration README) để chạy dịch vụ.

Xác thực và quyền

Nếu dịch vụ Cloud Orchestrator đang chạy trên một máy từ xa, hãy đảm bảo rằng máy chủ ATS worker có các quyền cần thiết để truy cập vào dịch vụ đó thông qua các yêu cầu HTTP. Nếu không được phép kết nối HTTP, bạn có thể cần thiết lập tính năng chuyển tiếp cổng SSH. Để biết thông tin chi tiết, hãy xem phần Dùng thử trình điều phối đám mây.

Trạng thái dự kiến

Sau khi dịch vụ Cloud Orchestrator khởi động thành công, bạn có thể truy cập vào dịch vụ này bằng HTTP. Bạn có thể xác minh trạng thái của ổ đĩa bằng cách truy vấn API của ổ đĩa:

  • Ping dịch vụ: Bạn có thể truy cập vào điểm cuối dịch vụ từ máy chủ lưu trữ worker ATS OmniLab. Ví dụ: việc chạy curl -I http://localhost:8080/v1/zones/local/hosts sẽ trả về một phản hồi HTTP thành công (HTTP/1.1 200 OK hoặc 302 Found chuyển hướng đến /username), xác nhận rằng dịch vụ đang hoạt động và có thể truy cập.

Định cấu hình OmniLab ATS cho Cloud Orchestration

Trước khi bắt đầu OmniLab ATS, hãy đảm bảo rằng tất cả các phiên bản Cuttlefish trên máy chủ lưu trữ worker OmniLab ATS đều đã dừng. OmniLab ATS tự động khởi chạy và dừng các thiết bị ảo trong chu kỳ kiểm thử, đồng thời các phiên bản Cuttlefish hiện có sẽ xung đột với các phiên bản do OmniLab ATS quản lý. Để biết thông tin chi tiết về cách dừng các phiên bản Cuttlefish, hãy xem phần Dừng Cuttlefish.

Để bật tính năng Điều phối đám mây trong OmniLab ATS, hãy truyền các cờ cụ thể khi bắt đầu 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: Bật tính năng Điều phối trên đám mây.
  • --cloud_orchestrator_service_url: Chỉ định URL mà dịch vụ Cloud Orchestrator đang theo dõi, ví dụ: http://localhost:8080.
  • --max_local_virtual_devices: Đặt số lượng thiết bị ảo tối đa mà ATS OmniLab có thể phân bổ đồng thời. Số mặc định là 0.
  • --use_host_network: Sử dụng không gian tên mạng của máy chủ lưu trữ cho vùng chứa. Đây là yêu cầu bắt buộc để truy cập vào dịch vụ Cloud Orchestrator.

Chạy kiểm thử bằng các thiết bị được điều phối trên đám mây

Phần này mô tả các bước để chạy một kiểm thử trên các thiết bị ảo được điều phối trên đám mây.

Một số thiết bị chọn lọc

Trong danh sách thiết bị, OmniLab ATS hiển thị các thiết bị ảo được điều phối trên đám mây dưới dạng phần giữ chỗ thay vì số sê-ri thực tế của chúng. Các phần giữ chỗ được hiển thị ở định dạng HOSTNAME:PORT (ví dụ: thehostname:6520). Các trạng thái là Available hoặc Allocated. Phần giữ chỗ ở trạng thái Có sẵn cho biết thiết bị ảo không chạy và có thể được phân bổ cho kiểm thử.

Chọn Thiết bị được điều phối trên đám mây

Hình 1. Chọn thiết bị ảo được điều phối trên đám mây.

Thêm các thao tác trên thiết bị

Khi một quy trình kiểm thử được lên lịch trên các thiết bị này, ATS sẽ tự động thêm các thao tác cần thiết trên thiết bị để cung cấp và quản lý các phiên bản Cuttlefish trong chu kỳ kiểm thử.

Hành động tự động trên thiết bị

Hình 2. Hoạt động tự động của thiết bị.

Thiết lập tài nguyên thử nghiệm

Khi lên lịch kiểm thử, bạn phải cung cấp các tài nguyên kiểm thử bắt buộc. Trong phần Set Test Resources (Đặt tài nguyên kiểm thử), hãy đảm bảo bạn liên kết các tệp đã tải lên với tên tài nguyên chính xác:

  • Ánh xạ gói công cụ lưu trữ, chẳng hạn như cvd-host_package.tar.gz, sang tên cvd_host_package.
  • Ánh xạ tệp zip hình ảnh thiết bị sang tên cvd_device_image.

Tài nguyên kiểm thử để điều phối trên đám mây

Hình 3. Ánh xạ tài nguyên kiểm thử.

Xem các lần chạy thử và nhật ký

Sau khi kiểm thử hoàn tất, bạn có thể xem nhật ký trong phần tệp đầu ra. Các nhật ký cụ thể được thu thập cho các phiên bản do Cloud Orchestrator quản lý bao gồm:

  • launcher.log: Nhật ký từ trình chạy Cuttlefish
  • kernel.log: Nhật ký hạt nhân Android tiêu chuẩn