Jenkins vs Travis-CI: Wat is het verschil?

Wat is CI?

Continue integratie is een methode voor softwareontwikkeling waarbij leden van het team hun werk minstens één keer per dag kunnen integreren. Bij deze methode wordt elke integratie gecontroleerd door een geautomatiseerde build om de fout te zoeken. Het CI-concept werd meer dan twee decennia geleden voor het eerst geïntroduceerd om de 'integratiehel' te vermijden, wat gebeurt wanneer integratie wordt uitgesteld tot het einde van een project.

In deze tutorial leer je:

Hoe CI werkt?

  • Ontwikkelaars schrijven code en voeren wijzigingen door in de gedeelde repository
  • Daarna bewaakt de CI-server de repository en evalueert alle wijzigingen
  • CI bouwt het systeem en voert integratie- en unittests uit
  • De server geeft inzetbare artefacten vrij
  • De continue integratieserver wijst een build-tag toe aan de versie en bouwcode
  • Vervolgens rapporteert de CI-server het team over de succesvolle build. Als de tests mislukken, waarschuwt de server het ontwikkelteam over de gebeurtenis. Het team lost de problemen zo snel mogelijk op.

BELANGRIJK VERSCHIL:

  • Travis CI is een commerciële CI-tool, terwijl Jenkins een open-sourcetool is.
  • Travis CI heeft minder tijd nodig om aan de slag te gaan, terwijl Jenkins een uitgebreide installatie nodig heeft.
  • Travis CI biedt minder aanpassingsopties, terwijl Jenkins uitgebreide aanpassingsopties biedt.
  • Travis CI heeft een YAML-configuratiebestand, terwijl Jenkins de gebruiker een volledige configuratieoptie biedt.

Wat is Travis CI?

Travis CI was de eerste CI as a Service-tool. Het introduceerde een nieuwe benadering voor het bouwen van code in de cloud. Met deze CI-tool kan de gebruiker zich aanmelden, hun repository koppelen, bouwen en hun apps testen.

Travis CI-tool kan eenvoudig worden geïntegreerd met de gebruikelijke cloudrepositories zoals GitHub en Bitbucket. Het biedt veel geautomatiseerde CI-opties die de noodzaak van een dedicated server wegnemen, aangezien de Travis CI-server in de cloud wordt gehost. Hierdoor kunt u testen in verschillende omgevingen, op verschillende machines, draaiend op verschillende besturingssystemen.

Travis CI is gratis voor open source-projecten. Voor commerciële projecten moet u een ondernemingsplan aanschaffen.

Wat is Jenkins?

Jenkins is een bekroonde tool voor continue integratie die de uitvoering van implementatiecycli bewaakt. Het begon als een nevenproject van de software-engineersgroep van Sun. Later werd het uitgebreid als een van de populaire open source CI-tools die softwareontwikkelingsteams helpen hun implementaties te automatiseren.

Jenkins is een op Java gebaseerde tool, wat betekent dat je alleen Java Runtime Environment nodig hebt om het te bedienen. Daarom kan Jenkins worden geïnstalleerd op elk besturingssysteem waarop Java draait.

In deze tool kunnen ontwikkelaars ook voorwaarden specificeren voor aangepaste builds. Jenkins ondersteunt een enorm plug-inarchief. Hierdoor kunnen ontwikkelaars veranderen hoe Jenkin eruitziet en werkt.

Bovendien wordt de Jenkins Pipeline-suite met plug-ins geleverd met speciale tools waarmee ontwikkelaars eenvoudig tot complexe leveringspijplijnen kunnen modelleren met behulp van de DSL-methode (Digital Subscribe line).

Wat doet Travis?

Travis CI biedt de volgende voordelen:

  • U kunt GitHub-projecten volgen
  • Voert Test uit en genereer snel resultaten. Parallelle testuitvoering is mogelijk.
  • Bouw artefacten en controleer de codekwaliteit
  • Eenvoudige implementatie naar cloudservices
  • Het kan zowel kleine als grote codewijzigingen identificeren.
  • Ontwikkelaars kunnen Travis CI gebruiken om de tests te bekijken wanneer ze worden uitgevoerd.
  • De tool integreert met Slack, HipChat, e-mail, enz.

Wat doet Jenkin?

Met Jenkins kunt u uw build-, test- en implementatietaken automatiseren. De tool biedt ondersteuning voor verschillende besturingssystemen, zoals Windows-, Mac OSX- en Linux-systemen.

Bovendien geeft Jenkins u de mogelijkheid om snel uw code te bouwen en te testen om vroegtijdige feedback te krijgen of deze al dan niet gereed is voor productie. In de meeste gevallen heeft Jenkin weinig aanpassingen nodig volgens de aangepaste vereisten van uw team.

