27
Virtualizace testovacích prostředí (aka Lab Management) Michael Juřek Software Architect Microsoft s.r.o.

Virtualizace testovacích prostředí ( aka Lab Management)

Embed Size (px)

DESCRIPTION

Virtualizace testovacích prostředí ( aka Lab Management). Michael Juřek Software Architect Microsoft s.r.o. Agenda. Pro č virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí. Tradiční postup testování. - PowerPoint PPT Presentation

Citation preview

Virtualizace testovacích prostředí (aka Lab Management)

Michael JuřekSoftware ArchitectMicrosoft s.r.o.

Proč virtualizované testování?Architektura a základní pojmyPříprava, vybavení a vytvořeníZákladní operace s prostředímSlužby prostředí

Agenda

Tradiční postup testování

Build

Nasazení

aplikace

Spuštění testů

Virtualizované testování

Build

Vytvoření

VM

Nasazení

aplikace

Snapshot

VM

Spuštění

testů

Sdílení kontextu chyby mezi vývojářem a testeremPomocí snapshotu virtuálního stroje

Výrazné snížení času a pracnosti přípravy testovacího prostředí

Automatické klonováníSamoobslužné vytváření bez nutnosti znalosti virtualizačních produktů

Paralelní běh více instancí testovacího prostředíMožnost komplexních konfigurací

Distribuované systémyNetwork Isolation – automatická izolace interních virtuálních sítí brání konfliktům IP adres

Výhody virtualizovaného testování

Proč virtualizované testování?Architektura a základní pojmyPříprava, vybavení a vytvořeníZákladní operace s prostředímSlužby prostředí

Agenda

Team Foundation Server (TFS)

Lab Management

Test Management

Build management

Work Item Tracking

Source Control

Hyper-V Hosts

Virtual Machin

e1Virtual Machin

e2Virtual Machin

en

Library Shares

Library Share1

Library Share2

Library Sharen

System Center Virtual Machine Manager

(SCVMM)

Test Manager

Centrální správa hostitelů a virtuálůVšechny operace nabízené HyperV

Nad rámec funkčnosti HyperVPřesun virtuálů mezi hostiteliKlonování virtuálůUložení virtuálu do knihovnyVytvoření virtuálu z částí uložených v knihovněMonitorování HW prostředků hostitele

Možnosti SCVMM

Skládá se ze skupiny virtuálních počítačů z nichž každý má nějakou roli (např. webový server, databázový server, klient apod.)

V triviálním případě jediný virtuální počítač

Skupina je spravována jako celek:Spuštění/zastaveníVytvoření/naklonování/vymazáníVytvoření/zrušení/aplikování snapshotu

Virtuální testovací prostředí

TestingSpouštění testů UI během automatického buildu anebo manuálně z Test Manageru

WorkflowSpouštění skriptů uvnitř virtuálního prostředí během automatického buildu

Network IsolationNastavení síťových adaptérů a virtuálních sítí pro zamezení konfliktům jmen a IP adres

Schopnosti prostředí (capabilities)

Šablona počítačeOdkaz na virtuál uložený v knihovně SCVMMMožnosti nastavení:

Množství operační pamětiRole, kterou typicky zastáváProfil OS, pokud je proveden SYSPREP (klíč, jméno, heslo apod.)

Šablona prostředíSada šablon počítačů s přidělenými rolemiMožnost přepsání parametrů počítačůDefinice schopností virtuálního prostředí

Šablony v Lab Managementu

demo

Laboratorní prostředíPráce se šablonami

Proč virtualizované testování?Architektura a základní pojmyPříprava, vybavení a vytvořeníZákladní operace s prostředímSlužby prostředí

Agenda

HostitelRAM, CPU a disková propustnost (čtení i zápis) pro součet virtuálů a vlastní potřebuPříklad - můj demo stroj s 10 virtuály:

1 quad-core CPU, 16 GB RAM, 4x SATA disk (RAID 10)Cena v květnu 2009 cca 30.000 Kč

Library ServerNapř. NAS s RAID5 (výrazná převaha čtení)

SíťMezi hostitelem a knihovnou by měla být 1 Gbps

http://blogs.msdn.com/b/lab_management/archive/2010/05/13/planning-considerations-for-setting-up-a-lab-managed-by-visual-studio-lab-management-2010.aspx

Hardware

Operační systém a aktualizaceDalší potřebný software ve stavu před instalací aplikace (např. SQL server)Nainstalovaní, nenakonfigurovaní agenti

Network Isolation – vyžaduje Lab AgentWorkflow – vyžaduje Lab Agent a Build ServiceTest – vyžaduje Lab Agent a Test Agent

Volitelně možno uvést do předinstalovaného stavu (SYSPREP)

