DevOpsDay19


Pokud jste o Azure DevOps nikdy neslyšeli, bude to zřejmě tím, že „marketingoví lidé“ mají neodolatelné nutkání vytvářet si přejmenováváním zaběhnutých termínů novou práci. Ani Microsoft v tom není výjimkou. Spojení „buzzwordů“ Azure a DevOps však neoznačuje nic jiného než nástroje pro podporu životního cyklu vývoje v týmu nazývané Visual Studio Team Services (nyní Azure DevOps Services) a Team Foundation Server (nyní Azure DevOps Server), tedy produkt etablovaný již téměř 15 let jako de facto standardní nástroj pro týmový vývoj v .NET.

externí autořiexterní autoři
Cloud ServicesCloud Services
20.06.2019 12:34:0020.06.2019 12:34:00

externí autoři

externí přispěvatelé magazínu softwarový QUAS

DAQUAS
+420 222 512 201
+420 603 442 434
daquas@daquas.cz
Anny Letenské 7, Praha 2

Azure DevOps

Pokud jste o Azure DevOps nikdy neslyšeli, bude to zřejmě tím, že „marketingoví lidé“ mají neodolatelné nutkání vytvářet si přejmenováváním zaběhnutých termínů novou práci. Ani Microsoft v tom není výjimkou. Spojení „buzzwordů“ Azure a DevOps však neoznačuje nic jiného než nástroje pro podporu životního cyklu vývoje v týmu nazývané Visual Studio Team Services (nyní Azure DevOps Services) a Team Foundation Server (nyní Azure DevOps Server), tedy produkt etablovaný již téměř 15 let jako de facto standardní nástroj pro týmový vývoj v .NET.

V posledních letech je však značný důraz kladen na podporu heterogenního vývoje, takže samozřejmostí je dnes hladká podpora mobilního vývoje pro iOS i Android, možnost nasazování na Windows i Linux, kontejnery, Docker a Kubernetes, podpora cloudových poskytovatelů (nejen Azure, ale i AWS) a řada dalších zajímavých technologií. Jednotlivé technologie nesou samostatné označení a teoreticky je lze používat i samostatně, jejich síla ale vynikne zejména při společném používání, protože jsou dokonale integrovány.

Další síla se skrývá v dostupnosti: nástroje se nabízejí jako služba, která je do 5 uživatelů zcela zdarma! Další uživatele lze dokupovat za mírný měsíční poplatek.

Azure Boards (dříve Work Items)

Pod nepříliš popisným názvem se skrývá mocný nástroj pro řízení projektů s využitím SCRUMu nebo jiné metodiky. Slouží k evidenci veškeré práce, kterou je třeba vykonat (požadavky, chyby, úkoly apod.). K těmto datům lze přistupovat buď klasickým způsobem typu databáze-Excel, anebo moderněji za použití grafických nástrojů stylu „lepící papírky na tabuli“. Je například možné prioritizovat pomocí „drag & drop vertikálně“, anebo aktualizovat stav jednotlivých položek (práce nezačala, práce probíhá, práce hotová, práce akceptovaná) posouváním kartiček zleva doprava mezi jednotlivými „plaveckými dráhami“:

Výhodou je též výborná provázanost s ostatními součástmi, takže na jedno kliknutí je možné zjistit např. kdo a kdy chybu opravil, v jakém buildu byla oprava poprvé zahrnuta či do kterých prostředí byla nasazena.

Azure Repos (dříve Code)

Repos dnes znamená především Git. Git je decentralizovaný verzovací systém původně navržený jako nouzové řešení pro verzování linuxového jádra, který dnes na hlavu poráží všechny ostatní verzovací systémy, a to i přes svoji relativní složitost. Pro úplnost dodejme, že původní centralizovaný verzovací systém z TFS, který se dnes nazývá TFVC a je podobný Subversion nebo historickému SourceSafe, stále je a v nejbližší budoucnosti bude podporován, ale není již dále rozvíjen.

