GitLab¶
1. Planen¶
Issues¶
Mit dem GitLab Issue Tracker könnt ihr gemeinsam Ideen entwickeln, wie ihr Probleme lösen und Arbeiten planen könnt. Die Issues sind immer mit einem bestimmten Projekt verknüpft, können aber auch für alle Mitglieder einer Gruppe angezeigt werden. Sie werden vor allem genutzt, um
die Umsetzung von neuen Ideen zu diskutieren
den Fortschritt der Aufgaben zu verfolgen
Vorschläge und (Hilfs-)Fragen aufzunehmen
Implementierungen zu entwickeln
Ihr könnt auf Themen verweisen und euch diesen Link anzeigen lassen. Ähnliche Aufgaben können auch markiert werden. Alternativ könnt ihr auch externe Issue-Tracker wie Jira verwenden.

Issue-Seite¶

Issue-Liste¶
Kanban-Boards¶
Ihr könnt Kanban-Boards verwenden, um Arbeitsabläufe zu planen, zu organisieren und zu visualisieren. Mit ihnen könnt ihr schnell Probleme verfolgen und Projekte verwalten.
Neben Kanban-Boards könnt ihr euch auch jederzeit Listen anzeigen lassen mit
alle offenen Issues
alle abgeschlossenen Issues
alle Issues zu einem Label
alle Issues, die einer Person zugeordnet sind
alle Issues eines Meilensteins

Kanban-Board¶
Zusammenarbeit¶
GitLab bietet euch nicht nur Versionskontrolle des Quellcodes, sondern verbessert auch die Zusammenarbeit zwischen den Entwickler*innen:
sie können Änderungen überprüfen, kommentieren und verbessern
sie können den Quellcode mit anderen teilen, die Wiederverwendung und das Inner-Sourcing verbessern.
sie können in ihrer eigenen Kopie des Repositorys arbeiten
Kontinuierliche Integration (CI) und kontinuierliche Bereitstellung (CD) beschleunigen das Testen und die Bereitstellung
Analyse¶
GitLab zeigt an, wer an einem Projekt gearbeitet hat und wie viel
Die Verzweigungen und Zusammenführungen werden auch im Zeitverlauf dargestellt, was ebenfalls zeigt, wie effektiv der Git-Workflow ist
Für jeden Zweig eines Repositorys zeigt GitLab den Anteil der verwendeten Programmier- und Auszeichnungssprachen an
GitLab-Badges geben euch einen schnellen Überblick über verschiedene Bereiche eines Projekts, vom Pipeline-Status über die Testabdeckung bis hin zu Kontaktmöglichkeiten.
2. Code¶
Repositorys¶
In jedem Projekt könnt ihr ein oder mehrere Git-Repositorys erstellen und eure
Dateien dort verwalten. In einem Repository könnt ihr auch die
Konfigurationsdatei .gitlab-ci.yml
für eure CI/CD-Pipeline hinzufügen.
Die Weboberfläche unterstützt die Anzeige und Bearbeitung vieler Auszeichnungssprachen, darunter Markdown, reStructuredText und Jupyter notebooks.
Wenn ihr eure Änderungen an den GitLab-Server übertragt, könnt ihr nicht nur eine kurze Beschreibung der Änderungen senden, sondern auch
auf ein Issue verweisen
einen Commit signieren
eine GitLab CI/CD-Pipeline anstoßen
Pipelines mit
[ci skip]
in einem Git-Commit überspringen
Wiki¶
Für jedes GitLab-Projekt kann ein separates Wiki als Dokumentationssystem mit den folgenden Funktionen verwendet werden:
Seiten können über die Weboberfläche oder lokal mit Git erstellt werden
Inhaltsverzeichnisse können mit dem
[[_TOC _]]
-Tag erstellt werdenAnzeige der Liste aller erstellten Wikiseiten
Anzeige der Änderungshistorie einer Wikiseite
Anpassen der Seitenleiste mit der Datei
_sidebar

Wiki-Seite¶
Snippets¶
Mit GitLab Snippets könnt ihr Teile von Code und Text erstellen und mit anderen teilen. Snippets sind versioniert und können auch lokal mit Git bearbeitet werden. Ihr könnt sie auch kommentieren.

Snippet¶
3. Build¶
Registrierung von Paketen¶
Mit GitLab-Packages können Unternehmen GitLab als privates Repository für eine Vielzahl beliebter Paketmanager nutzen. Entwickler*innen können Pakete erstellen und veröffentlichen, die als Abhängigkeit für nachgelagerte Projekte definiert werden können. Insbesondere können auch Docker-Container für Projekte und Gruppen registriert werden. Mit GitLab CI/CD können Docker-Images zum Testen, Erstellen und Bereitstellen eures Projekts verwendet werden.
4. Testen¶
Continuous Integration (CI) und Continuous Delivery (CD)¶
GitLab unterstützt Entwickler*innen dabei, den von ihnen geschriebenen Quellcode in ein gemeinsames Repository einzubringen, um anschließend Integrationstests zu bauen und auszuführen. Und auch die Übertragung in die Staging- oder Produktionsumgebung kann mit GitLab automatisch erfolgen.

