Co je to JenkinsProč používat nástroj pro kontinuální integraci (CI)?
Co je to Jenkins?
Jenkins je open-source server pro nepřetržitou integraci napsaný v Java pro organizaci řetězce akcí k dosažení procesu kontinuální integrace automatizovaným způsobem. Jenkins podporuje kompletní životní cyklus vývoje softwaru od sestavení, testování, dokumentace softwaru, nasazení a dalších fází životního cyklu vývoje softwaru.
Jenkins je široce používaná aplikace po celém světě, která má přibližně 300 tisíc instalací a den ode dne roste. Používáním Jenkinssoftwarové společnosti mohou urychlit proces vývoje softwaru, např. Jenkins dokáže automatizovat sestavování a testování rychlým tempem.
Je to serverová aplikace a vyžaduje webový server, jako je Apache Tomcat. Důvod Jenkins software se stal tak populárním, je jeho monitorování opakujících se úkolů, které vznikají během vývoje projektu. Například, pokud váš tým vyvíjíping projekt, Jenkins bude průběžně testovat sestavení vašich projektů a ukáže vám chyby v raných fázích vývoje.
Co je kontinuální integrace?
Kontinuální integrace je proces mnohonásobné integrace změn kódu od více vývojářů do jednoho projektu. Software je testován ihned po potvrzení kódu. S každým odevzdáním kódu je kód vytvořen a testován. Pokud test projde, sestavení se otestuje pro nasazení. Pokud je nasazení úspěšné, kód je odeslán do produkce.
Toto potvrzení, sestavení, testování a nasazení je nepřetržitý proces, a proto se nazývá nepřetržitá integrace/nasazování.
Jak se dělá Jenkins práce?
Jenkins je serverová aplikace a pro spuštění na různých platformách vyžaduje webový server, jako je Apache Tomcat, jako například Windows, Linux, macOS, Unix atd. Použití Jenkins, musíte vytvořit pipelines, což je série kroků, které Jenkins server přijme. Jenkins Kontinuální integrační kanál je výkonný nástroj, který se skládá ze sady nástrojů určených k… hostitel, monitorovat, sestavit a test kód nebo změny kódu, například:
- Server pro kontinuální integraci (Jenkins, Bamboo, CruiseControl, TeamCity, a další)
- Source Control Tool (např. CVS, SVN, GIT, Mercurial, Perforce, ClearCase a další)
- Nástroj pro sestavení (Make, ANT, Maven, Ivy, Gradle, a další)
- Automatizační testovací rámec (Selenium, Appium, TestComplete, UFT, a další)
Jenkin historie
- Kohsuke Kawaguchi, a Java vývojář pracující ve společnosti SUN Microsystems byl unavený vytvářením kódu a opakovaným opravováním chyb. V roce 2004 vytvořil automatizační server s názvem Hudson, který automatizuje sestavovací a testovací úlohy.
- V 2011, Oracle Společnost, která vlastnila Sun Microsystems, měla spor s komunitou open source v Hudsonu, a tak Hudson rozdělila na fork a přejmenovala jej na Jenkins.
- Jak Hudson, tak Jenkins pokračoval v samostatné činnosti. Ale za krátkou dobu Jenkins získal mnoho projektů a přispěvatelů, zatímco Hudson zůstal pouze s 32 projekty. Postupem času, Jenkins stal se populárnějším a Hudson se již neudržuje.
Proč používat kontinuální integraci s Jenkins?
Někteří lidé si možná myslí, že staromódní způsob vývojeping Software je lepší volbou. Pojďme si vysvětlit výhody CI s... Jenkins s následujícím příkladem
Představme si, že existuje asi 10 vývojářů, kteří pracují na a sdílené úložiště. Někteří vývojáři dokončí svůj úkol za 25 dní, zatímco jiným to trvá 30 dní.
| Před Jenkins | Po Jenkins |
|---|---|
| Jakmile všichni vývojáři dokončili své přiřazené úkoly kódování, použili k odevzdání svého kódu všichni ve stejnou dobu. Later, Build je testován a nasazen.
Code commit sestavil a testovací cyklus byl velmi zřídkavý a jediné sestavení bylo provedeno po mnoha dnech. |
Kód je vytvořen a otestován, jakmile vývojář potvrdí kód. Jenkin bude vytvářet a testovat kód mnohokrát během dne
Pokud se sestavení podaří, pak Jenkins nasadí zdrojový kód na testovací server a upozorní nasadovací tým. Pokud sestavení selže, pak Jenkins upozorní vývojářský tým na chyby. |
| Vzhledem k tomu, že kód byl vytvořen najednou, někteří vývojáři budou muset počkat, až ostatní vývojáři dokončí kódování, aby zkontrolovali své sestavení | Kód je vytvořen okamžitě poté, co se kterýkoli z vývojářů zaváže. |
| Není snadný úkol izolovat, detekovat a opravovat chyby pro více odevzdání. | Vzhledem k tomu, že kód je sestavován po každém odevzdání jednoho vývojáře, je snadné zjistit, čí kód způsobil selhání sestavy |
| Code stavět a zkušební proces jsou zcela manuální, takže existuje mnoho šancí na selhání. | Automatizovaný proces sestavení a testování šetří čas a snižuje vady. |
| Kód je nasazen, jakmile jsou všechny chyby opraveny a otestovány. | Kód je nasazen po každém úspěšném sestavení a testování. |
| Vývojový cyklus je pomalý | Vývojový cyklus je rychlý. Nové funkce jsou uživatelům snadněji dostupné. Zvyšuje zisky. |
Případová studie kontinuální integrace v reálném světě
Jsem si jistý, že všichni znáte starý telefon Nokia. Nokia dříve implementovala proceduru zvanou nightly build. Po několika potvrzeních od různých vývojářů během dne byl software vytvořen každou noc. Vzhledem k tomu, že software byl sestavován pouze jednou za den, je velmi obtížné izolovat, identifikovat a opravit chyby v rozsáhlé kódové základně.
Later, přijali přístup kontinuální integrace. Software byl vytvořen a otestován, jakmile vývojář svěřil kód. V případě zjištění jakékoli chyby může příslušný vývojář závadu rychle opravit.
Jenkins pluginy
Ve výchozím nastavení Jenkins dodává se s omezenou sadou funkcí. Pokud chcete integrovat své Jenkins instalace s nástroji pro správu verzí, jako je Git, pak je nutné nainstalovat pluginy související s Gitem. Ve skutečnosti pro integraci s nástroji, jako je Maven, Amazon EC2, musíte si do svého Jenkins.

