Wat is JenkinsWaarom een tool voor continue integratie (CI) gebruiken?
⚡ Slimme samenvatting
Jenkins is de open-source automatiseringsserver die code bouwt en test telkens wanneer een ontwikkelaar een commit uitvoert, waardoor Continuous Integration verandert van een nachtelijke klus in een proces dat continu gedurende de werkdag draait.
Wat is Jenkins?
Jenkins is een open-source Continuous Integration-server waarin is geschreven Java voor het orkestreren van een reeks acties om het continue integratieproces op geautomatiseerde wijze te realiseren. Jenkins Ondersteunt de volledige ontwikkelingscyclus van software, van het bouwen, testen en documenteren van de software tot de implementatie en andere fasen van de softwareontwikkelingscyclus.
Jenkins is een veelgebruikte applicatie wereldwijd, met honderdduizenden installaties en een groeiend aantal dat dagelijks toeneemt. Door gebruik te maken van JenkinsSoftwarebedrijven kunnen hun softwareontwikkelingsproces versnellen, omdat Jenkins Het bouwen en testen kan in een hoog tempo geautomatiseerd worden.
Het is een servergebaseerde applicatie en vereist een webserver zoals Apache Tomcat. De reden hiervoor is... Jenkins De populariteit van deze software is te danken aan de mogelijkheid om terugkerende taken te monitoren die zich voordoen tijdens de ontwikkeling van een project. Als uw team bijvoorbeeld bezig is met de ontwikkeling van...ping een project, Jenkins Uw projectbuilds worden continu getest en fouten worden in een vroeg stadium van de ontwikkeling aan u getoond.
Let op: het inzetten van de oorlog in apache Tomcat werkt nog steeds, maar de huidige releases bevatten een ingebouwde servletcontainer, dus Jenkins Normaal gesproken werkt het zelfstandig. De 2.555.x LTS-lijn vereist Java 21.
Wat is continue integratie?
Continue integratie is een proces waarbij codewijzigingen van meerdere ontwikkelaars vele malen in één project worden geïntegreerd. De software wordt onmiddellijk na een code-commit getest. Bij elke code-commit wordt code gebouwd en getest. Als de test slaagt, wordt de build getest voor implementatie. Als de implementatie succesvol is, wordt de code naar productie gepusht.
Dit vastleggen, bouwen, testen en implementeren is een continu proces en vandaar de naam continue integratie/implementatie.
Hoe werkt Jenkins werken?
Jenkins is een servergebaseerde applicatie en vereist een webserver zoals Apache Tomcat om op verschillende platforms te draaien, zoals Windows, Linux, macOS, Unix, enz. Om te gebruiken JenkinsJe moet pijplijnen creëren, dat wil zeggen een reeks stappen die een Jenkins De server zal het accepteren. Jenkins Een Continuous Integration Pipeline is een krachtig instrument dat bestaat uit een reeks tools die zijn ontworpen om code, of codewijzigingen, te hosten, te bewaken, te compileren en te testen, zoals:
- Continue Integratie Server (Jenkins, Bamboo, CruiseControl, TeamCity, en anderen)
- Versiebeheersysteem (bijv. CVS, SVN, GIT, Mercurial, Perforce, ClearCase en andere)
- Buildtool (Make, ANT, Maven, Ivy, Gradle, en anderen)
- framework voor geautomatiseerd testen (Selenium, Appium, TestComplete, UFT, en anderen)
In de huidige versies bevinden die stappen zich in een Jenkinsbestand dat naast de code is opgeslagen. Jenkins De controller leest dat bestand en geeft elke fase door aan een agent, dat is de machine die het werk daadwerkelijk uitvoert.
Jenkins Geschiedenis
- Kohsuke Kawaguchi, op Java De ontwikkelaar, werkzaam bij SUN Microsystems, was het beu om de code steeds opnieuw te bouwen en fouten op te lossen. In 2004 creëerde hij een automatiseringsserver genaamd Hudson die de bouw- en testtaken automatiseert.
- In 2011, Oracle De eigenaar van Sun Microsystems had een conflict met de open-sourcegemeenschap van Hudson, dus hebben ze Hudson afgesplitst en hernoemd naar... Jenkins.
- Zowel Hudson als Jenkins bleef zelfstandig opereren. Maar binnen korte tijd, Jenkins verwierf veel projecten en medewerkers, terwijl Hudson slechts 32 projecten overhield. Na verloop van tijd, Jenkins Hudson werd populairder en wordt niet meer onderhouden.
Waarom Continuous Integration gebruiken met Jenkins?
Sommige mensen denken misschien dat de ouderwetse manier van ontwikkelenping Software is de betere manier. Laten we de voordelen van CI eens bekijken. Jenkins met het volgende voorbeeld
Stel je voor dat er ongeveer 10 ontwikkelaars aan een gedeelde repository werken. Sommige ontwikkelaars voltooien hun taak in 25 dagen, terwijl anderen er 30 dagen over doen.
| Voor Jenkins | Na Jenkins |
|---|---|
|
Zodra alle ontwikkelaars de hun toegewezen codeertaken hadden voltooid, voerden ze hun code allemaal tegelijkertijd uit. Later, Build is getest en geïmplementeerd. Code De commit werd uitgevoerd, de testcyclus was zeer infrequent en er werd slechts eens in de zoveel dagen een build uitgevoerd. |
De code wordt gebouwd en getest zodra de ontwikkelaar de code commit. Jenkins Ik zal de code gedurende de dag meerdere keren bouwen en testen. Als de build succesvol is, dan Jenkins zal de broncode op de testserver installeren en het implementatieteam op de hoogte stellen. Als de build mislukt, dan Jenkins De fouten worden doorgegeven aan het ontwikkelaarsteam. |
| Omdat de code in één keer is gebouwd, moeten sommige ontwikkelaars wachten tot andere ontwikkelaars klaar zijn met coderen om hun build te controleren | De code wordt onmiddellijk gebouwd nadat een van de ontwikkelaars een commit heeft gedaan. |
| Het is geen gemakkelijke taak om fouten voor meerdere commits te isoleren, detecteren en repareren. | Omdat de code na elke commit van een individuele ontwikkelaar opnieuw wordt gecompileerd, is het eenvoudig te achterhalen wiens code de build heeft laten mislukken. |
| Code bouwen en testproces zijn volledig handmatig, dus er zijn veel kansen op mislukking. | Geautomatiseerd bouw- en testproces, waardoor timing wordt bespaard en fouten worden verminderd. |
| Zodra alle fouten zijn opgelost en getest, wordt de code geïmplementeerd. | De code wordt na elke succesvolle build en test geïmplementeerd. |
| De ontwikkelingscyclus is traag | De ontwikkelingscyclus is snel. Nieuwe functies zijn gemakkelijker beschikbaar voor gebruikers. Verhoogt de winst. |
Real-world casestudy van continue integratie
Ik weet zeker dat jullie allemaal op de hoogte zijn van de oude telefoon van Nokia. Nokia implementeerde vroeger een procedure genaamd nightly build. Na meerdere commits van diverse ontwikkelaars gedurende de dag werd de software elke nacht gebouwd. Omdat de software maar één keer per dag wordt gebouwd, is het enorm lastig om de fouten in een grote codebasis te isoleren, identificeren en repareren.
LaterZe kozen voor een Continuous Integration-aanpak, zoals hieronder weergegeven. De software werd gebouwd en getest zodra een ontwikkelaar code commitde. Als er een fout werd gedetecteerd, kon de betreffende ontwikkelaar het defect snel verhelpen.
Jenkins Plugins
Standaard Jenkins Het beschikt over een beperkt aantal functies. Als u uw Jenkins Als je een versiebeheersysteem zoals Git gebruikt, moet je de bijbehorende plug-ins installeren. Voor integratie met tools zoals Maven is dat bijvoorbeeld ook nodig. Amazon Voor EC2 moet je de bijbehorende plugins installeren in je... Jenkins, zoals de onderstaande pluginmanager laat zien.
Voordelen van het gebruik Jenkins
- Jenkins Het wordt beheerd door de gemeenschap, die zeer open is. Elke maand houden ze openbare bijeenkomsten en verzamelen ze input van het publiek voor de ontwikkeling van het project. Jenkins project.
- Het project hanteert een voorspelbaar releaseritme: elke twaalf weken wordt een nieuwe basislijn voor langetermijnondersteuning gekozen, die vervolgens volgens schema wordt bijgewerkt met patches.
- Naarmate de technologie zich ontwikkelt, ontwikkelt zich ook... JenkinsDe plugin-database bevat nu meer dan tweeduizend plugins. Met plugins, Jenkins wordt nog krachtiger en rijker aan functies.
- Jenkins De tool ondersteunt ook cloudgebaseerde architecturen, zodat u deze kunt implementeren. Jenkins op cloudgebaseerde platforms.
- De reden waarom Jenkins Het feit dat het populair is geworden, komt doordat het door een ontwikkelaar voor ontwikkelaars is gemaakt.
Nadelen van het gebruik: Jenkins
Hoewel Jenkins Het is een zeer krachtig instrument, maar het heeft ook zijn gebreken.
- De interface is verouderd en niet gebruiksvriendelijk in vergelijking met de huidige UI-trends, hoewel recente releases een groot deel van het schermontwerp hebben gemoderniseerd.
- Hoewel Jenkins Het is geliefd bij veel ontwikkelaars, maar het is niet zo eenvoudig om het te onderhouden, omdat Jenkins Het draait op een server en vereist enige kennis van serverbeheer om de activiteiten ervan te monitoren.
- Een van de redenen waarom veel mensen het niet implementeren Jenkins Dit komt door de moeilijkheid van de installatie en configuratie. Jenkins.
- Continue integraties breken regelmatig vanwege enkele kleine wijzigingen in de instellingen. De continue integratie wordt gepauzeerd en vereist daarom enige aandacht van de ontwikkelaar.
- Afhankelijkheidsconflicten tussen plugins ontstaan wanneer veel plugins op verschillende tijdstippen worden bijgewerkt. Daarom hebben pluginupdates een eigen onderhoudsperiode nodig.
Als die afwegingen belangrijk zijn voor je team, vergelijk dan de Beste Jenkins Alternatieve tools en de bredere lijst van beste tools voor continue integratie voordat je besluit om een server in eigen beheer te nemen.


