GitLab ist ein Code-Hosting- und Versionsverwaltungsservice, der mit einer kompletten DevOps-Plattform gepaart ist. Hier erfährst du alles, was du darüber wissen musst: Funktionsweise, Unterschiede zu GitHub, Anwendungsfälle für Data Science und Machine Learning, Schulungen…
In den
Bereichen Data Science und
Machine Learning sowie generell in der Softwareentwicklung sind Dienste zum Hosten von Code und zur Versionsverwaltung nicht mehr wegzudenken. Zu den am häufigsten genutzten Plattformen gehören
GitHub und GitLab.
Beide Plattformen sind webbasierte Git-„Repositories“. Das Git-Versionsverwaltungssystem ermöglicht es,
Softwareentwicklungsprojekte und alle damit verbundenen Dateien zu verwalten, während sie geändert werden.
So können die von jedem Teammitglied vorgenommenen Änderungen verwaltet und überwacht werden. Die Projektmitglieder können so ihre Arbeit koordinieren und den Fortschritt im Laufe der Zeit verfolgen.
Die Informationen werden in Form von Daten in einem „Repositorium“ (repository) aufbewahrt. Es enthält die Objekte und ihre Referenzen und fungiert als zentraler Ort, an dem
Entwickler Entwicklungsprojekte speichern, teilen, testen und zusammenarbeiten können.
Was ist GitLab ?
Wie GitHub ist
GitLab ein
Gi-Repository-Manager, der es Teams ermöglicht, an Computercode zu arbeiten. Es ist in den Sprachen Ruby und Go geschrieben und wurde 2011 von Dmitriy Zaporozhets und Valery Sizov gegründet.
Es handelt sich um eine vollständig
Open-Source-Plattform. Sie ist auch
kostenlos für Privatpersonen.
Mehrere Mitglieder eines Teams können GitLab nutzen, um an einem Projekt zusammenzuarbeiten, Änderungen vorzuschlagen und bei unvorhergesehenen Problemen eventuell zurückzugehen.
Seit der Einführung der
Version 10.0 ist GitLab mehr als nur ein Git-Warehouse. Der Dienst bietet jetzt eine
„Complete DevOps“ Vision, die
Entwicklung und
Operationen in einer einzigen Benutzererfahrung vereint.
Die neue Version bietet eine bessere Integration zwischen
Entwicklungswerkzeugen und
DevOps. Die Nutzer können alle Aufgaben eines Projekts ausführen, von der
Planung über die
Verwaltung des Quellcodes bis hin zu
Monitoring und
Sicherheit.
Was sind seine verschiedenen Bestandteile?
GitLab besteht aus mehreren Komponenten, die eine komplette Lösung für DevOps und Projektmanagement bilden. Zunächst einmal können „Projekte“ erstellt werden, um Code zu hosten, daran zusammenzuarbeiten oder Probleme zu identifizieren.
Die nativen Funktionen für kontinuierliche Integration und
kontinuierliche Lieferung (Gitlab CI/CD) ermöglichen es, eine Anwendung kontinuierlich zu entwickeln, zu testen und zu verteilen. Projekte können öffentlich zugänglich gemacht werden oder nur einem internen oder privaten Publikum vorbehalten sein.
Es ist möglich, mehrere miteinander verbundene Projekte zu einer „Gruppe“ zusammenzufassen. Mithilfe von „SubGroups“ (Untergruppen) kann eine Hierarchie mit bis zu 20 Gruppenebenen erstellt werden.
Die Funktionen der
kontinuierlichen Integration (CI), die GitLab nativ anbietet, ermöglichen es, kleine Codeteile zu einer Anwendung hinzuzufügen, die in einem Git gehostet wird. Für jeden „Push “ kann eine Pipeline von Skripten ausgeführt werden, um den Code zu testen, bevor die Änderungen freigegeben und in das Projekt eingebracht werden.
Continuous Delivery and Deployment (CD) ermöglicht es, die Anwendung bei jedem Push in Produktion zu bringen. GitLabs CI/CD wird durch eine Datei namens .gitlab-ci.yml konfiguriert, die im Wurzelverzeichnis des Git-
Warehouse abgelegt wird, und die Skripte in dieser Datei werden vom GitLab Runner ausgeführt.
GitLab vs GitHub : Wo liegt der Unterschied ?
Es gibt mehrere
größere Unterschiede zwischen GitLab und GitHub. Diese Unterschiede betreffen zum Beispiel
die Authentifizierungssysteme und
Zugriffsberechtigungen, die bei
GitLab granularer sind und sich daher besser für große Teams eignen, die an großen Projekten arbeiten.
Darüber hinaus zeichnet sich
GitLab durch sein
Integrations- und
Continuous Delivery-System aus. Dadurch können Entwicklungsteams wertvolle Zeit sparen. Für Benutzer, die bereits eine externe
Continuous Integration nutzen, ist die Plattform kompatibel mit
Jenkins,
Codeship und vielen anderen.
Das System
Auto DevOps ermöglicht es außerdem,
automatische Continuous Integration oder Continuous Delivery ohne menschliches Zutun zu starten.
GitLab ist damit
GitHub im Bereich
DevOps einen Schritt voraus.
Ende 2019 hat
GitHub „Actions“ eingeführt. Dieses neue System ermöglicht es, Aufgaben zu schreiben, um den Entwicklungs-Workflow zu
automatisieren und zu
anpassen. Im Gegensatz dazu bietet
GitHub keine Plattform für die Bereitstellung. Eine Drittanbieteranwendung wie
Heroku ist erforderlich.
Der letzte Unterschied ist der Preis der „Enterprise“-Versionen der beiden Dienste. Die Enterprise-Variante von
GitHub wird ab
250 US-Dollar pro Nutzer und Jahr angeboten, während
GitLab ab
39 US-Dollar pro Nutzer und Jahr beginnt.
Zusammengefasst ist
GitHub mit Abstand das
populärste Git-Repository mit
mehreren zehn Millionen Nutzern gegenüber nur
100.00 für
GitLab. Dennoch begleitet
GitLab Teams durch den gesamten
DevOps-Prozess und ist für Unternehmen erschwinglicher.
GitLab für Data Science und Machine Learning
Teams für Data Science und
Machine Learning können einem Unternehmen einen wertvollen Vorteil verschaffen, indem sie aus Datensätzen verwertbare Informationen gewinnen.
Um dies zu erreichen, haben sie jedoch erhebliche Anforderungen an die Zusammenarbeit, die Projektplanung und das Projektmanagement sowie die Versionsverwaltung von Dateien, Modellen oder Datensätzen.
Fachleute für
Data Science und Machine Learning müssen außerdem in der Lage sein, entscheidende Schritte im Arbeitsablauf zu automatisieren, um effizienter zu werden und manuelle Fehler zu vermeiden. Sie müssen auch die Test- und Validierungsprozesse ihrer Arbeit flüssiger gestalten, um schneller und wiederholbarer zu werden.
Und schließlich muss die Verwaltung der Infrastruktur so einfach wie möglich sein (vor allem, wenn diese Infrastruktur auf mehreren Cloud-Anbietern basiert). GitLab erfüllt diese Anforderungen und ist deshalb ein unverzichtbares Werkzeug für Data Science und Machine Learning.
Teams können problemlos abteilungsübergreifend zusammenarbeiten, ihre Arbeit verwalten und planen und den Überblick über Änderungen behalten, die während der Entwicklung, des Trainings und des Einsatzes von Modellen vorgenommen wurden.
Die
Automatisierung wird durch das CI/CD von GitLab ermöglicht, mit dem Modelle einfach validiert werden können, indem bei jeder Änderung verschiedene Elemente getestet werden. Auch der Aufbau und die Bereitstellung eines Modells sind automatisiert. Schließlich kann ein Modell in jeder beliebigen Cloud bereitgestellt und verwaltet werden.
Vor kurzem hat Iterative.ai ein neues
Open-Source-Projekt namens
CML (continuous machine learning) gestartet. Dieses Projekt ermöglicht es, das GitLab CI an die Anwendungsfälle von Data Science und Machine Learning anzupassen. Als Beispiele seien hier das automatische Training von Modellen, das automatische Testen oder das Reporting mit
Datenvisualisierung genannt.
GitLab: Wie lernt man seine Anwendung ?
Um zu lernen, wie man
GitLab benutzt, kannst Du Dich für einen der Kurse von Liora anmelden.
Unsere hybriden Kurse basieren auf einem innovativen „Blended Learning“-Ansatz (Hybrid aus Präsenzunterricht und Fernunterricht) und bieten Dir die Möglichkeit, ein von der
Universität Sorbonne zertifiziertes Diplom zu erwerben.
GitLab steht auf dem Programm unserer
Data Engineer-Ausbildung. In diesem Kurs lernst du den Beruf des Data Engineers und die verschiedenen Werkzeuge und Techniken, die in diesem Beruf verwendet werden.
Wenn Du bereits Data Scientist bist und dir Fähigkeiten zur Umsetzung von
Machine-Learning-Modellen aneignen möchtest, kannst Du Dich für unseren Machine-Learning-Engineer-Kurs entscheiden. Gitlab ist eines der Werkzeuge, die im Modul „Testen und Einsetzen“ dieses Kurses auf dem Programm stehen.
Du weißt jetzt ein bisschen mehr alles über GitLab. Lerne weitere Tools für
Data Engineering und
ML Engineering kennen, z. B. die
Container-Plattform Docker und die Workflow-Automatisierungslösung
Apache Airflow.