GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Gitlab.com

This view

  • Original page
  • New address

GeezerVison is showing talks.marcelthole.de — Toolchains » Gitlab

Gitlab

Einblicke in Gitlab CE

Gitlab Version 11.0
Marcel Thole
Release alle 4 Wochen

Agenda

  • Was ist Gitlab?
  • Wie bekomme ich Gitlab?
  • Funktionen
  • Gitlab im Vergleich
  • Live-Demo

Was ist Gitlab?

  • Repository Manager
  • Projektverwaltung
  • Continous Integration & Continous Deployment
  • Versionen
    • Kostenlose Community Edition
    • Kostenpflichtige Enterprise Edition (Starter, Premium, Ultimate)
Frage: Wer benutzt schon Gitlab?
CI/CD: Tests, Reviews, Artefakte, staging deploy, subdomain Deploy, live-Deploy

Wie bekomme ich Gitlab?

  • Als SaaS beziehen
    • Kostenloser Account auf Gitlab.com
    • 4$, 19$ und 99$ Accounts pro Monat
    • Daten liegen auf AWS, Digital Ocean und Azure
  • Selber hosten
    • Installation über Linux Paketmanager
    • Installation über Docker
    • Manuelle Installation mit Omnibus Paket
Bezahlte Accounts haben auch teilweise Enterprise Features
Neu: Jetzt mit Backups ;)

Funktionen

Merge Request (Pull-Request)

  • Kommentare & Diskussionen
  • Diskussionen für Bilder
  • Aus Kommentaren Tickets erstellen
  • WIP Status
  • Merge-Konflikt via GUI/WebIDE lösen
  • Merge Konflikte können direkt in der GUI/WebIDE gemergt werden. (Merge, kein rebase)
  • Squaschen beim Mergen
  • Auto-Merge beim erfolgreichen CI

Issues

  • Kanban Board
  • Meilensteine
  • Time-Tracking
  • Kanban-Board Zuordnung über Labels

Slash Commands / Quick Actions

  • Fix #20 in commit Messages
  • /spend 1h 15m - Zeit buchen
  • /assign user1 - Ticket zuweisen

Todos / Aufgaben

  • Anhand von @user Kommentaren
  • Merge-Requests
ToDos sieht man in seinem Dashboard und zeigt somit Aufgaben an.

Wiki & Code Snippets

  • Markdown Wiki
  • Code-Highlight
  • Repo unter project.wiki.git

Berechtigungen & Sicherheit

  • Geschützte Branches und Tags
  • Merge-Requests nur bei gelösten Kommentaren erlauben
  • SSH-Key Bitsize Mindestlänge definierbar
  • PGP Keys um Git-Commits zu signieren
  • Two-Factor Authentication (Google Authenticator, FreeOTP)
Nur user mit höheren Berechtigungen können gegen Master/staging pushen

Arbeitsablaufsanalysen

  • Analyse über Status der Tickets und Deployments

Templates

  • Projektbezogene Templates für
    • Merge-Requests
    • Issues
  • .md Dateien im .gitlab Verzeichnis
Liegen im Repo unter .gitlab

Continous Integration &
Continous Deployment

  • .gitlab-ci.yml
  • Gitlab Runner
    • Projektbezogen
    • Tag basiert
    • executor: shell, docker, ssh, kubernetes
  • Pipelines
Pfad zur gitlab-ci.yml kann in den Einstellungen angepasst werden
Runner: Filter möglich für Tags, geschützte Branches, Projekte
Pipelines = gesamter Build Prozess

Auto-DevOps

  • Integration mit Kubernetes
  • Autodeploy mit existierenden Templates
  • Standardprozesse laufen mit wenig Konfiguration
  • Pipeline Aufbau:
    • Build
    • Test (Qualität, Tests, SAST)
    • Review & Deploy
    • Perfomance Überwachung
  • SAST = Static Application Security Testing
  • Prometheus wird z.B. direkt mitinstalliert
GKE: Google Kubernetes Engine
AWS: Kubernetes Cluster

Monitoring

  • Integration via Prometheus
  • Code-Coverage der Tests
  • Vergleich der Builds
  • Ansicht direkt im Merge-Request

API & Drittanwendungen

  • Web-Hooks
  • REST-API v4 & GraphQL in Planung
  • Liste an Drittanwendungen
    • Issue Tracker: Bugzilla, Redmine, Jira
    • CI: Bamboo, Jetbrains Teamcity
    • Monitoring: Prometheus
    • Chats: Hipchat, Slack, IRC, Campfire
REST-API: Im Review Build den MR mit Daten kommentieren.

Funktionen durch Config-Anpassungen

Gitlab Pages

  • Deploy von statischen Seiten für Projekte, Gruppen und Benutzer
  • .gitlab-ci.yml Eintrag notwendig
  • pages:
      script:
      - mkdir .public
      - cp -r * .public
      - mv .public public
      artifacts:
        paths:
        - public
      only:
      - master
                        
Hinweis: Es muss aktuell unter public liegen
Gruppen und Benutzer müssen ein Projekt mit Ihrem Namen erstellen.
only: master -> Kann jeder Branch sein. Z.b. ein eigener Branch nur für Pages.
Mehrere Domains möglich

Chat via Mattermost

  • Komplett integriertes Chat-Programm
  • Slash-Commands und Notifications
  • Automatisches anlegen von Gruppen

Docker Container Registry

  • Docker Registry direkt in Gitlab
  • Buildprozess um Images aktuell zu halten

Enterprise Funktionen

Preise

Starter (Bronze) Edition: $39 (~30 €) pro User pro Jahr
Premium (Silber) Edition: $199 (~160 €) pro User pro Jahr
Ultimate (Gold) Edition: $999 (~815 €) pro User pro Jahr
Starter = Selber Hosten
Bronze = Gitlab.com Account

Starter

  • Anzahl an Reviewer pro MR
  • Support

Premium

  • Konfiguration der Kanban-Boards
  • Sprint Burndown Chart
  • CI für Code-Qualität & Browser-Perfomance
  • Rollout auf 10%, 25%, 50%, 100% der Pods

Ultimate

  • Gast-Accounts zählen nicht zur Lizenz
  • Lizenz Überwachung der Libraries
  • Static Application Security Testing
  • Dynamic Application Security Testing
SAST und DAST: Check auf bekannte Sicherheitslücken<

Gitlab im Vergleich zu ...

... Versionsverwaltungssystemen

Gitlab Github
Private Repos Kostenlos Kostenpflichtig
Tickets und Wiki Vorhanden Vorhanden
Statische Seiten Vorhanden Vorhanden
Berechtigungen Projekt, Wiki, Issues Projekt
Code-Owners Noch nicht vorhanden (EE #1012) Vorhanden
Code-Owner: definieren welche user für welche Bereiche verantwortlich sind

... CI/CD Tools

Gitlab Jenkins
API Vorhanden Vorhanden
Jobs Shedules von Jobs Vorhanden
Reports Vorhanden Vorhanden
Integration Vollständig Über Plugins
Shedules: Zeitplan um Jobs auszuführen in .gitlab-ci.yml

job:
  only:
    - schedules

Live-Demo

Download (.zip)
gitlab.demo / Mattermost / Demo Projekt
Tickets, Ticket-Template, Kanban Board (Labels), Shedules, Registry, Mattermost, Environments, Prometheus, Gitlab-Ci-Templates, SSH-Schlüssel/GPG-Key, Artefakte

Ende

Fragen?

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.