Laten we het hebben over GitLab.
Het webgebaseerde DevOps-platform GitLab biedt een volledig pakket hulpmiddelen voor softwareontwikkeling, versiebeheer, continue integratie, levering (CI/CD) en communicatie. Gebaseerd op Git, het bekende gedistribueerde versiebeheersysteem, biedt een geïntegreerde oplossing voor repositorybeheer.
GitLab stelt teams in staat om hun softwareontwikkelingsprojecten efficiënt te beheren, wijzigingen te volgen en over code te communiceren. Het biedt hulpmiddelen voor projectbeheer en mogelijkheden zoals coderepositoria, probleemregistratie, codebeoordelingen, continue integratie en implementatie.
Belangrijke functies van GitLab
- GitLab’s versiebeheersysteem, dat Git als basis gebruikt, stelt ontwikkelaars in staat om wijzigingen efficiënt te volgen, branches te maken en merges te beheren.
- GitLab biedt een geïntegreerd repositorybeheersysteem dat programmeurs in staat stelt hun codebasis effectief op te slaan, te ordenen en te beheren.
- Probleemregistratie: Met GitLab’s ingebouwde probleemregistratiesysteem kunnen teams problemen creëren en volgen, deze toewijzen aan teamleden en de voortgang volgen.
- GitLab biedt een krachtige CI/CD-pijplijn die de build-, test- en implementatieprocessen automatiseert. Het stelt teams in staat om codewijzigingen onmiddellijk samen te voegen, geautomatiseerde tests uit te voeren en apps te implementeren.
- Samenwerkingstools zoals code reviews, commentaar en inline gesprekken maken het gemakkelijker voor teamleden om samen te werken en input te geven over codewijzigingen.
- GitLab biedt projectmanagementtools zoals mijlpalen, borden, Kanban en Agile borden, waardoor teams succesvol kunnen plannen en bijhouden van hun projectvoortgang.
- Beveiliging en Toegangscontrole: Om de integriteit van de code te waarborgen en tegen potentiële beveiligingsproblemen te beschermen, biedt GitLab verschillende beveiligingsmogelijkheden, zoals op rollen gebaseerde toegangscontrole, goedkeuringen van merge requests en kwetsbaarheidsbeheer.
Figuur 1 GitLab CICD-Pijplijnarchitectuur
GitLab is beschikbaar in verschillende edities, van een gratis community editie tot een premium versie met meer functionaliteit en ondersteuningsopties. Het kan worden gebruikt als een cloudgebaseerd dienst via GitLab.com of zelf gehost on-premises.
GitLab Continuous Integration en Continuous Delivery (CI/CD)
GitLab CI/CD is een robuuste continue integratie- en leveringsplatform aangeboden door GitLab, een webgebaseerd Git-repositorybeheertool. Teams kunnen elke stap van het softwareontwikkelingslevenscyclus automatiseren met GitLab CI/CD, van code-commit tot implementatie, door gebruik te maken van een reeks pijplijnen.
Een overzicht van het GitLab CI/CD-proces wordt hieronder gegeven:
- GitLab Configuratie: Voordat u begint, moet u een GitLab-repository hebben ingesteld en ingesteld. U kunt uw eigen zelf-hosted instantie van GitLab instellen of de cloud-hosted versie gebruiken.
- .gitlab-ci.yml: Het brein achter GitLab CI/CD is opgenomen in het .gitlab-ci.yml bestand. Dit bestand, dat de CI/CD-pijplijn beschrijft, bevindt zich in de hoofdmap van uw projectrepository. Het bestaat uit verschillende stappen, taken en instructies die definiëren hoe uw code moet worden gebouwd, bekeken en vrijgegeven. De taal waarin het is geschreven, is YAML.
- Pijpleidingen: In GitLab CI/CD is een pijplijn een verzameling van stadia en taken die de acties aangeven die moeten worden uitgevoerd voor een bepaalde branch of tag in uw repository. U kunt het testen en implementatieproces automatiseren door elke pijplijn te laten starten wanneer er een nieuwe commit of merge-verzoek plaatsvindt.
- Taken en Stadia: Stadia geven de pijplijnstappen weer, inclusief bouwen, testen en implementeren. U specificeert één of meer taken – individuele eenheden van werk – binnen elke niveau. Taken kunnen op afzonderlijke runners (zoals virtuele machines, containers of Kubernetes-pods) worden uitgevoerd, hetzij gelijktijdig of opeenvolgend.
- Runners: GitLab CI/CD gebruikt runners om de taken uit uw pijplijn uit te voeren. GitLab biedt zowel gedeelde runners als aangepaste runners die u zelf kunt opzetten op uw eigen infrastructuur. Uw builds en tests zullen altijd uitgevoerd worden, aangezien GitLab Runners op nieuwe taken letten en deze uitvoeren in veilige, geïsoleerde omgevingen.
- Jobartefacten en Rapporten: GitLab CI/CD stelt u in staat om artefacten op te slaan die binnen de pijplijn worden geproduceerd, zoals code-dekkingresultaten, testrapporten of gebouwde binaire bestanden. U kunt deze artefacten downloaden en gebruiken voor implementatie of verdere onderzoek.
- Integraties en Implementatie: GitLab CI/CD biedt talrijke integraties om uw code te implementeren op verschillende omgevingen, waaronder Kubernetes-clusters, cloudinfrastructuur zoals Azure, AWS of Google Cloud, of zelfs aangepaste servers. We hebben de mogelijkheid om uw eigen implementatiescripts te maken of gebruik te maken van GitLab’s vooraf gedefinieerde implementatietemplates.
- Monitoring en Feedback: GitLab CI/CD geeft u toegang tot informatie over de status en ontwikkeling van uw pipelines via de GitLab-gebruikersinterface. We kunnen logs bekijken, bijhouden hoe elke taak wordt uitgevoerd en meldingen ontvangen wanneer een pipeline run succesvol is of faalt.
GitLab CI/CD omvat een verscheidenheid aan mogelijkheden, zoals caching, omgevingsvariabelen, geheimbeheer en meer, zodat u uw CI/CD-werkstromen kunt aanpassen en verbeteren om aan uw behoeften te voldoen.
Over het algemeen vereenvoudigt GitLab CI/CD het proces van het ontwikkelen, testen en implementeren van software, waardoor teams sneller en efficiënter hoogwaardige applicaties kunnen maken.
GitLab CI: Parallelle Verwerking
Voor een ontwikkelaar zijn er weinig dingen vervelender dan lang moeten wachten tot alles na het pushen van nieuwe code is afgerond. Deze handleiding demonstreert stap voor stap hoe parallelle verwerking de implementatietijden aanzienlijk kan verkorten.
A great approach to decrease deployment times and give your development and quality assurance teams faster feedback is to run your automated deployments in parallel as part of our Gitlab CICD pipeline. Running your deployment in parallel cuts down on wait times and makes it possible to send bug fixes and upgrades to production more quickly without sacrificing the number of tests you run.

