Navážeme na první díl, kde jsme si popsali, co to Jenkins je a jak se používá. Nyní si zkusíme vysvětlit další kroky a možnosti, které Jenkins přináší nebo jak pomáhá při delivery neboli při dodávce softwaru.
Automatizované testování
V rámci kroku v pipeline, kdy se provádí automatizované testy, se pouštějí testy a výsledky se ukládají. Cílem je, aby kód fungoval při různých scénářích, které vydefinují testeři. Ti to dělaji proto, aby se pokryly všechny možné problémy, které by mohly pokazit dodávku softwaru a zároveň se ověřuje, že po nasazení nové verze nedošlo k problémům již stávajících funkcionalit.
Tato fáze automatického testování se bez problému začlení do pipeline CI v Jenkins. Různé pluginy pomáhají spouštět integrační, funkční a regresní testy. Nakonec se výsledky ukládají pro pozdější analýzu.
Controller dříve znám jako Master
Architektura Jenkis se stará o distribuované sestavení. Controller je znám jako centralní řídicí jednotka a organizér. Tento controller je ústředním procesem konfigurace Jenkins. Právě tento controller spravuje agenty a jejich připojení, pomáhá načítat pluginy a celkově koordinuje tok projektu.
Agent dříve znám jako Slave
Tyto agenti se připojují ke controlleru Jenkins a spouštějí projekty. Jedna hlavní prerekvizita pro agenty je instalace Java na fyzickém nebo virtuálním počítači nebo serveru, podobně jako jsou instalace image Dockeru a nebo clustery Kubernetes. Agenti v Jenkins pomáhají poskytovat lepší a vyvážený výkon tím, že vyvažují zatížení buildu tak, aby nedošlo k přetížení a zároveň oddělují tyto věci od controlleru.
Node neboli Uzel
Node je obecný termín pro agenty a controllery, bez ohledu na jejich skutečnou roli. Jinak řečeno jakýkoliv stroj se schopností vytvářet projekty a pipeline je Node v Jenkins. Controller je také známý jako vestavěný Node. Když vestavěný Node monitoruje stav připojených nodů a zjistí překročení prahových hodnot, odpojí je.
Projekt také znám jako Job
Projekt Jenkins nebo Job je uživatelem vytvořený automatizační postup s konkretním cílem. Jenkins ve výchozím nastavení nabízí různé úlohy a další jsou k dispozici prostřednictvím pluginu.
Seznam s krátkým popisem k některým typům projektu/Jobu:
Freestyle – “Anarchista”, je to neomezený projekt/Job. Toto je vlastně hlavní funkce Jenkins, sestaví vám projekt, spojí jakýkoliv systém pro správu a verzi se systémem pro sestavení.
Pipeline – Vícestupňový projekt s několika sestavovacími agenty. Organizuje dlouhotrvající aktivity, které mohou zahrnovat více agentů sestavení.
Multi-configuration – Projekt/Job s více testovacími prostředími a různými konfiguracemi.
Multi-branch Pipeline – Projekt/Job, který vytváří sadu pipeline projektů/Jobu podle branches v repozitory.
Zajímá vás oblast IT a hledáte pracovní pozice a pracovní příležitosti v IT oboru? Ať už jste programátor, developer, tester, analytik nebo software architekt, ozvěte se nám a my vám z naší nabídky IT práce najdeme IT projekt na míru. Podívejte se, jaká volná pracovní místa v IT oblasti momentálně nabízíme. Pomůžeme vám najít nové pracovní výzvy a příležitosti. Těšíme se na spolupráci s vámi!
Build
Build v Jenkins znamená sestavení úlohy s aktuální konfigurací. Build vytváří software z různých zdrojů, které jsou nadefinované v postupu projektu. V závislosti na projektu zahrnuje build mechanismy:
- sbírání závislosti
- kompilace nebo transformace kódu
- testování
- nasazování do různých prostředí
Build je tedy jeden běh, který je definovaný v projektu s různými kroky.
Jak to celé funguje?
Jenkins provede vývojové kroky od samotné integrace po nasazení a každý další krok při jeho cestě se automatizuje. Když tedy vývojář provede commit do GITu, který je následně zrevidován jiným vývojářem, který tento kód zmerguje do hlavní větve/branche, tak se automaticky pustí build v Jenkins. V několika krocích při sestavení se provede i testování kódu proto, aby se zajistilo, že build něco nerozbije. Avšak pokud dojde k nějaké chybě, Jenkis pošle informaci vývojáři, že build skončil s chybou. Předpokládejme, že testy kódu projdou, tím může pipeline pokračovat k integračním krokům. Integrace trvá o něco déle a je vyžadováno testování kódu proti více konfiguracím systému. Paralelně se provádějí integrační testy na různých nodech proto, aby se zkrátil potřebný čas o integraci kódu. Následně se pustí automatizované testy, aby ověřily, že nasazený kód nijak nerozbil již funkční věci.
Vlastnosti Jenkinse
Hlavní rysy Jenkins jsou:
- Lehká a jednoduchá instalace. Program založený na Java je autonomní a platformně agnostický.
- Jednoduchá konfigurace. Webové rozhraní je přívětivé pro uživatele a zjednodušuje konfiguraci.
- Díky velkému množství pluginu je Jenkins jednoduše přizpůsobitelný. V současné době existuje více než 1 700 pluginů.
- Jedním z hlavních důvodů, proč je Jenkins hodně žádaným, je Open-source. To znamená, že je zdarma.
Výhody a nevýhody Jenkinse
Jako každý software, tak i Jenkins má své výhody a nevýhody.
Výhody Jenkinse:
- Rychlý vývojový cyklus. Nové funkce a verze softwaru se dostávají rychleji k zákazníkovi (například bussines), a to s menším počtem chyb.
- Ušetří čas při integraci kódu, protože před Jenkinsem byla integrace kódu ručním/manuálním procesem a ladění kódu bylo poměrně složité. Když se používá Jenkins po každé, když se mění kód, tak je menší pravděpodobnost chyb a zároveň prostředí se softwarem je stabilní.
- Rychlá zpětná vazba pro vývoj. Pokud dojde k selhání buildu, vývojáři ihned vědí, že se něco pokazilo a mohou pracovat na odstranění problému.
- Automatizovaný job pipeline zahrnuje i automatizované testy při každém buildu.
Nevýhody Jenkinse:
- Může to být nákladné, jelikož Jenkins vyžaduje stabilní a robustní infrastrukturu.
- Je potřeba neustálé údržby. Údržba serveru, kde běží Jenkins je časově náročná. Upgrade serveru o nové funkce a sledování aktualizací pluginu vyžadují, aby administrátor restartoval a spravoval server ručně.
- Kdo není vývojář, může být trochu zmatený. Ne nadarmo je Jenkins zaměřený právě na vývojáře. V dnešní době je potřeba, aby vývojáři s Jenkinsem uměli. Často tuto znalost požadují v nabídkách zaměstnání.
Mohl bych napsat plno stránek, jak a co se dá v Jenkins udělat a nastavit, ale spíše jsem chtěl přiblížit, proč je to tak žádaný systém v mnoha firmách. Můžete se samozřejmě setkat i s alternativami, ať už placenými nebo zdarma.
🟡 Hledáte zajímavý projekt? Mrkněte, jak to u nás chodí a jaké kolegy aktuálně hledáme.
🟡 Máte kolegu nebo kamaráda, který se poohlíží po novém projektu? Zapojte se do našeho referral programu Doporuč a získejte finanční odměnu za doporučení.
🟡 Chtěli byste začít pracovat v IT? Stáhněte si náš ebook ZAČNĚTE PRACOVAT V IT: aneb od prvních krůčků po vysněnou práci, ve kterém vás provedeme krůček po krůčku informacemi, kurzy i praxí, které jsou tolik potřebné nejen pro ty, kteří chtějí změnit obor, ale i pro ty, kteří se chtějí pracovně posunout a dále se vzdělávat.
🟡 Víte, jak si co nejjednodušeji a nejefektivněji připravit půdu pro nové pracovní začátky? Mrkněte na náš ebook: Připravte se na nová pracovní dobrodružství - Průvodce k úspěšné změně zaměstnání. Dream job je za dveřmi, stačí jen vzít správně za kliku.
Nebo sdílejte tento článek, který třeba poslouží i vašim známým.