Integrace kanálů CI/CD pro DevTest Labs a DevOps

DevOps je metodologie vývoje softwaru, která integruje vývoj softwaru (Dev) se systémovými operacemi (Ops). Systém poskytuje nové softwarové funkce, aktualizace a opravy, které odpovídají obchodním cílům.

Metodologie DevOps také zahrnuje:

  • Navrhování nových funkcí na základě cílů, vzorů využití a zpětné vazby zákazníků
  • Oprava, obnovení a posílení zabezpečení systému v případě, že dojde k problémům

Jednou z komponent metodologie DevOps je kanál kontinuální integrace (CI) a průběžného doručování (CD). Kanál CI/CD přesouvá informace, kód a prostředky z potvrzení správy zdrojového kódu do řady kroků k vytvoření systému. Postup zahrnuje sestavení, testování a vydání.

V kanálech CI/CD můžete použít Azure DevTest Labs. Tento článek popisuje použití devTest Labs v kanálech sestavení a verzí CI/CD v podnikovém prostředí.

Výhody devTest Labs v pracovních postupech DevOps

Testovací prostředí by se mělo zaměřit na tým, který pracuje v oblasti funkcí. Tento běžný fokus umožňuje rychlejší změny a zároveň omezuje všechny negativní účinky na menší skupinu. Ke změnám nebo problémům dochází v testovacím prostředí, aniž by to mělo vliv na cokoli jiného.

Společné zaměření umožňuje sdílení prostředků specifických pro oblast, jako jsou nástroje, skripty a šablony Azure Resource Manager (ARM). Vývojáři můžou pomocí sdílených prostředků vytvářet virtuální počítače se všemi potřebnými kódy, nástroji a konfigurací. Šablony ARM vytvářejí virtuální počítače testovacího prostředí a testovací prostředí s příslušnými prostředky Azure. Šablony vytvářejí prostředky dynamicky nebo vytvářením základních imagí s vlastními nastaveními.

Představte si například scénář, ve kterém je produkt samostatným systémem, který se instaluje na počítač zákazníka. DevTest Labs může vytvořit virtuální počítače testovacího prostředí s nainstalovaným softwarem, artefakty a konfiguracemi zákazníka pro účely rychlého testování kódu ve vnitřní smyčce.

Tady jsou některé výhody používání testovacích prostředí v pracovních postupech DevOps:

  • Prioritní přístup: Použití testovacího prostředí jako komponenty přidruží konkrétní ekosystém s omezenými lidmi. Obvykle má tým nebo skupina pracující ve společné oblasti nebo konkrétní funkci přiřazené testovací prostředí.

  • Replikace infrastruktury v cloudu: Vývojář může rychle nastavit vývojový ekosystém, který zahrnuje vývojářský virtuální počítač se zdrojovým kódem a nástroji. Vývojář může také vytvořit prostředí, které je téměř identické s produkční konfigurací, a zrychlit tak vývoj vnitřní smyčky.

  • Předprodukční prostředí: V testovacím prostředí v kanálu CI/CD může být spuštěno několik různých předprodukčního prostředí nebo počítačů současně pro účely asynchronního testování. V testovacím prostředí můžete nasadit a spravovat různé infrastruktury podpory a sestavovat agenty.

Použití testovacích prostředí v kanálech CI/CD

Kanál CI/CD je důležitou komponentou DevOps. Kanál integruje kód z žádosti vývojáře o přijetí změn s existujícím kódem a nasadí ho do produkčního ekosystému. Pro integraci DevTest Labs nemusí být v testovacím prostředí všechny prostředky. Můžete například nastavit hostitele Jenkinse mimo testovací prostředí pro trvalejší prostředek. Tady je několik konkrétních příkladů integrace testovacích prostředí do kanálu CI/CD.

Sestavení

Kanál buildu vytvoří balíček komponent pro společné testování a předání k vydání. Dynamické sestavování infrastruktury umožňuje větší kontrolu. Testovací prostředí můžou být součástí kanálu buildu jako umístění pro agenty sestavení a další prostředky podpory. DevTest Labs může omezit přístup k testovacímu prostředí, což zvyšuje zabezpečení agentů sestavení a snižuje možnost náhodného poškození.

Díky možnosti mít v testovacím prostředí více prostředí může každé sestavení běžet asynchronně. ID sestavení je součástí informací o prostředí, které jednoznačně identifikují prostředky v konkrétním sestavení.

Test

Kanál CI/CD může automatizovat vytváření prostředků DevTest Labs, jako jsou virtuální počítače a prostředí pro automatizované a ruční testování. Kanál používá artefakty nebo vzorce informací o sestavení k vytvoření virtuálních počítačů s různými vlastními konfiguracemi testů.

Vydat

Proces vydání může použít DevTest Labs k ověření před nasazením kódu. Proces je podobný testování. Produkční prostředky by se neměly nasazovat ve službě DevTest Labs.

Přizpůsobení

Azure Pipelines, součást Azure DevOps Services, obsahuje existující úlohy pro manipulaci s virtuálními počítači a prostředími v rámci konkrétních testovacích prostředí. Azure Pipelines je jedním ze způsobů správy kanálu CI/CD. Testovací prostředí můžete integrovat do libovolného systému, který podporuje volání rozhraní REST API, spouštění skriptů PowerShellu nebo azure CLI.

Někteří správci kanálů CI/CD mají existující opensourcové moduly plug-in, které můžou spravovat prostředky Azure a DevTest Labs. Možná budete muset použít vlastní skriptování, které bude vyhovovat potřebám kanálu. Při provádění úlohy použijte pro přístup k testovacímu prostředí instanční objekt s příslušnou rolí, obvykle Přispěvatel.

Další kroky