Wat is JenkinsWaarom een ​​tool voor continue integratie (CI) gebruiken?

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 ongeveer 300 installaties en een groeiend aantal gebruikers. 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.

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 ontworpen zijn om gastheer, controleren, compileren en proef code of codewijzigingen, zoals:

  • Continue integratieserver (Jenkins, Bamboo, CruiseControl, TeamCity, en anderen)
  • Broncontroletool (bijv. CVS, SVN, GIT, Mercurial, Perforce, ClearCase en anderen)
  • Bouwtool (Maak, ANT, Maven, Ivy, Gradle, en anderen)
  • Kader voor automatiseringstests (Selenium, Appium, TestComplete, UFT, en anderen)

Jenkin-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

Laten we ons voorstellen dat er ongeveer 10 ontwikkelaars zijn die aan een gedeelde opslagplaats. Sommige ontwikkelaars voltooien hun taak in 25 dagen, terwijl andere 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 code vastlegt. Jenkin zal gedurende de dag vele malen code 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 enkele ontwikkelaar wordt gebouwd, is het gemakkelijk om te detecteren wiens code ervoor zorgde dat de build mislukte
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.

Later, kozen ze voor de Continuous Integration-aanpak. De software werd gebouwd en getest zodra een ontwikkelaar code had vastgelegd. Als er een fout wordt gedetecteerd, kan de betreffende ontwikkelaar het defect snel herstellen.

Real-world casestudy van continue integratie

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.

Jenkins Plugins
Plugin-integratie in Jenkins

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.
  • Tot nu toe zijn er ongeveer 280 tickets gesloten en publiceert het project elke drie maanden een stabiele release.
  • Naarmate de technologie zich ontwikkelt, ontwikkelt zich ook... Jenkins. Dusver Jenkins Het platform heeft ongeveer 320 plugins in zijn plugin-database staan. 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 vergeleken met de huidige UI-trends.
  • 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.

Conclusie

  • Bij Continuous Integration wordt de software na een codecommit onmiddellijk gebouwd en getest
  • Jenkins Wordt gebruikt om een ​​reeks acties te orkestreren voor continue integratie in een softwareproject.
  • Voor Jenkins Wanneer alle ontwikkelaars hun toegewezen programmeertaken hadden voltooid, committen ze hun code doorgaans allemaal tegelijk. Later, Build is getest en geïmplementeerd.
  • Na Jenkins De code wordt gebouwd en getest zodra de ontwikkelaar de code commit. Jenkins bouwt en test de code meerdere keren per dag.
  • Standaard Jenkins Het beschikt over een beperkt aantal functies. Als u uw Jenkins Als je een installatie uitvoert met versiebeheertools zoals Git, moet je de bijbehorende plug-ins installeren. Bekijk ook de volgende informatie. Beste Jenkins Alternatieve tools
  • De grootste voordelen van Jenkins Het wordt beheerd door de gemeenschap, die openbare bijeenkomsten houdt en input van het publiek verzamelt voor de ontwikkeling ervan. Jenkins bouwprojecten
  • Het grootste nadeel van Jenkins Het nadeel is dat de interface verouderd en niet gebruiksvriendelijk is in vergelijking met de huidige UI-trends. Als u andere opties overweegt die een modernere gebruikerservaring bieden, kunt u wellicht eens kijken naar enkele van de volgende mogelijkheden. beste tools voor continue integratie beschikbaar.

Vat dit bericht samen met: