Det bedre CI-verktøyet i 2022?

La oss diskutere disse to populære kontinuerlige integreringsverktøyene og deres forskjeller.

Metoden for programvareutviklings livssyklus har endret seg drastisk det siste tiåret.

Tidligere var fossefallsmodellen veien å gå videre, så kom smidig metodikk der utviklingen skjedde iterativt, og nå med DevOps skjer både utvikling og drift iterativt og kontinuerlig til hele applikasjonen er utviklet og distribuert.

Begrepet CI/CD, som står for kontinuerlig integrasjon og kontinuerlig levering, har blitt veldig populært. Det er en DevOps-praksis som bidrar til å utvikle og levere applikasjonen mye raskere og på en pålitelig måte. Det er en metodikk som automatiserer alle trinnene fra forretningskrav til distribusjon på produksjon ved hjelp av et CICD-verktøy. Det er langt bedre og sikrere enn å gjøre alt manuelt.

Nå er det mange verktøy tilgjengelig for CI/CD, så det kan være forvirrende å velge de riktige verktøyene.

Hvorfor Jenkins?

Jenkins er det mest populære verktøyet for kontinuerlig integrering med åpen kildekode. Det er de-facto-standarden for den kontinuerlige integrasjonsløsningen.

Du kan installere Jenkins på store operativsystemer som Windows eller Linux, siden den kjører på Java. Det ble opprinnelig laget som et byggeautomatiseringsverktøy for Java-applikasjoner. Siden den gang har den utviklet seg mye og har mer enn 1400 plugins som enkelt kan integreres med andre plattformer og verktøy.

Jenkins er kjerneverktøyet for kontinuerlig integrasjon og kontinuerlig levering i programvareutviklingsprosessen. Den er enkel å installere og gir et dashbord for prosjektstyring, som lett kan nås via en nettleser.

Utviklere bruker Jenkins til å bygge, integrere, teste og distribuere koden deres automatisk. Først sjekker utviklere inn koden deres, så plukker Jenkins opp den endrede kildekoden, utløser en build og kjører en test om nødvendig. Når byggingen er ferdig, vil du få utdataene i Jenkins-dashbordet, og et varsel kan sendes til utvikleren hvis det er satt.

Hvorfor TeamCity?

TeamCity er en kommersiell CI/CD-server som også er java-basert. Det er et byggeautomatiserings- og administrasjonsverktøy laget av JetBrains.

  Slik samler du alle chattene dine i ett med Ferdi

Slagordet til TeamCity er «Kraftig kontinuerlig integrasjon ut av boksen», og dette verktøyet rettferdiggjør det. Den tilbyr nesten alle funksjonene til Jenkins med noen få ekstra. TeamCity kan integreres med Docker for automatisk å lage containere gjennom docker-compose. Den har integreringsstøtte for Jira-verktøyet for å spore problemer enkelt.

TeamCity støtter .NET-rammeverket, og du kan enkelt integrere TeamCity med flere IDE-er som Eclipse, Visual Studio, etc. Med integrasjon for å bygge artefaktlager, kan TeamCity lagre artefaktene på TeamCity-serverens filsystem eller ekstern lagring.

Med TeamCitys gratisversjon av Professional-serverlisensen kan du lage 100 bygg og 3 byggeagenter uten kostnad.

Jenkins mot TeamCity

Åpen kildekode vs. kommersiell

Den mest grunnleggende forskjellen er at Jenkins er et åpen kildekode kontinuerlig integrasjonsverktøy og TeamCity er et kommersielt verktøy. Jenkins-prosjektet er utgitt under MIT-lisens og støttes av utviklere over hele verden. TeamCity er utviklet og vedlikeholdt av morselskapet JetBrains.

Grensesnitt

Grensesnittet til TeamCity er nydelig, og grensesnittet hjelper til med å tiltrekke seg mange nybegynnere som starter med kontinuerlig integrasjon og ser etter et CI-verktøy. I TeamCity-grensesnittet kan du merke, kommentere og pin build for å organisere dem på en bedre måte.

Grensesnittet til Jenkins er gammeldags. Det er ikke veldig attraktivt å se på og har et stort forbedringsomfang fra et UI-perspektiv.

Eksklusive funksjoner

Selv om Jenkins ikke har mange funksjoner innebygd, gir det enorme plugin-økosystemet tonnevis av funksjoner som andre CI-verktøy ikke kan tilby. Med slike plugin-funksjoner er Jenkins vant til å lage bygg og analysere koden, noe som bidrar til å forbedre kodekvaliteten.

På den annen side, bortsett fra noen vanlige CI-verktøyfunksjoner, kommer TeamCity med flere ferdige funksjoner. Den støtter flere plattformer som Java, Ruby, .NET osv. Du kan også bygge docker-bilder gjennom TeamCity. Med Bugzilla og Jira-støtte kan du enkelt utføre problemsporing. Og byggeendringer og feilhistorikk lagres for å holde tidligere informasjon på statistikken, kjøre tidligere bygg og testhistorikkrapporter.

Installasjon

For å installere Jenkins på systemet ditt, må du ha Java til stede på det. Oppsettet av Jenkins er enkelt når begge allerede er der på systemet. Når installasjonen er ferdig, kan du begynne å jobbe med Jenkins på nettgrensesnittet.

  Er Phasmophobia på Xbox One?

Det er også veldig enkelt å installere TeamCity. Du må laste ned TeamCity Server og gå til dokumentasjonen og følge instruksjonene som er nevnt.

Integrasjoner

