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 II.

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.


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:

  1. sbírání závislosti
  2. kompilace nebo transformace kódu
  3. testování
  4. 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:

  1. Lehká a jednoduchá instalace. Program založený na Java je autonomní a platformně agnostický.
  2. Jednoduchá konfigurace. Webové rozhraní je přívětivé pro uživatele a zjednodušuje konfiguraci. 
  3. 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ů.
  4. 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:

  1. 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.
  2. 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í.
  3. 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.
  4. Automatizovaný job pipeline zahrnuje i automatizované testy při každém buildu.

Nevýhody Jenkinse:

  1. Může to být nákladné, jelikož Jenkins vyžaduje stabilní a robustní infrastrukturu.
  2. 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ě.
  3. 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. 

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

Zlatá pravidla emailové etikety

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

Take Control (DualSense vs Xbox One)

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

Pohovor v IT: Jak se obléct?

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

Jakou cestu urazil vývoj her?

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

Podporujeme ženy v IT

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

IT konference a online kurzy

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

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

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

Když prezentuje introvert

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

Jak začít jako junior SW developer

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

Znáte simulační teorii? 

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

GPT-3 speaks at a human degree

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

Bitcoin is on the rise

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

Pád a vzestup AMD

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

Jaká byla React Girls Academie?

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

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

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

11 tipů na online pohovor

čtení na 2 minuty 8.6.2020
Čí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