OmniLab ATS'de Cloud Orchestration

Cloud Orchestration uygulaması, özellikle ARM tabanlı sanal cihazlar (CHD) için Cuttlefish örneklerini yönetmenin yüksek performanslı ve ölçeklenebilir bir yolunu sunar. OmniLab ATS, sanal cihazlarda test çalıştırmanıza olanak tanıyan Cloud Orchestration'ı destekler. Sanal cihazları kullanmaya başlamadan önce OmniLab Android Test İstasyonu'nu kullanarak OmniLab ATS'yi yükleyin.

Genel Bakış

Cloud Orchestration, OmniLab ATS'nin Cuttlefish örneklerinin yönetimini özel bir Cloud Orchestrator hizmetine devretmesine olanak tanır. Bu yaklaşım, mevcut yerel ve uzak modlara kıyasla çeşitli avantajlar sunarken tanıdık bir kullanıcı deneyimini de korur:

  • Paralel örnek başlatma: Aynı anda birden fazla Cuttlefish örneğinin başlatılmasına izin vererek testler başlamadan önceki ek süreyi önemli ölçüde azaltır.
  • Ölçeklenebilirlik: Büyük ölçekli test ortamlarına uygundur.
  • Kaynak yalıtımı: Test işleminin yürütüldüğü ortamı (ATS çalışanı) cihaz emülasyon ortamından ayırır.

Ön koşullar

  • Docker'ı çalıştırabilen bir ana makine
  • Cuttlefish düzenleme Docker görüntülerine erişim

Cloud Orchestrator hizmetini ayarlama

Cloud Orchestrator hizmeti, Cuttlefish örneklerinin yaşam döngüsünü yönetir. Hizmeti çeşitli ortamlarda dağıtabilirsiniz. Hizmet hem x86 hem de ARM mimarilerini destekler:

  • ATS çalışanıyla aynı ana makine: Aynı makinede bir Docker kapsayıcısında çalışır.
  • Ayrı makine: Docker'ı çalıştırabilen şirket içi bir sunucuda çalışır.
  • Bulut örneği: Bulut ortamındaki bir sanal makinede çalışır (ör. Google Compute Engine).

Hizmeti yükleme ve ayarlama

Hizmeti başlatmak için Cloud Android Orchestration README dosyasındaki talimatları uygulayın.

Kimlik doğrulama ve izinler

Cloud Orchestrator hizmeti uzak bir makinede çalışıyorsa ATS çalışanı ana makinesinin, HTTP istekleri aracılığıyla hizmete erişmek için gerekli izinlere sahip olduğundan emin olun. HTTP bağlantısına izin verilmiyorsa SSH bağlantı noktası yönlendirmeyi ayarlamanız gerekebilir. Ayrıntılar için Bulut düzenleyiciyi deneme başlıklı makaleyi inceleyin.

Beklenen durum

Cloud Orchestrator hizmeti başarıyla başlatıldıktan sonra HTTP kullanılarak erişilebilir olmalıdır. API'sini sorgulayarak durumunu doğrulayabilirsiniz:

  • Hizmete ping gönderin: OmniLab ATS çalışan ana makinesinden hizmet uç noktasına ulaşabilmeniz gerekir. Örneğin, curl -I http://localhost:8080/v1/zones/local/hosts komutunun çalıştırılması, hizmetin etkin ve erişilebilir olduğunu doğrulayan başarılı bir HTTP yanıtı (HTTP/1.1 200 OK veya 302 Found yönlendirmesi) döndürmelidir./username

Cloud Orchestration için OmniLab ATS'yi yapılandırma

OmniLab ATS'yi başlatmadan önce OmniLab ATS çalışanı ana makinesindeki tüm Cuttlefish örneklerinin durdurulduğundan emin olun. OmniLab ATS, test döngüsü sırasında sanal cihazları otomatik olarak başlatır ve durdurur. Mevcut Cuttlefish örnekleri, OmniLab ATS tarafından yönetilen örneklerle çakışır. Cuttlefish örneklerini durdurma hakkında ayrıntılı bilgi için Cuttlefish'i durdurma başlıklı makaleyi inceleyin.

OmniLab ATS'de Cloud Orchestration'ı etkinleştirmek için OmniLab ATS'yi başlatırken belirli işaretleri iletin:

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 özelliğini etkinleştirir.
  • --cloud_orchestrator_service_url: Cloud Orchestrator hizmetinin dinlediği URL'yi belirtir (örneğin, http://localhost:8080).
  • --max_local_virtual_devices: OmniLab ATS'nin aynı anda ayırabileceği maksimum sanal cihaz sayısını ayarlar. Varsayılan sayı 0'dır.
  • --use_host_network: Kapsayıcı için ana makinenin ağ ad alanını kullanır. Cloud Orchestrator hizmetine erişmek için bu işlem gereklidir.

Bulut tarafından düzenlenen cihazlarla test çalıştırma

Bu bölümde, bulut tarafından düzenlenen sanal cihazlarda test çalıştırma adımları açıklanmaktadır.

Belirli cihazlarda kullanılabilir.

Cihaz listesinde OmniLab ATS, bulut tarafından düzenlenen sanal cihazları gerçek seri numaraları yerine yer tutucular olarak gösterir. Yer tutucular HOSTNAME:PORT biçiminde gösterilir (örneğin, thehostname:6520). Durumlar Kullanılabilir veya Ayrıldı olur. Kullanılabilir durumundaki bir yer tutucu, sanal cihazın çalışmadığını ve test için ayrılabileceğini gösterir.

Bulut tarafından yönetilen cihazları seçin

Şekil 1. Bulut tarafından düzenlenen sanal cihazları seçme

Cihaz işlemleri ekleme

Bu cihazlarda bir test planlandığında ATS, test döngüsü sırasında Cuttlefish örneklerini sağlama ve yönetme için gereken cihaz işlemlerini otomatik olarak ekler.

Otomatik Cihaz İşlemleri

Şekil 2. Otomatik cihaz işlemleri.

Test kaynaklarını ayarlama

Test planlarken gerekli test kaynaklarını sağlamanız gerekir. Test Kaynaklarını Ayarla bölümünde, yüklenen dosyaları doğru kaynak adlarıyla eşlediğinizden emin olun:

  • Düzenleyen araçları paketini (ör. cvd-host_package.tar.gz) cvd_host_package adına eşleyin.
  • Cihaz resmi ZIP'ini cvd_device_image adına eşleyin.

Cloud Orchestration için test kaynakları

Şekil 3. Test kaynaklarını eşleme

Test çalıştırmalarını ve günlüklerini görüntüleme

Test tamamlandıktan sonra günlükleri çıkış dosyaları bölümünde görüntüleyebilirsiniz. Cloud Orchestrator tarafından yönetilen örnekler için toplanan belirli günlükler şunlardır:

  • launcher.log: Cuttlefish başlatıcısından alınan günlükler
  • kernel.log: Standart Android çekirdek günlüğü