Det bedre CI-værktøj i 2022?

Lad os diskutere disse to populære kontinuerlige integrationsværktøjer og deres forskelle.

Metoden til softwareudviklings livscyklus har ændret sig drastisk i det sidste årti.

Tidligere var vandfaldsmodellen vejen frem, så kom den agile metodologi, hvor udviklingen skete iterativt, og nu med DevOps sker både udvikling og drift iterativt og kontinuerligt, indtil den komplette applikation er udviklet og implementeret.

Begrebet CI/CD, som står for kontinuerlig integration og kontinuerlig levering, er blevet meget populært. Det er en DevOps-praksis, der hjælper med at udvikle og levere applikationen meget hurtigere og på en pålidelig måde. Det er en metode, der automatiserer alle trin, der starter fra forretningskrav til implementering i produktionen ved hjælp af et CICD-værktøj. Det er langt bedre og sikrere end at gøre alt manuelt.

Nu er der mange værktøjer tilgængelige til CI/CD, så det kan være forvirrende at vælge de rigtige værktøjer.

Hvorfor Jenkins?

Jenkins er det mest populære open source værktøj til kontinuerlig integration. Det er de-facto-standarden for den kontinuerlige integrationsløsning.

Du kan installere Jenkins på større operativsystemer som Windows eller Linux, da det kører på Java. Det blev oprindeligt skabt som et byggeautomatiseringsværktøj til Java-applikationer. Siden da har det udviklet sig meget og har mere end 1400 plugins til nemt at integrere med andre platforme og værktøjer.

Jenkins er kerneværktøjet til kontinuerlig integration og kontinuerlig levering i softwareudviklingsprocessen. Det er nemt at installere og giver et dashboard til projektstyring, som nemt kan tilgås via en browser.

Udviklere bruger Jenkins til at bygge, integrere, teste og implementere deres kode automatisk. Først tjekker udviklere deres kode ind, derefter henter Jenkins den ændrede kildekode, udløser en build og kører en test, hvis det kræves. Når bygningen er færdig, får du outputtet i Jenkins dashboard, og en meddelelse kan sendes til udvikleren, hvis den er indstillet.

Hvorfor TeamCity?

TeamCity er en kommerciel CI/CD-server, der også er java-baseret. Det er et byggeautomatiserings- og administrationsværktøj skabt af JetBrains.

  Sådan beskæres og ændres billedformat for videoer på iPhone eller iPad

Sloganet for TeamCity er “Kraftfuld kontinuerlig integration ud af boksen”, og dette værktøj retfærdiggør det. Det tilbyder næsten alle funktioner i Jenkins med få ekstra. TeamCity kan integreres med Docker for automatisk at oprette containere gennem docker-compose. Det har integrationsstøtte til Jira-værktøjet til nemt at spore problemer.

TeamCity understøtter .NET frameworket, og du kan nemt integrere TeamCity med flere IDE’er som Eclipse, Visual Studio osv. Med integration til at bygge artefaktlager kan TeamCity gemme artefakterne på TeamCity serverens filsystem eller eksternt lager.

Med den gratis TeamCity-version af den professionelle serverlicens kan du oprette 100 builds og 3 build-agenter uden omkostninger.

Jenkins vs. TeamCity

Open Source vs. kommerciel

Den mest grundlæggende forskel er, at Jenkins er et open source kontinuerlig integrationsværktøj, og TeamCity er et kommercielt værktøj. Jenkins-projektet er udgivet under MIT-licens og understøttet af udviklere over hele kloden. TeamCity er udviklet og vedligeholdt af moderselskabet JetBrains.

Interface

TeamCitys grænseflade er dejlig, og grænsefladen hjælper med at tiltrække en masse begyndere, der starter med kontinuerlig integration og leder efter et CI-værktøj. I TeamCity-grænsefladen kan du tagge, kommentere og fastgøre build for at organisere dem på en bedre måde.

Jenkins’ grænseflade er old school. Det er ikke særlig attraktivt at se på og har et enormt forbedringsmuligheder set fra et UI-perspektiv.

Eksklusive funktioner

Selvom Jenkins ikke har masser af funktioner indbygget, giver dets enorme plugin-økosystem tonsvis af funktioner, som andre CI-værktøjer ikke kan tilbyde. Med sådanne plugin-funktioner er Jenkins vant til at skabe builds og analysere koden, hvilket hjælper med at forbedre kodekvaliteten.

På den anden side, bortset fra nogle almindelige CI-værktøjsfunktioner, kommer TeamCity med flere out-of-the-box funktioner. Det understøtter flere platforme såsom Java, Ruby, .NET osv. Du kan også bygge docker-billeder gennem TeamCity. Med Bugzilla og Jira support kan du nemt udføre problemsporing. Og bygningsændringerne og fejlhistorikken gemmes for at holde tidligere oplysninger i statistikken, køre tidligere builds og testhistorikrapporter.

Installation

For at installere Jenkins på dit system, skal du have Java til stede på det. Opsætningen af ​​Jenkins er ligetil, når de begge allerede er der på systemet. Når installationen er færdig, kan du begynde at arbejde på Jenkins på dens webgrænseflade.

  Hvordan fungerer 3D-print?

Det er også meget nemt at installere TeamCity. Du skal downloade TeamCity Serveren og gå til dokumentationen og følge de nævnte instruktioner.

