Definicja #
GitLab to platforma DevOps (Development + Operations) udostępniająca kompleksowy zestaw narzędzi do zarządzania cyklem życia oprogramowania w ramach jednej aplikacji. Dostępna jest jako SaaS (gitlab.com) lub instalacja self-hosted (Community Edition — CE i Enterprise Edition — EE).
Kluczowe funkcjonalności GitLab:
- Repozytoria Git — hostowanie kodu, branching strategies (GitFlow, trunk-based), code review przez Merge Requests
- GitLab CI/CD — wbudowany, potężny system CI/CD oparty na plikach
.gitlab-ci.yml; Runners (własne lub shared), pipeline'y wieloetapowe, artifacts, environments - Issue Tracking i Project Management — issues, epics, milestones, boards Kanban, roadmapy
- Container Registry — wbudowany rejestr obrazów Docker
- Security Scanning — SAST, DAST, dependency scanning, secret detection wbudowane w pipeline
- GitLab Pages — hostowanie stron statycznych
- Wiki i dokumentacja — wiki zintegrowane z repozytorium
GitLab CI/CD — plik .gitlab-ci.yml definiuje stages (build, test, deploy) i joby. Runners mogą działać na własnej infrastrukturze (Docker, Kubernetes, shell) lub w chmurze GitLab.
Zastosowania #
GitLab stosuje się do:
- Kompleksowego zarządzania kodem i CI/CD w jednym narzędziu — bez integracji zewnętrznych narzędzi (Jenkins, Jira, SonarQube mogą być zastąpione przez wbudowane funkcje)
- Self-hosted DevOps w środowiskach wymagających pełnej kontroli danych — banki, sektor publiczny, firmy z restrykcyjnymi wymogami bezpieczeństwa
- Automatyzacji pipeline'ów CI/CD — build, test, deploy z wbudowanymi skanerami bezpieczeństwa
- Zarządzania projektami w małych i średnich zespołach — issue tracking, milestony, boards zastępują osobne narzędzia
- Skanowania bezpieczeństwa kodu (DevSecOps) — integracja security scans bezpośrednio w pipeline'ie
Ścieżka nauki #
GitLab jest stosunkowo łatwy do opanowania dla osoby znającej Git. Kluczowa nauka to CI/CD.
Zacznij od:
- Podstawy Git — bez znajomości Git nie ma sensu zaczynać GitLab; branching, merging, rebase
- Interfejs GitLab — repozytorium, Merge Requests (code review), Issues
- Pierwsza konfiguracja CI/CD — utwórz plik
.gitlab-ci.ymlz prostym pipeline'em (build + test) - GitLab Runners — zainstaluj własnego runnera Docker, zrozum jak działają shared runners
Następnie pogłębiaj:
- Zaawansowane pipeline'y — stages, artifacts, cache, environments, manual actions, schedules
- GitLab Container Registry — budowanie i przechowywanie obrazów Docker w pipeline
- Bezpieczeństwo — wbudowane SAST, secret detection, dependency scanning w pipeline
- GitLab API i automatyzacja — REST API do zarządzania projektami, webhooks
- Administracja self-hosted — instalacja, aktualizacje, backup, LDAP/SSO integracja (jeśli planujesz własną instancję)
FAQ #
- Czym różni się GitLab od GitHub?
- GitHub jest największą platformą hostingu kodu (należy do Microsoftu), z ogromnym ekosystemem open-source. GitLab wyróżnia się wbudowanym, kompletnym potokiem CI/CD i jest popularny jako self-hosted dla firm wymagających pełnej kontroli danych. GitHub Actions to konkurent GitLab CI/CD. Obie platformy oferują podobne funkcje — wybór zależy często od środowiska organizacji.
- Czy GitLab Community Edition jest darmowy?
- Tak — GitLab Community Edition (CE) jest open-source i bezpłatny do self-hosted. Gitlab.com oferuje bezpłatny plan z podstawowymi funkcjami CI/CD. Płatne plany (Premium, Ultimate) dodają zaawansowane funkcje: security scanning, compliance, zaawansowane portfolio management.
- Co to jest GitLab Runner?
- GitLab Runner to agent wykonujący joby CI/CD zdefiniowane w .gitlab-ci.yml. Może działać jako proces shell, kontener Docker lub pod Kubernetes. Możesz zarejestrować własnego runnera na własnej infrastrukturze lub korzystać ze shared runners GitLab.
- Ile zarabia DevOps Engineer znający GitLab?
- DevOps Engineer w Polsce zarabia od 12 000 do 25 000 zł brutto. Znajomość GitLab CI/CD razem z konteneryzacją (Docker, Kubernetes) to core competency roli DevOps/SRE. Stawki kontraktowe dla doświadczonych DevOps wynoszą 150-250 zł/h.