Jeg føler ikke at noe CI-verktøy er i nærheten av Jenkins» konkurranse når vi snakker om integrasjonsevner. Populariteten til Jenkins er der i markedet fordi den gir integrasjon med hundrevis av gratis plugins.

Sammenlignet med Jenkins, kan TeamCity integreres med mye mindre plugins. Men den tilbyr få eksklusive integrasjoner, noe som legger opp til dens «out-of-box-funksjoner». Den støtter .NET-rammeverket og integreres med Visual Studio Team Services, og gir skyintegrasjon med skyleverandører som AWS, Azure, GCP, VMware.

Sikkerhet

Den gode delen av at TeamCity er kommersiell er at JetBrains støtter det slik at det vil bli prioritert for ethvert sikkerhetsfunn. TeamCity gir integrasjon med Snyk sikkerhetsplugin, som kan utføre sårbarhetsskanning i byggepipelinen. Det hjelper deg med å identifisere og rette opp alle risikoene og truslene som er der i byggene dine.

Med tanke på at Jenkins er åpen kildekode, kan risikoreduksjon bli forsinket, da alt avhenger av utviklerens fellesskap.

Samfunnet

Samfunnet til Jenkins er stort enn TeamCity. Siden Jenkins er åpen kildekode, kan enhver utvikler bidra til dette prosjektet. Hver dag fortsetter nye utviklere å legge til sitt bidrag til dette prosjektet for å legge til nye funksjoner og gjøre det til et bedre verktøy.

På den annen side er TeamCity et kommersielt verktøy og vedlikeholdes av JetBrains-teamet. Den har et profesjonelt støttesamfunn for å utvikle dette verktøyet.

Prissetting

Jenkins er gratis å bruke, siden det er åpen kildekode, og det er derfor det er et foretrukket valg for mange organisasjoner. Organisasjoner sparer en god del ved å ikke bruke noe på et CI-verktøy som Jenkins.

TeamCity er ikke gratis å bruke. Det følger med to lisenser, som er en profesjonell serverlisens og en Enterprise serverlisens. I en profesjonell serverlisens kan du bruke 100 byggekonfigurasjoner og 3 byggeagenter gratis, og etter det 299$ for 1 ekstra byggeagent og 10 byggekonfigurasjoner. TeamCity bedriftsserverlisens starter med 3 agenter, som gir ubegrensede byggekonfigurasjoner som starter med 1 999 $.

  Hvordan historiefortelling kan hjelpe deg med å avslutte et salg

Sammenligningstabell

Jenkins
TeamCity
Skrevet i
Java
Java
Utvikler
CloudBees, Kohsuke Kawaguchi, gratis og åpen kildekode-programvare
JetBrains
Tillatelse
MIT-lisens
Proprietær kommersiell programvare
Funksjoner

  • Åpen kilde
  • Rikt sett med plugins
  • Enkelt oppsett
  • Støtte for å bygge rørledninger
  • Arbeidsflyt-plugin
  • Tonnevis av integrasjoner
  • Vert internt
  • Bygg, distribuer eller start alt som er asynkront
  • HTML-utgiver
  • Gasshåndtaket bygger
  • Nøkkelintegrasjoner
  • Skyintegrasjon
  • Bygg historie
  • Bygg infrastruktur
  • Sporing av kodekvalitet
  • VCS interoperabilitet
  • System vedlikehold
  • brukeradministrasjon
  • Utvidbarhet og tilpasning
  • Forhåndstestet Commit

Brukervennlighet
Ja
Ja
Brukergrensesnitt
Veldig grunnleggende grensesnitt
Den har et attraktivt og vakkert grensesnitt
Samfunnet
Siden det er åpen kildekode, er fellesskapet større
Mindre sammenlignet med Jenkins
Prissetting
Gratis
Profesjonell serverlisens koster 299 $ per byggeagent etter 3 gratis byggeagenter

mens

Enterprise Server-lisenskostnader starter på 1999$

Integrasjoner
1400+ integrasjoner
300+ integrasjoner
Sikkerhet
Mindre sikret
Mer sikret
API
Støtter JSON, Python, RESTful API: XML
Støtter RESTful API ved å bruke tjenestemeldinger og oppretter plugins ved hjelp av Open API
Støtte for programmeringsspråk
Java, PHP, C, C++, Fortran, Python og mange flere skriptspråk
Python, C++, Java, .NET, Ruby, PHP, Node.js og mer
Containerstøtte
Bruker Docker-plugin for Jenkins
Førsteklasses Docker-støtte rett ut av esken
Frigjøringssyklus
Oftere
Mindre hyppig
Rapportering
Gir detaljert rapport for bygg og tester
Gir rapporter med bedre nettgrensesnitt

Konklusjon

Nå vet du forskjellene mellom de to mest populære kontinuerlige integreringsverktøyene – Jenkins og TeamCity.

Når du velger et CI-verktøy for organisasjonen din, må du sjekke noen få parametere som vertsalternativer, tilgjengelige integrasjoner, gjenbrukbart kodebibliotek, containerstøtte og hvor enkelt det er å bruke og lære verktøyet. Det kontinuerlige integreringsverktøyet som passerer disse parameterne ville være et utmerket alternativ å gå for.

Hvis du fortsatt er i tvil, fortsett og prøv det med Jenkins og TeamCitys gratisversjon. Etter å ha laget noen få bygg på disse plattformene, vil du være i en mer komfortabel situasjon for å bestemme hvilket verktøy som er best for kontinuerlig integrasjon for prosjektene dine.