Softwareontwikkeling is een reis. Het begint met planning, analyse, ontwerp, ontwikkeling, testen, implementatie en onderhoud. Softwareontwikkelaars hebben verschillende instruments nodig om tijdens deze reis te gebruiken.
GitLab CI en Jenkins behoren tot de grootste namen in de area of interest voor proceed integratie en levering (CI/CD). CI/CD is een reeks processen die de softwareontwikkeling automatiseren.
Dit GitLab vs. Jenkins-artikel definieert elke instrument, legt uit hoe ze werken en vergelijkt hun belangrijkste kenmerken.
Wat is GitLab CI?
GitLab Steady Integration and Supply is een DevOps-tool die de stappen automatiseert die nodig zijn om uw code te bouwen, testen en implementeren in uw productieomgeving.
GitLab CI bestaat uit twee delen; Proceed integratie (CI) en proceed levering/implementatie (CD).
Proceed integratie is belast met het automatiseren van alle builds. Deze functie biedt ook suggestions by way of codebeoordeling en automatiseert beveiligings- en kwaliteitstests voor uw code. Ten slotte maakt CI een releasepakket dat u in uw productieomgeving kunt implementeren.
De Proceed implementatie Een stukje van GitLab CI richt automatisch de infrastructuur in en beheert ticketing, infrastructuurwijzigingen en versiebeheer van releases. CD biedt een omgeving voor progressieve code-implementatie en maakt de verificatie en monitoring van alle aangebrachte wijzigingen mogelijk. Met deze functie kunnen gebruikers ook wijzigingen ongedaan maken wanneer dat nodig is.
Wanneer de twee functies worden gecombineerd, kunt u de gehele softwareontwikkelingslevenscyclus (SDLC) automatiseren met minimale handmatige tussenkomst.
In een notendop is GitLab CI gewend;
- Code opslaan en beheren
- Automatiseer de CI/CD-pijplijn
- Volg problemen
- Beveiligings code
- Samenwerking
Voordelen van het gebruik van GitLab CI
- Verhoogde snelheid: U hoeft niet langer handmatige processen te doorlopen zoals het bouwen, testen en implementeren van code wanneer u GitLab CI gebruikt.
- Verbeterde codekwaliteit: Met GitLab CI kunt u bugs en fouten in uw code vastleggen voordat deze naar productie gaan.
- Zeker: GitLab CI heeft verschillende beveiligingsfuncties, zoals scannen op kwetsbaarheden, geheimbeheer en scannen van codes om hackbedreigingen te verminderen.
- Flexibel: U kunt GitLab CI aanpassen aan de behoeften van uw ontwikkelteam. U kunt deze instrument gebruiken met de belangrijkste talen en frameworks.
- Geautomatiseerd testen: U hoeft exams niet handmatig uit te voeren, omdat u scripts kunt schrijven om exams automatisch te schrijven en uit te voeren.
Wat is Jenkins?
Jenkins is een uitbreidbare automatiseringsserver. Deze open-sourcetool helpt gebruikers bij het beheren en bouwen van pijplijnen voor proceed integratie en proceed levering (CI/CD). Jenkins is een favoriet hulpmiddel voor DevOps en software-ingenieurs, omdat het de softwarekwaliteit, betrouwbaarheid en leveringssnelheid helpt verbeteren.
Jenkins voert een reeks ‘taken’ of stappen in een pijplijn uit. Een taak bestaat uit verschillende stappen die achtereenvolgens worden uitgevoerd. Een stap in Jenkins kan een build-, test-, implementatie- of elke andere taak zijn die kan worden geautomatiseerd in de levenscyclus van softwareontwikkeling.
Het gebruik van Jenkins kan als volgt worden samengevat;
- Proceed integratie
- Proceed levering
- Geautomatiseerd testen
- Monitoring en rapportage
- Code scannen
- Taakplanning
Voordelen van het gebruik van Jenkins
- Schaalbaar: Je kunt Jenkins gebruiken met zowel kleine als grote toepassingen.
- Eenvoudige configuratie: Jenkins heeft een eenvoudig configuratieproces dat wordt ondersteund door voldoende bronnen.
- Grote gemeenschap: Jenkins bestaat al bijna twintig jaar en heeft veel volgers aangetrokken.
- Een verscheidenheid aan plug-ins: U kunt de functionaliteit van Jenkins verbeteren met behulp van de grote verscheidenheid aan plug-ins.
- Maakt parallelle taakuitvoering mogelijk: Met Jenkins kunt u verschillende taken tegelijkertijd uitvoeren, waardoor u tijd bespaart.
Overeenkomsten van GitLab CI en Jenkins
- Beide ondersteunen proceed integratie en proceed levering.
- Beide zijn open source-tools.
- Beiden hebben een grote gemeenschap en volgers.
- Beide ondersteunen een verscheidenheid aan talen en frameworks
- Beide automatiseren verschillende taken in de levenscyclus van softwareontwikkeling
- Beide hebben een groot ecosysteem van plug-ins en extensies
GitLab CI versus Jenkins: een vergelijking van functies
Functie | GitLab-CI | Jenkins |
Open supply | Ja | Ja |
Taalondersteuning | Veel talen | Veel talen |
Prijzen | De meeste functies zijn beschikbaar in het free of charge abonnement. De instrument heeft ook betaalde abonnementen met meer functies. | Een nieuwer platform; werd opgericht in 2014. |
Volwassenheid | Een nieuwer platform; gemaakt in 2014. | Jenkins werd gelanceerd als Hudson, maar werd in 2011 gesplitst en omgedoopt tot Jenkins. |
Makkelijk te gebruiken | Makkelijk te gebruiken | Voor rookies kan het ingewikkeld zijn. |
Hosten | Intern en extern | Intern en extern |
Vereisten | Node.JS, Git, Ruby, Go | Java Runtime-omgeving |
GitLab CI versus. Jenkins: Gedetailleerde vergelijking
Hoewel GitLab en Jenkins overeenkomsten delen, hebben de twee duidelijke verschillen die van invloed zijn op de manier waarop zij het CI/CD-proces beheren. Dit zijn enkele van de belangrijkste gebieden;
Architectuur
Jenkins maakt gebruik van een master-worker-architectuur om builds te beheren.
- Jenkins-meester plant de taakopbouw en verdeelt deze onder de werknemers voor daadwerkelijke uitvoering. Deze functie bewaakt ook de standing van de werkers en verzamelt en verzamelt alle bouwresultaten in het webdashboard.
- Jenkins-arbeider is een uitvoerbaar Java-bestand dat op een externe machine wordt uitgevoerd. Deze functie, ook bekend als build-agent, luistert naar alle verzoeken van de grasp en voert deze uit. U kunt maximaal 100+ knooppunten hebben en naar eigen inzicht werknemers toevoegen of verwijderen.
GitLab-CI is onderdeel van GitLab, een webgebaseerde interface voor het beheren van repository’s, samenvoegverzoeken en nog veel meer. GitLab CI heeft verschillende componenten;
- Met de GitLab CI/CD-tool kunt u builds beheren.
- GitLab Runners voeren alle CI-taken uit. Dit lichtgewicht proces kan in de cloud of op uw machine worden uitgevoerd.
- CI/CD-pijplijnconfiguraties worden gedefinieerd in de
.gitlab-ci.yml
. Dit bestand definieert alle taken, fasen en stappen in de pijplijn.
Plug-ins
Jenkins heeft meer dan 1800 door de gemeenschap bijgedragen plug-ins. Deze plug-ins bestrijken verschillende gebieden, zoals het bouwen, implementeren en automatiseren van projecten. Gebruikers kunnen hun CI/CD-pijplijnen aanpassen en de functionaliteit van Jenkins uitbreiden.
Ontwikkelaars kunnen aangepaste plug-ins maken met behulp van de uitgebreide documentatie van Jenkins. Ze kunnen ook plug-ins bouwen en deze toevoegen aan de listing van Jenkins. Jenkins heeft een grote en actieve neighborhood die helpt bij het bouwen van plug-ins.
GitLab-CI stelt u in staat verbinding te maken/te integreren met externe companies voor verbeterde functionaliteit. De plug-ins/extensiebibliotheek is kleiner in vergelijking met Jenkins, maar groeit. Omdat GitLab CI onderdeel is van GitLab, wordt het geleverd met veel ingebouwde functies.
Gebruikers kunnen hun workflows aanpassen/configureren met behulp van de .gitlab-ci.yml
bestand. U kunt alle taken, fasen en stappen opgeven.
Pijpleidingen
Jenkins Hiermee kunt u zowel declaratieve als scripted pijplijnsyntaxis gebruiken. U kunt elk van de twee benaderingen gebruiken met de webinterface of een Jenkins-bestand. Dit laatste heeft de meeste voorkeur. U kunt de pijplijnen opslaan als Jenkinsfiles in de repository waarin de broncode is opgeslagen. Het platform wordt geleverd met een ingebouwde webgebaseerde GUI waarmee u de uitvoeringen kunt volgen en visualiseren.
GitLab-CI heeft een .gitlab-ci.yml
die alle pijpleidingen definieert. Dit op YML gebaseerde configuratiebestand wordt opgeslagen in de hoofdmap van het venture. De gitlab-ci.yml
staat bekend om zijn eenvoudige syntaxis met een reeks opdrachten en vooraf gedefinieerde trefwoorden die de meest voorkomende CI/CD-taken dekken. GitLab CI kan worden geïntegreerd met andere GitLab-functies, waardoor broncodebeheer, het volgen van problemen, codebeoordelingen, samenvoegverzoeken en nog veel meer mogelijk zijn.
Hoe Jenkins te installeren
Voordat u Jenkins op uw laptop installeert, heeft u een Java Runtime Setting (JRE) nodig. Obtain Java van de officiële web site, afhankelijk van uw besturingssysteem. Ik zal Ubuntu gebruiken om het installatieproces te demonstreren.
Als je een ander besturingssysteem gebruikt, lees dan ons artikel over Jenkins installeren en volg de vermelde stappen.
Voor Ubuntu volgt u deze stappen;
Stap 1: Controleer of JRE is geïnstalleerd. Voer deze opdracht uit:
java -version
Als het is geïnstalleerd, ziet u er ongeveer zo uit:
Ik heb versie “17.0.6” geïnstalleerd, maar je kunt ook een hogere versie hebben.
Stap 2: Importeer de GPG-sleutel naar uw systeem met behulp van deze opdracht;
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
Stap 3: Voeg de softwarerepository van Jenkins toe met deze opdracht;
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]
https://pkg.jenkins.io/debian-stable binary/ | sudo tee
/and many others/apt/sources.record.d/jenkins.record > /dev/null
Stap 4: Replace uw systeem met behulp van deze opdracht:
sudo apt replace
Stap 5: Installeer Jenkins met behulp van deze opdracht:
sudo apt set up jenkins -y
Stap 6: Controleer of Jenkins is geïnstalleerd met behulp van deze opdracht:
sudo systemctl standing jenkins
Indien geïnstalleerd, ziet u iets soortgelijks als dit:
Druk op ctrl+z op uw toetsenbord om af te sluiten en naar de volgende stap te gaan.
Stap 7: Pas de firewall en Jenkins op uw systeem aan. Gebruik deze opdracht:
sudo ufw enable 8080
Stap 8: Controleer de standing
sudo ufw standing
Stap 9: Als de standing “Inactief” schakel het in de vorige stap in met behulp van deze opdracht:
sudo ufw allow
Stap 10: Open Jenkins in de browser door dit in uw browser te typen;
http://localhost:8080
Stap 11: Verkrijg het “Beheerderswachtwoord” door deze opdracht uit te voeren:
sudo cat /var/lib/jenkins/secrets and techniques/initialAdminPassword
Stap 12: Ontgrendel Jenkins
Kopieer het wachtwoord dat op uw terminal wordt weergegeven, plak het in het dialoogvenster ‘Beheerderswachtwoord’ dat u in stap tien opent en klik op ‘Doorgaan’.
In het nieuwe venster wordt u gevraagd plug-ins te installeren. Omdat je momenteel niet veel plug-ins nodig hebt, kun je de standaardplug-ins kiezen en naar de volgende stap gaan
Stap 13: Maak uw account aan, ‘opslaan en doorgaan’.
Stap 14: Stel een directe configuratie in en start met het gebruiken van Jenkins
Hoe GitLab CI te installeren
GitLabCI is onderdeel van GitLab. Om GitLab CI te krijgen, moet u eerst GitLab Runner installeren, de agent die alle taken uitvoert voordat deze naar GitLab worden verzonden.
Ik zal Ubuntu gebruiken om het proces te demonstreren. Als u een ander besturingssysteem heeft, raadpleeg dan de officiële documentatie. Voor Ubuntu volgt u deze stappen;
Stap 1: Replace en configureer uw systeem;
sudo apt-get replace
sudo apt-get set up -y curl openssh-server ca-certificates tzdata perl
U kunt een e-mailoplossing configureren om updates te verzenden of deze stap overslaan.
Stap 2: Voeg GitLab-pakketrepository toe
curl https://packages.gitlab.com/set up/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Stap 3: Configureer uw GitLab-account.
Er bestaan verschillende opties voor het hosten van GitLab. Volg de instructies afhankelijk van uw keuze.
Stap 4: Blader door de hostnaam en log in. Klik op deze opdracht op uw terminal om uw wachtwoord te verkrijgen;
/and many others/gitlab/initial_root_password
Optioneel: Stel communicatievoorkeuren in om productupdates en nieuws van GitLab te ontvangen.
Beperkingen van Jenkins
- Jenkins kan advanced zijn om op te zetten voor grote projecten.
- Als Jenkins niet goed is geconfigureerd, kan hij kwetsbaar zijn voor beveiligingsaanvallen.
- Het kan lastig zijn om grote projecten te schalen als je Jenkins gebruikt.
- Jenkins kan veel bronnen verbruiken bij het uitvoeren van meerdere gelijktijdige builds.
Beperkingen van Gitlab CI
- GitLab CI kan advanced zijn voor grote projecten.
- Afhankelijk van GitLab.
- Schaalbaarheid is een probleem bij grote projecten.
- Het plug-in-ecosysteem is niet groot in vergelijking met Jenkins.
De mening van de auteur
Zowel GitLab CI als Jenkins zijn fantastische instruments in de levenscyclus van softwareontwikkeling. Ik ga voor Jenkins als ik een volwassener platform en volledige controle over maatwerk wil. Aan de andere kant ga ik voor GitLab CI vanwege de gebruikersinterface en moet ik profiteren van GitLab-integratie.
We denken nu dat je de verschillen tussen GitLab CI en Jenkins kunt zien. Hoewel de twee instruments zijn ontworpen om vergelijkbare functies uit te voeren, verschillen ze qua functies en hoe ze hun functies bereiken. De keuze tussen de twee zal afhangen van de aard van het venture dat u heeft, uw vaardigheden, smaak en voorkeuren.
U kunt nu naar deze Jenkins-hostingplatforms kijken.