GitLab als alternative Entwicklungsplattform zu Github.com

23
GitLab als alternative Entwicklungsplattform zu Github.com Chemnitzer Linux-Tage 2015 21. März 2015 Ralf Lang Linux Consultant/Developer B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Transcript of GitLab als alternative Entwicklungsplattform zu Github.com

Page 1: 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 [email protected]

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

Page 2: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab – Open-Source-Unterstützung beimgemeinsamen Coden

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 2 / 23

Page 3: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 4: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 5: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 6: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 7: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 8: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 9: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 10: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 11: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 12: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 13: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 14: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 15: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 16: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Projektüberblick

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 16 / 23

Page 17: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Commits

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 17 / 23

Page 18: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Workflow

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 18 / 23

Page 19: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Neues Projekt

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 19 / 23

Page 20: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Projekte

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 20 / 23

Page 21: GitLab als alternative Entwicklungsplattform zu Github.com

GitLab Dashboard – Projektdateien

B1 Systems GmbHGitLab als alternative

Entwicklungsplattform zu Github.com 21 / 23

Page 22: GitLab als alternative Entwicklungsplattform zu Github.com

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

Page 23: GitLab als alternative Entwicklungsplattform zu Github.com

Vielen Dank für eure Aufmerksamkeit!Bei weiteren Fragen wendet euch bitte an [email protected] oder

+49 (0)8457 - 931096

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