Software virtuálů

Možné varianty:1. Externí doména – není možné používat

Network Isolation, nelze mít více instancí2. Interní doména – jeden z počítačů prostředí

funguje jako Domain Controller3. Bez domény – režim „workgroup“Servisní účet v externí doméně:

Pro možnosti 2. a 3. je používán virtuály pro komunikaci s okolímNení nutné vytvářet duplikované lokální účtyNastavení na úrovni Team Project Collection

Laboratorní prostředí a doména

Z fyzických počítačů s Test Agenty (New physical environment)

Omezené možnosti, pouze pro speciální případy (HW testování apod.)

Z existujících virtuálů nasazených na hostiteli (Compose)Z definovaných šablon počítačů, jejich nastavením a naklonováním (New virtual environment)Naklonováním šablony prostředí (Deploy)

Způsoby vytvoření prostředí

Vypršení hesla počítače v externí doméněHeslo je automaticky měněno, vrácením ke staršímu snapshotu dojde k jeho „zapomenutí“Změnu hesla lze zakázatHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange = 1

Nastavení lze též vynutit skupinovou politikou

Aktualizace uložených (neběžících) virtuálůLze použít Microsoft Offline Virtual Machine Servicing Tool

Zahlcení virtuályDobu života virtuálů lze kontrolovat sledováním data vytvoření, data modifikace a data posledního přístupu

Úskalí virtuálů

Proč virtualizované testování?Architektura a základní pojmyPříprava, vybavení a vytvořeníZákladní operace s prostředímSlužby prostředí

Agenda

Stejné jako při správě přes HyperV, ale pro celé prostředí (více počítačů) najednou:

Spuštění (Start)Pozastavení (Pause) – zůstávají v paměti„Čisté“ zastavení (Shut down)„Násilné“ zastavení (Power off)

Speciální operace pro Lab Management:Připojení se k prostředí nebo jednotlivým počítačůmOprava schopností prostředíOznačení „In Use“ spojené s komentářem

Operace nad seznamem prostředí

Všechny operace, které lze provést nad seznamem prostředíInterakce s prostředím

Ctrl-Alt-Del, Full ScreenSystémové informace o virtuáluManipulace se snapshoty:

Vytvoření (Create), obnovení (Restore), přejmenování (Rename), vymazání (Delete)Sdílení (Share)

Vytvoří soubor .lvr s definicí prostředí a snapshotuSoubor lze sdílet, jeho otevřením se lze připojit k příslušnému prostředí a snapshotu

Operace nad připojeným prostředím

demo

Základní operace s prostředím

Proč virtualizované testování?Architektura a základní pojmyPříprava, vybavení a vytvořeníZákladní operace s prostředímSlužby prostředí

Agenda

Interní virtuální síť pro každé prostředíMAC adresa, IP adresa i jméno virtuálního počítače mohou být ve více kopiích stejnéVirtuály jsou též připojeny na externí síť pomocí unikátní IP adresy a jména Jeden z počítačů může být domain controllerNení třeba konfigurovat, vše nastaví Lab Agent

Network Isolation

IIS DB

10.10.1.510.10.1.6

172.22.48.15 172.22.48.16

Copy 1

IIS DB

10.10.1.510.10.1.6

172.22.48.17 172.22.48.18

Copy 2

Internal network

Labnetwork

Workflow

Umožňuje spouštět libovolný skript uvnitř virtuálu s právy služby Build ServiceTypicky užíváno k nasazení nové verze aplikace do virtuálního prostředí (fantazii se ale meze nekladou)Komponenty:

Build Agent (uvnitř virtuálu) – provádí přidělené úlohyLab Agent (uvnitř virtuálu) – konfiguruje Build AgentaBuild Controller (vně virtuálu) – spouští workflow a úkoluje Build Agenty

Umožňuje spouštět automatizované testy UI uvnitř virtuálu a shromažďovat jejich výsledky

V rámci build workflowV rámci testování z Test Manageru

Komponenty:Test Agent (uvnitř virtuálu) – spouští testy, sbírá výsledky a doprovodná dataLab Agent (uvnitř virtuálu) – konfiguruje Test AgentaTest Controller (vně virtuálu) – řídí a úkoluje Test Agenty

Testing

Závěrem

Správa testovacích prostředí je výborně integrována do Visual Studia 2010Virtualizace testovacího prostředí dramaticky snižuje pracnost přípravy prostředí a zlepšuje efektivitu využití HW prostředků.Snapshot virtuálního prostředí je nejvyšší známou formou dokumentace chyby.Základní zdroj informací:

http://blogs.msdn.com/lab_management/Chcete pomoci při implementaci?

[email protected]