CI/CD-Pipeline¶
GitLab unterstützt die folgenden Funktionen:
- Multi-Plattform
Ihr könnt Builds auf Unix, Windows, MacOS und jeder anderen Plattform ausführen, die die Programmiersprache Go unterstützt.
- Mehrsprachigkeit
Build-Skripte funktionieren mit Java, Python, C und vielen anderen Sprachen.
- Parallele Builds
Die CI/CD-Pipeline kann schnell auf mehreren Computern gleichzeitig ausgeführt werden.
- Echtzeit-Protokollierung
Das Build-Protokoll wird ständig aktualisiert.
- Versionierte Pipelines
Die im Repository gespeicherte Datei
.gitlab-ci.yml
enthält die durchzuführenden Tests und allgemeinen Produktionsschritte.- Automatische Skalierung
GitLab CI/CD kann automatisch Docker-Container erstellen.
- Build-Artefakte
Berichte wie PDF-, dotenv-Dateien usw. können erstellt und auf dem GitLab-Server zur Verfügung gestellt werden. Auch Abhängigkeiten, Lizenzen, Leistung und andere Metriken werden beispielsweise automatisch überprüft.
- Docker-Unterstützung
Ihr könnt selbst definierte Docker-Container verwenden oder diese erstellen.
- Geschützte Variablen
Für jede Umgebung können spezifische Secrets gespeichert und verwendet werden.
Testen¶
Ein typischer Anwendungsfall ist, dass ein Test nach einer Merge-Anforderung fehlschlägt. Um weitere Untersuchungen durchzuführen, könnt ihr nun einfach die bereitgestellten Reports analysieren.

Test-Report¶
Web Performance Tests¶
GitLab verwendet Sitespeed.io, um die Leistung
von Websites zu messen und in einer performance.json
-Datei auszugeben.

Browser-Performance-Test¶
5. Release¶
Normalerweise wird vor der Veröffentlichung ein Git-Tag erstellt, um einen
Prüfpunkt in den Versionsverlauf einzufügen. In den meisten Fällen benötigen die
Benutzer jedoch kompilierte Objekte oder andere Assets, die vom CI-System
ausgegeben werden können. GitLab verwendet die semantische Versionierung mit
(Major).(Minor).(Patch)
, um automatisch zip-, tar.gz-, tar.bz2- und
tar-Dateien aus dem getaggten Quellcode und den zusätzlich angegebenen Assets zu
erzeugen.
Alternativ können Releases auch für einen bestimmten Meilenstein oder ein bestimmtes Datum erstellt werden.
Schließlich wird für jedes Projekt eine Liste aller Releases angezeigt.
6. Deploy¶
Kontinuierliche Bereitstellung (CD)¶
Ähnlich wie bei der kontinuierlichen Integration die Integrationstests automatisiert werden, automatisiert die kontinuierliche Bereitstellung den Rollout auf Staging- und Produktionsumgebungen.
Pages¶
Um eine Website mit GitLab-Pages zu veröffentlichen, könnt ihr jeden Static Site Generator (SSG) verwenden, z. B. Gatsby, Jekyll und Hugo, um nur einige zu nennen. Ihr könnt auch jede Website veröffentlichen, die direkt in einfachem HTML, CSS und JavaScript geschrieben ist.

Pages¶
Secrets-Management¶
Mit Vault können vertrauliche Informationen wie Umgebungsvariablen, Encryption-Keys und Authentifizierungs-Tokens sicher aufbewahrt werden.
7. Betrieb¶
Metriken¶
GitLab bietet eine leistungsstarke Integration mit Prometheus zur Überwachung der wichtigsten Messdaten eurer Anwendungen direkt in GitLab. Metriken für jede Umgebung werden von Prometheus abgerufen und dann in GitLab angezeigt.

Prometheus-Dashboard¶
Incident-Management¶
Ihr könnt in GitLab einrichten, dass in Notfällen E-Mails versendet und damit verbundene Probleme in GitLab erstellt werden. Es können spezielle Vorlagen für solche Vorgänge erstellt werden. GitLab kann die Vorgänge auch automatisch schließen, sobald das Problem gelöst wurde.
Status-Page¶
Mit der GitLab-Statusseite könnt ihr eine statische Website erstellen und bereitstellen, um während eines Vorfalls effizient mit den Benutzer*innen zu kommunizieren. Allerdings werden derzeit nur Statusseiten in AWS S3 unterstützt. Die Statusseite zeigt euch einen Überblick über die letzten Vorfälle. Wenn ihr auf einen Vorfall klickt, gelangt ihr auf die Detailseite mit
Status
Titel
Beschreibung
chronologische Liste der Aktualisierungen

Status-Page¶
Hosting und Datenschutz¶
Cusy hostet eure GitLab-DevOps-Pipeline nach dem deutschen Datenschutzgesetz und unter Berücksichtigung der EU-Datenschutzgrundverordnung (DSGVO). Dies ermöglicht euch die Einhaltung einer hohen IT-Compliance im Interesse eurer Kunde*innenn und Auftraggeber*innen. Weitere Informationen darüber, wie cusy eure Daten schützt, findet ihr unter ../security-and-privacy.
Kund*innen¶
Viele große IT-Unternehmen wie Electronic Arts und Siemens nutzen GitLab, aber auch Forschungseinrichtungen wie die NASA und die University of Washington. GitLab wird auch von Rechenzentrumsbetreibern wie Equinix genutzt.
Lizenz¶
Die Open Source GitLab CE ist unter der MIT-Lizenz lizenziert.
Kontaktiert uns¶
Gerne beantworte ich eure Anfragen und erstelle euch ein passendes Angebot für das Hosting der GitLab DevOps Pipeline.
Verwandte Inhalte¶



