GitLab als alternative Entwicklungsplattform zu Github.com

Post on 25-Jul-2015

98 views 0 download

Transcript of GitLab als alternative Entwicklungsplattform zu Github.com

GitLab als alternativeEntwicklungsplattform zu Github.comChemnitzer Linux-Tage 2015 21. März 2015

Ralf LangLinux Consultant/Developer

B1 Systems GmbHlang@b1-systems.de

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

GitLab – Open-Source-Unterstützung beimgemeinsamen Coden

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 2 / 23

Warum Versionsverwaltung?

einfaches Rechtemanagementintegrierte FeedbackoptionenReviews erzwingenZeit für’s Coden gewinnen – kein umständliches Managementvon Tools und Benutzern

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 3 / 23

Warum ein eigenes VCS?

strikte Zugriffskontrolle auf den Source Codeniemand Drittes involviertdedizierte Ressourceneinfach einzufügen in Umgebungen mit speziellen Tools undReportssensible Daten bleiben im Haus

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 4 / 23

Was ist GitLab?

. . . eine Open-Source-Software zum gemeinsamen Entwickelnvon Code. . . ein Abkömmling von Git, dem am weitesten verbreiteten VCSfür Softwareentwicklung. . . ein Qualitätsgarant durch sein umfangreiches Reviewsystem

⇒ GitLab vereinfacht verteiltes Arbeiten an Projekten mit einemzentralen Server.

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 5 / 23

GitLab Features im Überblick

Code ReviewBug Trackingpersönliche und private BranchesGitLab kann mehrere Git Repositories verwalten25.000 Benutzer auf einem ServerHochverfügbarkeit im active/active Cluster möglichCode SnippetsAccess ControlIssue TrackingWeb HooksWiki

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 6 / 23

GitLab ist kollaborativ, weil . . .

. . . es eine unbegrenzte Anzahl öffentlicher oder privaterRepositories unterstützt. . . es eine unbegrenzte Anzahl öffentlicher oder privaterProjektmitglieder ermöglicht. . . es LDAP-Integration bietet. . . es sich in externe Ticketsysteme integrieren lässt (z. B.Redmine). . . das Omnibus Paket die Konfiguration externer Datenbankenwie PostgreSQL oder MySQL unterstützt. . . mit JIRA zum Issue Tracking benutzt werden kann. . . es den Merge Request Status für Builds auf Jenkins CIanzeigen kann (nur Enterprise Edition)

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 7 / 23

Wer verwendet GitLab?

Mehr als 100.000 Organisationen, wie z. B.:AT&TBellCERNFraunhoferInterpolJülich Research CenterNASAO’Reilly MediaRed Hat. . .

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 8 / 23

Das GitLab-Projekt

aktiv seit September 2011über 700 aktive Entwicklerverwaltet von GitLab.comOpen Core Business Model:

GitLab EE (Enterprise Edition):Enterprise-Version unter proprietärer Lizenz mit Support durchGitLab B.V.GitLab CE (Community Edition):Open-Source-Version unter der MIT License

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 9 / 23

Herkömmlicher Git-Workflow

1 Repository klonen2 Branch anlegen3 Source Code ändern4 Einchecken5 Patch anlegen oder Änderungen Upstream pushen

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 10 / 23

Nachteile des herkömmlichen Git-Workflows

Jeder Mitarbeiter braucht für seine Committs Schreibzugriff aufdie Projekte.⇒ beabsichtigte Workflows können umgangen werden (fehlendeAbsicherung durch Rechte)

Patchbearbeitung (format-patch):Jeder Mitarbeiter muss nach Einreichung seiner Patches auf einemanuelle Bearbeitung durch einen Reviewer warten.⇒ immer noch ein arbeits- und zeitintensiver sowiefehleranfälliger Prozess

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 11 / 23

Der GitLab Workflow1 Fork des Repositories in den eigenen Namensraum2 Vollzugriff auf die eigene geforkte Kopie erteilen3 Online im Browser oder im lokalem Checkout editieren4 Merge-Request einreichen: ⇒ Die Änderungen gehen online und

können diskutiert werden; der Reviewer kommentiert Diffs.5 Automatisierter Prozess zur Re-Integration von Forks ins

Mainstream-Repository

⇒ keine Notwendigkeit, Zugriffsrechte zu geben oder zu entziehen⇒ keine endlosen Threads mit Patchmails⇒ entspricht den Paradigmen für Code-Reviews:

Unabhängigkeit der Entwicklung von einzelnen Teammitgliedernleichte Integration neuer TeammitgliederCode-Reviews helfen Bugs aufzudecken

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 12 / 23

Internes Issue/Review System

APIs für externes TicketingZugriff auf Redmine Tickets über Git Commit Messagesalternativ: internes Ticketing

API für Gitlab CIContinuous Integration:

automatisierte Buildsdurch Commits getriggerte Testsuite

Dead Code Detectors (DCD) entfernen überflüssigen Code.Code Coverage (CC) Tools helfen die Testabdeckungaufzuzeigen (funktionale Tests, Sicherheitstests).⇒ bessere Qualität der Software

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 13 / 23

Zugriffskontrolle

GitLab bietet Zugriffskontrolle für Benutzer und Gruppenbasierend auf unterschiedlichen Rechte-Levels.Befugnisse eines Benutzers hängen ab von seinem Zugriffslevelauf ein bestimmtes Projekt oder eine Gruppe.Gehört ein Benutzer gleichzeitig einer Projektgruppe und demProjekt selbst an, wird das höhere Rechte-Level angewandt.Der GitLab Administrator erhält alle Rechte.

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 14 / 23

GitLab Continuous Integration

fügt sich in die GitLab-Installation ein, um Tests für Projektelaufen zu lassenLogin mit GitLab-Accountneue Projekte mit einem Klick hinzufügenInstallation auf eigener Hardware („On-Premises“)kann auf allen beliebigen Linux-Servern installiert werden

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 15 / 23

GitLab Dashboard – Projektüberblick

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 16 / 23

GitLab Dashboard – Commits

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 17 / 23

GitLab Dashboard – Workflow

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 18 / 23

GitLab Dashboard – Neues Projekt

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 19 / 23

GitLab Dashboard – Projekte

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 20 / 23

GitLab Dashboard – Projektdateien

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 21 / 23

Mehr Informationen zu GitLab . . .

GitLab.com:GitLab.com

GitLab Continuous Integration (CI):https://about.gitlab.com/gitlab-ci/

Die offizielle GitLab Dokumentation:http://doc.gitlab.com/ce/

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 22 / 23

Vielen Dank für eure Aufmerksamkeit!Bei weiteren Fragen wendet euch bitte an info@b1-systems.de oder

+49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development