Výhody použití Jenkins
- Jenkins je spravován komunitou, která je velmi otevřená. Každý měsíc pořádají veřejná setkání a shromažďují od veřejnosti podněty k rozvoji Jenkins projekt.
- Zatím je uzavřeno kolem 280 vstupenek a projekt vydává stabilní verzi každé tři měsíce.
- S rozvojem technologií se rozvíjí i Jenkins. Zatím Jenkins má ve své databázi pluginů publikováno přibližně 320 pluginů. S pluginy, Jenkins stává se ještě výkonnějším a bohatším na funkce.
- Jenkins Nástroj také podporuje cloudovou architekturu, takže můžete nasadit Jenkins v cloudových platformách.
- Důvod proč Jenkins stal se populárním, protože byl vytvořen vývojářem pro vývojáře.
Nevýhody použití Jenkins
Ačkoli Jenkins je to velmi silný nástroj, má i své nedostatky.
- Jeho rozhraní je zastaralé a není uživatelsky přívětivé ve srovnání se současnými trendy uživatelského rozhraní.
- Ačkoli Jenkins je oblíbený mnoha vývojáři, není tak snadné ho udržovat, protože Jenkins běží na serveru a vyžaduje určité dovednosti administrátora serveru pro sledování jeho aktivity.
- Jedním z důvodů, proč mnoho lidí neimplementuje Jenkins je to kvůli obtížnosti instalace a konfigurace Jenkins.
- Nepřetržité integrace pravidelně přerušují kvůli některým malým změnám nastavení. Průběžná integrace bude pozastavena, a proto vyžaduje určitou pozornost vývojáře.
Závěr
- V kontinuální integraci je po potvrzení kódu software okamžitě vytvořen a testován
- Jenkins používá se pro orchestraci řetězce akcí pro kontinuální integraci v softwarovém projektu
- Před Jenkins Když všichni vývojáři dokončili své přidělené úkoly kódování, všichni najednou odeslali svůj kód. Later, Build je testován a nasazen.
- Po Jenkins Kód je sestaven a otestován, jakmile vývojář kód commituje. Jenkin bude kód sestavovat a testovat mnohokrát během dne.
- Ve výchozím nastavení Jenkins dodává se s omezenou sadou funkcí. Pokud chcete integrovat své Jenkins instalace pomocí nástrojů pro správu verzí, jako je Git, pak je třeba nainstalovat pluginy související s Gitem. Zkontrolujte také Nejlepší Jenkins Alternativní nástroje
- Největší výhody Jenkins je to, že je spravováno komunitou, která pořádá veřejná setkání a přijímá od veřejnosti podněty k rozvoji Jenkins projekty
- Největší podvod Jenkins je, že jeho rozhraní je zastaralé a ve srovnání se současnými trendy v uživatelském rozhraní není uživatelsky přívětivé. Pokud zvažujete jiné možnosti, které by mohly nabídnout modernější uživatelský zážitek, možná budete chtít prozkoumat některé z špičkové nástroje pro kontinuální integraci k dispozici.