Travis CI-functies:

  • Automatische integratie met GitHub
  • Toegang tot de opslagplaats om pull-verzoeken te maken
  • Ondersteuning voor 21 talen zoals Android, C, C#, C++, Java, JavaScript (met Node.js), Perl, PHP, Python, R, Ruby, etc
  • Voorgeïnstalleerde bouw- en testtools
  • Beschikbare services - databases, berichtenwachtrijen, enz.
  • Implementatie naar meerdere cloudservices
  • Versleutel veilige omgevingsvariabelen of bestanden
  • Virtuele machines opnieuw gemaakt na elke build
  • CLI-client en API voor scripting
  • Wordt geleverd met gratis cloudgebaseerde hosting die geen onderhoud of beheer vereist.

Jenkin-functies:

  • Eenvoudig te installeren, upgraden en configureren
  • Gedistribueerde builds
  • Externe banen bewaken
  • Meer dan 600 plug-ins om uw Jenkins-omgeving aan te passen
  • Meer dan 1000+ openbare repositories op Github, 500+ bijdragers, sterke commit-activiteit
  • Ondersteuning voor verschillende authenticatiemethoden, versiecontrolesystemen, notificaties, etc.
  • Jenkins biedt API voor externe toegang en de bijbehorende functionaliteiten.
  • Bied een krachtige CI/CD-tool voor grote projecten
  • Het ondersteunt verschillende jobmodellen zoals Freestyle, Pipeline, enz.,
  • Stelt ontwikkelaars in staat hun extensies toe te voegen
  • Compatibel met Docker, Libvirt, Kubernetes en vele andere programma's

Travis vs. Jenkins

Parameter Jenkin Travis
Kosten Jenkins is gratis. Maar het ontwikkelteam moet hun dedicated server draaien en onderhouden. Dit kan als een extra uitgave worden beschouwd.Travis CI enterprise-suites beginnen bij $ 129 per maand. Kostenverhoging op basis van het ondersteuningsniveau dat u nodig heeft.
Installatie tijd Jenkins heeft een uitgebreide installatie nodig. U heeft dus een zeer lange wachttijd voor de volledige installatie.Het kost veel minder tijd om te beginnen. Maak een configuratiebestand en begin met integreren.
Uitvoering Als u op zoek bent naar een CI-tool met onbeperkte aanpassingsmogelijkheden, dan is Jenkins de beste keuze voor u.Travis CI is de beste keuze als u in een open source-project werkt.
Gereedschapstype Het is een open source gratis om de tool te gebruiken.Het is een commerciële CI-tool
Gebruik Makkelijk te gebruikenFlexibel in gebruik
Github Goed voor GithubUitstekend voor Github
Steun Uitgebreide ondersteuning vanuit de gemeente.Beperkte steun voor de gemeenschap.
Pluspunten
  • Aanpassing is het grootste voordeel van de Jenkins CI-server
  • Een uitgebreid plug-inarchief kan worden geconfigureerd om het uiterlijk van Jenkins te veranderen.
  • U kunt ook nieuwe functionaliteit toevoegen, zoals authenticatie, waarschuwingen en inloggegevens.
  • Integratie met GitHub & cloud
  • Onbeperkte open source-projecten met volledige functionaliteit
  • Uitgebreide projectconfiguratie via .travis.ymi-bestand
  • Sta clustertests toe en voer ze parallel uit
  • Meerdere build-omgevingen en doelplatforms (d.w.z. Node 0.10,0.8,0.6, Li on).
nadelen
  • Een groot nadeel van Jenkins voor continue integratie is dat het zeer configureerbaar is. Er is geen out-of-the-box setup. Daarom kan het twee tot drie uur tot dagen duren voordat alles in het systeem is geconfigureerd.
  • De grootste nadelen van het installeren van Travis CI is dat de commerciële plannen beginnen bij $ 129 / m, wat vrij duur is.
  • Niet geschikt voor hoogbeveiligde projecten
  • In tegenstelling tot andere CI-tools biedt het geen Bitbucket-ondersteuning.
Gebruiksplannen VrijGratis voor open source-projecten. Betaald voor Enterprise.
Servermachine Server-gebaseerdCloudgebaseerd
Aanpassingsopties MeerMinder
Configuratie Volledig aanpasbaarYAML
Controle op systeem VolVeel minder

Populariteitsindex

Het aantal vragen met het label Jenkins en Travis in Stack Overflow.

Wat is beter?

Met de bovenstaande discussie kunnen we dus vaststellen dat Travis en Jenkins beide geweldige functies bieden. Kleine open source-projecten zijn echter het meest geschikt voor Travis CI, omdat het eenvoudig uit te voeren en snel in te stellen is. Aan de andere kant zijn grote ondernemingen het meest geschikt voor Jenkins, omdat het gratis licenties biedt voor een privéproject en een breed scala aan aanpasbare functies. We kunnen dus zeggen dat beide tools voor continue integratie op hun manier goed zijn.