Integrationer

Jeg føler ikke, at noget CI-værktøj er tæt på Jenkins’ konkurrence, når vi taler om integrationsmuligheder. Populariteten af ​​Jenkins er der på markedet, fordi det giver integration med hundredvis af gratis plugins.

Sammenlignet med Jenkins kan TeamCity integreres med meget mindre plugins. Men det tilbyder få eksklusive integrationer, hvilket tilføjer dets “ud af boksen-funktioner”. Det understøtter .NET frameworket og integreres med Visual Studio Team Services, hvilket giver cloud-integration med cloud-udbydere såsom AWS, Azure, GCP, VMware.

Sikkerhed

Den gode del af, at TeamCity er kommerciel, er, at JetBrains understøtter det, så det ville blive fastsat på prioritet for ethvert sikkerhedsfund. TeamCity giver integration med Snyk sikkerhed plugin, som kan udføre sårbarhedsscanning i byggepipelinen. Det hjælper dig med at identificere og afhjælpe alle de risici og trusler, der er i dine builds.

I betragtning af at Jenkins er open source, kan risikoreduktion blive forsinket, da det hele afhænger af udviklerens fællesskab.

Fællesskab

Samfundet i Jenkins er stort end TeamCity. Da Jenkins er open source, kan enhver udvikler bidrage til dette projekt. Hver dag bliver nye udviklere ved med at tilføje deres bidrag til dette projekt for at tilføje nye funktioner og gøre det til et bedre værktøj.

På den anden side er TeamCity et kommercielt værktøj og vedligeholdes af JetBrains-teamet. Det har et professionelt supportfællesskab til at udvikle dette værktøj.

Prissætning

Jenkins er gratis at bruge, da det er open source, og derfor er det et at foretrække for mange organisationer. Organisationer sparer et godt beløb ved ikke at bruge noget på et CI-værktøj som Jenkins.

TeamCity er ikke gratis at bruge. Det følger med to licenser, som er en professionel serverlicens og en Enterprise serverlicens. I en professionel serverlicens kan du bruge 100 build-konfigurationer og 3 build-agenter gratis, og derefter 299$ for 1 ekstra build-agent og 10 build-konfigurationer. TeamCity enterprise serverlicens starter med 3 agenter, som giver ubegrænsede build-konfigurationer startende med 1.999 $.

  12 Cryptocurrency API'er til dataforskere/udviklere

Sammenligningstabel

Jenkins
TeamCity
Skrevet i
Java
Java
Udvikler
CloudBees, Kohsuke Kawaguchi, gratis og open source-software
JetBrains
Licens
MIT-licens
Proprietær kommerciel software
Funktioner

  • Open source
  • Rigt sæt plugins
  • Nem opsætning
  • Support til at bygge rørledninger
  • Workflow plugin
  • Tonsvis af integrationer
  • Hostet internt
  • Byg, implementer eller start noget asynkront
  • HTML-udgiver
  • Gashåndtaget bygger
  • Nøgleintegrationer
  • Cloud integration
  • Byg historie
  • Byg infrastruktur
  • Sporing af kodekvalitet
  • VCS interoperabilitet
  • System vedligeholdelse
  • Brugerstyring
  • Udvidelsesmuligheder og tilpasning
  • Forudtestet Commit

Brugervenlighed
Ja
Ja
Brugergrænseflade
Meget grundlæggende interface
Det har en attraktiv og smuk grænseflade
Fællesskab
Da det er open source, er fællesskabet større
Mindre sammenlignet med Jenkins
Prissætning
Ledig
Professional Server-licens koster 299$ pr. build-agent efter 3 gratis build-agenter

hvorimod

Enterprise Server-licensomkostninger starter ved 1999$

Integrationer
1400+ integrationer
300+ integrationer
Sikkerhed
Mindre sikret
Mere sikret
API
Understøtter JSON, Python, RESTful API: XML
Understøtter RESTful API ved hjælp af servicemeddelelser og opretter plugins ved hjælp af Open API
Understøttelse af programmeringssprog
Java, PHP, C, C++, Fortran, Python og mange flere scriptsprog
Python, C++, Java, .NET, Ruby, PHP, Node.js og mere
Container support
Bruger Docker plugin til Jenkins
Førsteklasses Docker-support ud af kassen
Frigivelsescyklus
Hyppigere
Mindre hyppigt
Indberetning
Giver en detaljeret rapport for builds og tests
Giver rapporter med bedre web-UI

Konklusion

Nu kender du forskellene mellem de to mest populære kontinuerlige integrationsværktøjer – Jenkins og TeamCity.

Når du vælger et CI-værktøj til din organisation, skal du kontrollere nogle få parametre såsom hostingmuligheder, tilgængelige integrationer, genanvendeligt kodebibliotek, containersupport, og hvor nemt det er at bruge og lære værktøjet. Det kontinuerlige integrationsværktøj, der passerer disse parametre, ville være en glimrende mulighed at gå efter.

Hvis du stadig er i tvivl, så gå videre og prøv det med Jenkins og TeamCity gratis version. Efter at have oprettet et par builds på disse platforme, ville du være i en mere komfortabel situation til at beslutte, hvilket værktøj der er bedre til kontinuerlig integration af dine projekter.