Afbeelding 2 GitLab Gelijktijdige Uitvoering van Taken
Uitvoeren van parallelle implementatieautomatisering met GitLab CICD is vrij eenvoudig, maar er zijn enkele instellingsparameters waar je van moet weten. We gaan elke stap behandelen bij het instellen van parallelle uitvoering om implementaties te versnellen in deze tutorial en hoe de resultaten te communiceren met het SRE-team. Dus laten we beginnen!
Figuur 3 GitLab – Parallelle Implementaties met Regio’s
GitLab Parallelle Implementatiewerkstroom
Om uitvoeringstijden te verbeteren, moeten we meerdere implementatiejobs gelijktijdig uitvoeren. In elke instantie van een implementatiejob moeten we vervolgens bepaalde instructies uitvoeren, zoals het maken van verschillende delen van een site, integreren van webservers en het aanbrengen van configuratie-updates.
We hebben meer dan XX jobs in de pipelines die we gebruiken om ons GitLab-toepassing te bouwen en implementeren. Niet alle posities zijn gelijk. Sommige zijn snelle operaties die slechts enkele seconden in beslag nemen, terwijl andere langdurige processen zijn die zorgvuldig moeten worden geoptimaliseerd. De wijzigingen door teamleden en bijdragers uit de grotere gemeenschap worden weerspiegeld door elk van deze pipelines. Om ervoor te zorgen dat de update als bedoeld werkt en is geïntegreerd met de rest van het product, moeten alle toepassing/project bijdragers wachten tot de pipelines zijn voltooid. Om de productiviteit van onze teams hoog te houden, willen we dat onze pipelines zo snel mogelijk worden voltooid.
Daarom controleren we voortdurend de lengte van onze pipelines. Bijvoorbeeld, succesvolle reeksen pipelines namen ongeveer 53,8 minuten in beslag om te voltooien in de vorige release.
Stel dat we elke dag ongeveer 100 tot 200 pipelines uitvoeren, willen we onderzoeken of we ons proces kunnen optimaliseren om te beïnvloeden hoe lange taken worden uitgevoerd.
Figuur 4 GitLab – Volgorde-uitvoering van taken
In dit deel heb je onderzocht hoe taken volgorde worden uitgevoerd. In het tweede deel van deze serie leer je hoe we knelpunttaken oplossen door ze parallel uit te voeren.
Source:
https://dzone.com/articles/how-to-use-gitlab-for-simultaneous-execution-of-jo