Nyní je vhodná doba pro převod projektů z TFVC na Git pomocí automatizovaného importu (doporučuje se import jedné větve bez historie, přičemž historie zůstává ve starém TFVC úložišti přepnutém do stavu „pouze pro čtení“). Tímto přechodem získáte přístup k některým výborným funkcím Gitu, mezi nimiž vyčnívá zejména možnost tzv. pull requests. Ty slouží k revizím kódu, kdy např. šéf vývoje může kontrolovat změny kódu, které provedli jeho podřízení v pomocných větvích, před jejich zahrnutím do hlavní vývojové větve. Kromě vizuální kontroly lze automaticky vynutit též další věci, jako je např. vypořádání všech připomínek, kompilovatelnost vzniklého kódu, bezkonfliktnost sloučení změn, navázání na pracovní položky z Azure Boards apod.

Azure Pipelines (dříve Build a Release)

Pipelines jsou součástí, která aktuálně prochází nejbouřlivějšími změnami. Pod touto nálepkou se skrývá infrastruktura pro automatizaci pravidelně vykonávaných činností. Nejčastějším příkladem je sestavení aplikace ze zdrojového kódu do binární podoby (Build) anebo nasazení hotové aplikace do konkrétního prostředí (Release). Nicméně tuto komponentu lze použít pro automatizaci čehokoliv, co se pravidelně opakuje a dá se automatizovat nějakým skriptem.

Každá pipeline je sekvencí elementárních kroků (Tasks) v pevně daném pořadí a nastavení proměnných. K Azure DevOps jsou pak připojeni tzv. agenti, kteří mohou běžet v cloudu (provozuje Microsoft, v menších časových objemech zdarma, ve větších za příplatek) anebo kdykoliv si je nainstalujete (provozuje zákazník, typicky kvůli síťové dostupnosti cílových systémů). Agenty lze provozovat na Windows, na Linuxu (typicky kvůli Dockeru) anebo na iOS (typicky kvůli buildu aplikací pro Mac zařízení). Jednotliví agenti mají různé schopnosti (tzv. capabilities) – např. buildovat .NET, vytvářet balíčky pro Android, spouštět Powershell, ovládat Docker apod. Kombinací požadavků, které má pipeline (tzv. demands), s možnostmi, jež nabízejí agenti, lze vytvořit velmi sofistikovaná automatizační řešení. Nejedná se sice o nejjednodušší proces, zato však jde o proces s obrovským potenciálem úspory lidského času.

Azure Artifacts (dříve Packages)

Relativně méně často používanou součástí jsou tzv. Artifacts. Ty slouží k ukládání a referencování verzovaných komponent aplikací. Jednotlivé komponenty aplikace se dají rozdělit tak, aby umožňovaly nezávislý vývoj komponent a přechod na novou verzi komponenty přesně v okamžiku, kdy to závislé komponentě vyhovuje. Funkce Artifacts podporuje technologie NuGet pro .NET aplikace, Maven/Gradle pro Java aplikace, npm pro node.js aplikace a PyPi pro Python aplikace.

Azure Test Plans (dříve Test)

Poslední – a opět relativně méně používanou – částí jsou Test Plans, tedy komponenta pro řízení manuálního testování pomocí testovacích plánů, testovacích případů organizovaných do sad testů, konfigurací, parametrů apod. V každém okamžiku je tak možné sledovat pokrytí požadavků testy, jejich průběh, úspěšnost apod. Je však třeba upozornit, že testovací plány nejsou zahrnuty v základní licenci na Azure DevOps a pro jejich používání je třeba dokoupit dodatečnou licenci.

Závěrem

Azure DevOps přináší ucelenou sadu vzájemně integrovaných nástrojů pro pokrytí celého životního cyklu vývoje aplikací. Jejich použitím lze výrazně zefektivnit vývojový proces, snížit chybovost aplikací a ušetřit spoustu nezáživné opakující se práce.

Michael Juřek

Autor pracuje jako free-lance v oblasti architektury aplikací a DevOps procesů. Více informací na www.michaeljurek.cz