Jsme tu pro vás PO - PÁ 9:00 - 17:00 info@systeum.cz +420 608 408 716

Jsme tu pro vás PO - PÁ 9:00 - 17:00 obchod@systeum.cz +420 608 408 716

Jak dobře znáte Jenkins? Díl I.

Na úvod je dobré říct, že Jenkins nejčastěji ovládají právě lidé z DevOpsu, developeři a automatizační testeři, manuální testeři se s ním spíše nesetkají. Taje Jenkinsu vám popíši ve dvou dílech. V prvním se na Jenkins podíváme obecně, zabrousíme do historie a zjistíme, k čemu se využívá a v druhém díle detailněji rozebereme další kroky(steps {} ) v Jenkins file jako je např. automatizované testování. 

Jenkins je platforma pro vytváření Continuous Integration/Continuous Delivery aka CI/CD. Nejčastěji se setkáme se slovem „pipeline“ nebo „Jenkins pipeline“. Což je job, který automatizovaně spouští postupně několik věcí. Například přípravu prostředí, vytvoření podu (serveru), nasazení aplikace (deployment) a také testy, které ověří, že je nasazená aplikace v pořádku. I přesto, že Jenkis vyžaduje skriptování některých kroků celkové automatizace, tak poskytuje rychlý a robustní způsob, jak systematizovat celkový „life-cycle“ vývoje softwaru. A proč je vlastně dnes Jenkins jedním z předních nástrojů DevOps? K vysvětlení nám poslouží jednoduchá definice:

Jenkins je automatizační server napsaný v Javě, který pomáhá vytvářet, testovat a neustále nasazovat software. Open source systém je v současnosti jedním z předních automatizačních serverů.

Jenkins poskytuje podporu pro:

  1. různé nástroje pro správu verzí, jako je Git
  2. buildování projektu založených na ANT a Apache Maven
  3. pouštění Bash skriptu a dávkových souborů Windows

 

Něco málo z historie Jenkinsu

Projekt Jenkins začal v roce 2004 a to pod názvem Hudson (to si ještě pamatuju, sakra jsem starej :)). Možná znáte vývojáře Kohsuke Kawaguchiho, který pracoval v Sun Systems a chtěl vytvořit metodu pro provádění Continious integration/Nepřetržité integrace. Jeho hlavním záměrem bylo otestovat kód před potvrzením, aby nedošlo k porušení buildu.

Jeho nápad se ukázal jako úspěšný a velmi rychle se rozšířil i do celého týmu. A jak to dopadlo? Kohsuke Kawaguch vytvořil Open-Source projekt Jenkins, který se rozšířil po celém světě. Podle odhadu ho využívá 1.6 milionu uživatelů.

K čemu se Jenkins používá? 

Primárně jako kontinuální integrační nástroj a zároveň pokrývá celý proces dodávání softwaru včetně nasazování. Spouští webové kontejnery a pluginy jako je například Apache Tomcat. Pomáhá spravovat požadavky a celkový životní cyklus i přístupová práva. Jenkins má přes 1 700 modulů, které pomáhají a obohacují softwarovou integraci, automatizaci a delivery procesy. V neposlední řadě poskytuje přizpůsobitelné prostředí.

Jenkins zahrnuje různorodou terminologii DevOps s různými možnostmi vytváření a správou pipeline. Níže se pokusím vysvětlit několik běžných termínů. 

Jenkins pipeline je uživatelsky vytvořený model s kontinuálním procesem. Pipeline obsahuje různé moduly, které pomáhají definovat všechny kroky od správy až po uživatele. Všechny tyto kroky, které jsou definovány v rámci pipeline procházejí složitým procesem. Ten zahrnuje tři kroky:

  1. automatizovaný build
  2. vícestupňové testování
  3. postupy nasazování

Když chceme vytvořit pipeline existují dva způsoby jak na to. První způsob je přímo přes uživatelské prostředí Jenkins, druhý způsob je využití metodologie Pipeline as Code, tím vytvoříme Jenkins file. Jenkins file využívá pro definování pipeline syntaxy, které jsou kompatibilní s Groovy. Je důležité poznamenat, že syntaxe Jenkins file je buď deklarativní nebo skriptovaná

Deklarativní zápis Jenkins file:

