GitLab
GitLab CI/CD & DevOps Platform
Kompletna platforma DevOps - od repozytorium kodu po wdrazanie na produkcje. CI/CD pipelines, Container Registry i wiecej w jednym narzedziu.
GitLab to jedna z najpopularniejszych platform DevOps w firmach. Wbudowane CI/CD eliminuje potrzebe oddzielnych narzedzi. Wiele zespolow Cloud Engineerow uzywa GitLab do zarzadzania infrastruktura jako kodem.
GitLab to kompletna platforma DevOps, ktora laczy repozytorium kodu, CI/CD pipelines, Container Registry, monitoring i zarzadzanie projektami w jednym narzedziu. W przeciwienstwie do GitHub, ktory skupia sie na hostingu kodu, GitLab od poczatku byl budowany jako end-to-end platforma DevOps.
Kluczowa sila GitLab to wbudowane CI/CD. Plik .gitlab-ci.yml w repozytorium definiuje caly pipeline - od budowania, przez testy, po wdrazanie na produkcje. GitLab Runner wykonuje te zadania na Twoich maszynach lub w chmurze.
Dla Cloud Engineera GitLab to czesto glowne narzedzie codziennej pracy. Przechowujesz tam kod Terraform, Dockerfile, skrypty automatyzacyjne i konfiguracje. Pipeline automatycznie waliduje, testuje i wdraza infrastrukture.
GitLab CI/CD dziala na zasadzie pipeline zdefiniowanego w .gitlab-ci.yml. Kazdy push lub merge request uruchamia pipeline automatycznie.
Push kodu lub MR
Developer pushuje kod do brancha lub tworzy Merge Request. GitLab wykrywa plik .gitlab-ci.yml.
Pipeline startuje
GitLab parsuje .gitlab-ci.yml i tworzy pipeline z etapami (stages) i zadaniami (jobs).
Runner pobiera job
Wolny GitLab Runner pobiera job, przygotowuje srodowisko (kontener Docker) i klonuje repozytorium.
Wykonanie jobow
Runner wykonuje komendy zdefiniowane w script:. Artefakty i raporty sa zbierane i wyswietlane w UI.
Deploy na produkcje
Po przejsciu testow, etap deploy wdraza aplikacje na srodowisko docelowe (ECS, EKS, EC2, S3).
Praktyczne wskazowki pracy z GitLab CI/CD w srodowiskach AWS.
Uzywaj cache i artefaktow
Cache przyspiesza pipeline (np. node_modules). Artefakty przekazuja pliki miedzy stages (np. build -> test -> deploy).
PoczatkujacyRunner na EC2 Spot Instances
Zainstaluj GitLab Runner na EC2 Spot z auto-scaling. Oszczedzasz do 90% kosztow CI/CD przy zachowaniu wydajnosci.
ZaawansowanyOIDC zamiast access keys
Skonfiguruj GitLab OIDC z AWS IAM. Pipeline dostaje tymczasowe credentials bez przechowywania kluczy w zmiennych CI.
ZaawansowanySrodowiska i review apps
Uzywaj GitLab Environments do sledzenia wdrozen. Review Apps tworza tymczasowe srodowisko dla kazdego MR.
ZaawansowanyDo czego sluzy GitLab?
CI/CD dla infrastruktury
Pipeline automatycznie uruchamia terraform plan na merge requeście i terraform apply po merge do main. Code review dla infrastruktury.
Budowanie i wdrazanie kontenerow
GitLab CI buduje obrazy Docker, pushuje do GitLab Container Registry i wdraza na ECS lub EKS. Caly flow w jednej platformie.
GitOps workflow
Kazda zmiana w infrastrukturze przechodzi przez merge request z code review, automatycznymi testami i approval. Pelny audit trail.
Skanowanie bezpieczenstwa
GitLab SAST, DAST i Dependency Scanning automatycznie wykrywaja podatnosci w kodzie i zaleznosiacach w kazdym pipeline.
Co musisz wiedziec?
.gitlab-ci.yml
Plik definiujacy pipeline CI/CD. Opisuje stages (etapy), jobs (zadania), zmienne srodowiskowe i warunki uruchomienia.
GitLab Runner
Agent wykonujacy jobs w pipeline. Moze dzialac na EC2, w Docker, Kubernetes lub jako shared runner na GitLab.com.
Merge Request (MR)
Odpowiednik Pull Request. Propozycja zmian z code review, dyskusja, automatyczne testy i approval przed merge.
Stages
Etapy pipeline: build, test, deploy. Jobs w tym samym stage dzialaja rownolegle, kolejne stages - sekwencyjnie.
GitLab Container Registry
Wbudowany rejestr obrazow Docker. Kazdy projekt ma wlasny registry. Integracja z CI/CD jest bezszwowa.
Przyklady GitLab CLI
Klonowanie repozytorium
Sklonuj repozytorium GitLab przez SSH
git clone [email protected]:firma/infrastruktura.git
Tworzenie Merge Request z CLI
Uzywajac glab CLI (oficjalne narzedzie GitLab)
glab mr create --title 'feat: dodaj nowy VPC' --description 'Terraform VPC z 3 subnetami'
Uruchomienie pipeline reczne
Trigger pipeline przez API
curl --request POST --header 'PRIVATE-TOKEN: glpat-xxxx' \
'https://gitlab.com/api/v4/projects/12345/pipeline' \
--form 'ref=main'
Konfiguracja Runnera
Zarejestruj GitLab Runner na EC2
sudo gitlab-runner register \
--url https://gitlab.com/ \
--token glrt-xxxx \
--executor docker \
--docker-image alpine:latest
Jak GitLab dziala z AWS?
GitLab integruje sie z AWS przez OIDC federation (bezpieczne credentials bez access keys), GitLab Runner na EC2 z auto-scaling, wdrazanie na ECS/EKS/S3 z pipeline CI/CD, GitLab Container Registry jako alternatywa dla ECR, oraz integracje z AWS CodeDeploy do zaawansowanych strategii wdrazania.
Quiz: GitLab
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz - feedback pojawi sie od razu.
1. Co definiuje plik .gitlab-ci.yml?
2. Co to jest GitLab Runner?
3. Jak stages dzialaja w pipeline?
Serwisy AWS powiazane z GitLab
Chcesz poznac GitLab w praktyce?
Kurs GitLab jest w przygotowaniu. Zapisz sie na newsletter, zeby nie przegapic premiery. W miedzyczasie sprawdz darmowy kurs "AWS od podstaw".