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/hostskomutunun çalıştırılması, hizmetin etkin ve erişilebilir olduğunu doğrulayan başarılı bir HTTP yanıtı (HTTP/1.1 200 OKveya302 Foundyö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.
Ş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.
Ş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_packageadına eşleyin. - Cihaz resmi ZIP'ini
cvd_device_imageadına eşleyin.
Ş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üklerkernel.log: Standart Android çekirdek günlüğü