Samotný kód má tyto prvky:

  1. Povinný blok “pipeline { }“ vyvolává plugin Jenkins Pipeline.
  2. Slovo „agent“ definuje, kde kanál běží a slovo „any“ označuje, že kanál poběží na libovolném a samozřejmě dostupném agentovi. 
  3. Blok “stages { }“ má sekvenci, ve které poběží pipeline. Jsou tam tři “stage“ – Build, Test, Deploy. Každá z nich s příslušnými “steps { }“. Tyto “steps { }“ říkají Jenkinsu, co má vlastně dělat v daném kroku. 

Skriptovatelný ekvivalent Jenkins file vypadá takto:

Když tým zařadí Jenkins file, umožní tak celému týmu upravovat, kontrolovat a přizpůsobovat kroky v procesu “delivery“. Například Continious Integration neboli Nepřetržitá integrace je postup vývoje softwaru, kde každá aplikovaná změna automaticky vyvolá test samotného buildu (sestavení). Tento proces zajišťuje intregraci kódu do funkční a spustitelné formy bez chyb. 

Základní diagram Jenkinsu:

Continious Integration/Nepřetržitá integrace je opravdu nezbytným aspektem ve firmách s více vývojáři. A proč? Protože každý vývojář provádí změny v kódu a každá změna a to bez výjimky má potenciální problémy. A právě z toho důvodu nástroj pro nepřetržitou integraci jako je právě Jenkins, pomáhá testovat, indetifikovat a řešit problémy před použitím, nebo jak se říká mergnutim změn.

V druhém díle si detailněji rozebereme další kroky(steps {} ) v Jenkins file jako je např. automatizované testování. 

 

 

Chcete dostávat naše články pravidelně do schránky? Nechte nám tady svůj email a my si rádi zahrajeme na poštovní sovy.

Mohlo by vás také zajímat

Pohovor v IT: Jak se obléct?

čtení na 3 minuty 4.11.2020
Číst dál

Bitcoin is on the rise

čtení na 3 minuty 19.1.2021
Číst dál

Když prezentuje introvert

čtení na 2 minuty 7.10.2020
Číst dál

GPT-3 speaks at a human degree

čtení na 4 minuty 30.12.2020
Číst dál

IT konference a online kurzy

čtení na 3 minuty 16.6.2020
Číst dál

Take Control (DualSense vs Xbox One)

čtení na 4 minuty 3.12.2020
Číst dál

Znáte simulační teorii? 

čtení na 2 min 28.6.2022
Číst dál

Jakou cestu urazil vývoj her?

čtení na 3 minuty 1.10.2021
Číst dál

Jaká byla React Girls Academie?

čtení na 3 minuty 26.11.2020
Číst dál

Zlatá pravidla emailové etikety

čtení na 3 minuty 29.7.2020
Číst dál

11 tipů na online pohovor

čtení na 2 minuty 8.6.2020
Číst dál

Jak začít jako junior SW developer

čtení na 5 minut 21.10.2020
Číst dál

Co všechno víte o databázích?

čtení na 3 minuty 21.4.2022
Číst dál

Pád a vzestup AMD

čtení na 3 minuty 12.8.2021
Číst dál

Podporujeme ženy v IT

čtení na 2 minuty 19.11.2021
Číst dál

Jak se o nás mluví?
Zeptejte se našich klientů…

Systeum
Systeum

„Systeum je jedním z největších dodavatelů našich testerských kapacit. Můžu říct, že kvalita uchazečů je vysoko nad průměrem. Také oceňuji velkou ochotu vyjít vstříc všem našim požadavkům.“

Head of test execution

„Na spolupráci nejvíce oceňuji individuální přístup. Systeum nám zajišťuje tým testerů, C/C++ a Java developery. Specialisté odpovídají našim požadavkům na znalosti síťových protokolů i cloud řešení.“

Chief Technology Officer

„Systeum je dlouhodobý partner, u kterého máme jistotu, že kandidáti jsou kvalitní a prověření. Od roku 2015 máme díky nim fungující kvalitní seniorní týmy C++ embedded vývojářů a auto testerů.“

Head of Payment Application

„Systeum, thank you for your help to find the right fit to my team! I can recommend cooperation with you to everybody. Very professional, smooth and friendly.“

IT CIM Inventory Management Development

Partneři, se kterými spolupracujeme

Porsche Moneta Raiffeisenbank Generali Komerční banka Monster