Curs CI/CD și GitOps

Configurați pipeline-uri complete în GitLab CI, Jenkins și GitHub Actions, apoi implementați GitOps cu Argo CD și Flux pentru deployment automat pe Kubernetes, cu strategii blue/green și canary.

15 capitole90 lecții4 h 31 minNivel: AvansatCertificat la final
Curs CI/CD și GitOps

Ce veți învăța

  • Configurați pipeline-uri complete în GitLab CI, cu runners și artefacte
  • Scrieți fișiere Jenkinsfile declarative pentru pipeline as code în Jenkins
  • Construiți workflow-uri GitHub Actions cu joburi, matrix builds și secrete
  • Construiți imagini de container fără Docker daemon, cu Kaniko și Buildah
  • Integrați teste automate și analiza securității direct în pipeline
  • Implementați GitOps cu Argo CD și cu Flux pentru sincronizare automată din Git
  • Aplicați strategii de deployment blue/green și canary cu Argo Rollouts
  • Gestionați în siguranță secretele și credențialele folosite în pipeline

Despre curs

Cursul acoperă automatizarea completă a livrării de software, de la primul commit până la aplicația care rulează în producție pe un cluster Kubernetes. Plecați de la principiile integrării continue și ale livrării continue, apoi configurați pipeline-uri reale în trei unelte folosite pe scară largă în industrie, GitLab CI, Jenkins și GitHub Actions, fiecare cu particularitățile proprii de sintaxă și de execuție.

Capitolele de GitLab CI arată instalarea unui runner propriu, structura fișierului .gitlab-ci.yml, artefacte între joburi și cache pentru dependențe, plus pipeline-uri avansate cu needs pentru execuție paralelă. Jenkins primește două capitole dedicate, de la instalare și configurare de agenți până la scrierea unui Jenkinsfile declarativ, cu Shared Libraries pentru reutilizarea logicii de pipeline între proiecte multiple. GitHub Actions acoperă workflow-uri, matrix builds pentru testare pe mai multe versiuni de limbaj și reusable workflows pentru echipe cu mai multe depozite.

Un capitol arată construirea imaginilor de container fără un daemon Docker privilegiat, cu Kaniko și cu Buildah, metoda recomandată pe un runner partajat sau pe un Kubernetes Job. Testele automate primesc un capitol propriu, cu integrare de teste unitare, teste de integrare cu servicii dependente și analiză statică a codului cu SonarQube, plus praguri de acoperire care blochează merge-ul până la corectarea codului.

Partea de GitOps tratează separat Argo CD și Flux, cele două unelte dominante pentru sincronizarea automată a stării unui cluster Kubernetes cu un depozit Git, cu sync automat, self-heal și App of Apps la Argo CD, respectiv Kustomization și HelmRelease la Flux. Strategiile de deployment acoperă blue/green și canary release cu Argo Rollouts, pentru reducerea riscului la fiecare lansare. Un capitol separat tratează secretele, de la Vault și Sealed Secrets până la semnarea imaginilor cu cosign.

Cursul presupune cunoștințe de bază despre Docker, Git și un cluster Kubernetes funcțional, kubeadm sau k3s, instalarea și administrarea clusterului fiind acoperite în cursul dedicat de Kubernetes, nu aici. Este pentru administratori de sistem, ingineri DevOps și dezvoltatori care vor să automatizeze fluxul de la cod până în producție, nu pentru cine nu a lucrat niciodată cu containere sau cu un cluster Kubernetes. Laboratorul final cere un flux complet, de la commit într-un depozit Git până la aplicația live, cu build de imagine, scanare de securitate, sincronizare GitOps prin Argo CD și deployment canary cu promovare treptată a traficului.

Pentru cine este cursul

Administratori de sistem și ingineri DevOps care automatizează build-uri și deployment-uri, dezvoltatori care vor să înțeleagă fluxul de la commit până în producție și freelanceri care configurează CI/CD pentru clienți proprii.

Pentru cine nu este

Nu este pentru cine nu a instalat niciodată o aplicație pe un cluster Kubernetes, laboratorul final presupune un cluster funcțional și manifeste YAML de bază. Cursul nu predă administrarea Kubernetes, kubectl sau Helm de la zero, acestea sunt acoperite în cursul dedicat de Kubernetes. Aici accentul cade exclusiv pe automatizarea build, test și deployment cu unelte CI/CD și GitOps.

Ce trebuie să știți înainte

Aveți nevoie de un cont GitLab.com sau GitHub gratuit, un VPS sau o mașină virtuală cu minimum 2 vCPU și 4 GB RAM pentru Jenkins, și un cluster Kubernetes funcțional, kubeadm sau k3s, pentru capitolele de GitOps și pentru laboratorul final. Cunoștințe de bază despre Docker, Git și comenzile kubectl sunt necesare.

Ce veți putea face după curs

  • Puteți construi un pipeline CI/CD complet, de la commit până la deployment automat
  • Puteți alege și configura unealta potrivită, GitLab CI, Jenkins sau GitHub Actions
  • Puteți implementa GitOps cu Argo CD sau Flux pentru un cluster Kubernetes
  • Puteți aplica strategii de deployment cu risc redus, blue/green și canary
  • Puteți securiza secretele și imaginile de container folosite în producție
  • Puteți aplica pentru poziții de inginer DevOps sau platform engineer

Cuprins

  1. 1. Principii CI/CD și livrare continuă

    • Diferența dintre integrare continuă, livrare continuă și deployment continuu gratuit
    • Trunk-based development și Git Flow pentru pipeline-uri rapide3 min
    • Componentele unui pipeline: build, test, package, deploy3 min
    • Semantic versioning și etichetarea automată a versiunilor cu git tag3 min
    • Pipeline as code, de ce configurarea trăiește în depozitul Git3 min
    • Alegerea platformei CI/CD: GitLab CI, Jenkins sau GitHub Actions3 min
  2. 2. GitLab CI, runners și structura pipeline-ului

    • Instalare GitLab Runner pe Linux, executor shell, Docker sau Kubernetes3 min
    • Structura fișierului .gitlab-ci.yml: stages, jobs, script3 min
    • Rulare joburi în containere Docker cu image și services3 min
    • Variabile predefinite și variabile CI/CD definite în proiect3 min
    • Rules și only/except pentru controlul execuției joburilor3 min
    • Depanare runner offline sau job blocat în starea pending3 min
  3. 3. GitLab CI, pipeline-uri avansate și artefacte

    • Artefacte între joburi cu artifacts:paths și expire_in3 min
    • Cache pentru dependențe (node_modules, .m2, pip) între rulări3 min
    • Pipeline-uri child și include pentru fișiere .gitlab-ci.yml modulare3 min
    • DAG cu needs pentru execuție paralelă, nu doar secvențială pe stage-uri3 min
    • Merge request pipelines și pipeline-uri de tip merged results3 min
    • GitLab Container Registry pentru stocarea imaginilor construite3 min
  4. 4. Jenkins, instalare și configurare

    • Instalare Jenkins pe Ubuntu cu pachetul oficial și Java 173 min
    • Configurare inițială, plugin-uri recomandate și primul utilizator admin3 min
    • Instalare și configurare agenți (nodes) pentru execuție distribuită3 min
    • Plugin-uri de bază: Git, Pipeline, Credentials Binding, Blue Ocean3 min
    • Gestionarea credențialelor în Jenkins Credentials Manager3 min
    • Depanare Jenkins care nu pornește, jurnalul jenkins.log3 min
  5. 5. Jenkins, pipeline as code cu Jenkinsfile

    • Jenkinsfile declarativ, structura pipeline cu stages și steps3 min
    • Jenkinsfile scripted pentru logică complexă cu Groovy3 min
    • Multibranch Pipeline pentru build automat pe fiecare branch3 min
    • Parametri de build și declanșatoare: poll SCM, webhook, cron3 min
    • Post actions: always, success, failure pentru notificări3 min
    • Shared Libraries pentru reutilizarea codului de pipeline între proiecte3 min
  6. 6. GitHub Actions, workflow-uri și joburi

    • Structura unui workflow YAML în directorul .github/workflows3 min
    • Evenimente declanșatoare: push, pull_request, workflow_dispatch, schedule3 min
    • Joburi și pași, rulare pe runners hosted sau self-hosted3 min
    • Matrix builds pentru testare pe mai multe versiuni de Node, PHP sau Python3 min
    • Cache de dependențe cu actions/cache3 min
    • Depanare workflow eșuat cu re-run și jurnalele detaliate3 min
  7. 7. GitHub Actions, acțiuni reutilizabile și securitate

    • Acțiuni din GitHub Marketplace și acțiuni proprii de tip composite3 min
    • Secrete în GitHub Actions: repository secrets și environment secrets2 min
    • GITHUB_TOKEN și permisiuni minime necesare pentru fiecare job2 min
    • Reusable workflows cu workflow_call3 min
    • Environments cu protecție prin required reviewers pentru producție3 min
    • Publicare imagine de container în GitHub Container Registry (ghcr.io)3 min
  8. 8. Build de imagini de container fără Docker daemon

    • De ce Kaniko și Buildah, riscul unui Docker daemon privilegiat în CI3 min
    • Build imagine cu Kaniko într-un job GitLab CI sau într-un Kubernetes Job3 min
    • Build imagine cu Buildah și push cu skopeo3 min
    • Multi-stage build pentru imagini mai mici, fără unelte de compilare3 min
    • Cache de straturi pentru build mai rapide cu BuildKit3 min
    • Scanare imagine construită cu Trivy înainte de push la registry3 min
  9. 9. Teste automate în pipeline

    • Rulare automată a testelor unitare la fiecare push, PHPUnit, Jest, pytest3 min
    • Teste de integrare cu servicii dependente în containere (bază de date, cache)3 min
    • Analiză statică a codului cu SonarQube integrată în pipeline3 min
    • Scanare de dependențe vulnerabile cu Trivy sau Snyk3 min
    • Prag de acoperire cod (coverage gate) care blochează merge-ul3 min
    • Publicare rezultate teste ca artefact vizibil în interfața CI3 min
  10. 10. GitOps cu Argo CD

    • Principiul GitOps, Git ca sursă unică de adevăr pentru starea clusterului3 min
    • Instalare Argo CD pe cluster Kubernetes cu manifestele oficiale3 min
    • Creare Application care sincronizează un depozit Git cu un namespace3 min
    • Sync automat și manual, self-heal și prune3 min
    • App of Apps pentru gestionarea mai multor aplicații dintr-un singur punct3 min
    • Depanare Application blocată în starea OutOfSync sau Degraded3 min
  11. 11. GitOps cu Flux

    • Instalare Flux pe cluster cu flux bootstrap și un depozit GitHub3 min
    • Diferența de arhitectură dintre Flux și Argo CD3 min
    • Kustomization și sincronizare automată la fiecare commit3 min
    • HelmRelease pentru gestionarea chart-urilor Helm prin GitOps3 min
    • Image Automation Controller pentru actualizare automată de tag-uri de imagine3 min
    • Alegerea între Argo CD și Flux pentru un proiect nou3 min
  12. 12. Strategii de deployment, blue/green și canary

    • Rolling update, comportamentul implicit de deployment în Kubernetes3 min
    • Blue/green deployment, comutare instantă între două medii identice3 min
    • Canary release cu trafic progresiv către versiunea nouă prin Argo Rollouts3 min
    • Feature flags pentru activare graduală independentă de deployment3 min
    • Rollback automat la eșec, pe baza analizei metricilor din Argo Rollouts4 min
    • Alegerea strategiei potrivite după riscul și traficul aplicației3 min
  13. 13. Secrete și securitatea pipeline-ului

    • De ce secretele nu se scriu niciodată în cod sau în fișierul de pipeline3 min
    • Managementul secretelor cu HashiCorp Vault, Sealed Secrets și SOPS3 min
    • Injectare secrete în pipeline fără expunere în jurnale (masking)3 min
    • Semnare imagini de container cu cosign pentru verificarea provenienței3 min
    • Permisiuni minime pentru token-urile de acces la registry și cluster3 min
    • Audit și rotație periodică a credențialelor folosite în pipeline3 min
  14. 14. Greșeli frecvente și depanare pipeline-uri CI/CD

    • Pipeline lent din lipsa cache-ului sau a paralelizării joburilor3 min
    • Secret expus în jurnalele publice ale unui pipeline3 min
    • Job care trece local, dar eșuează în CI din cauza diferențelor de mediu3 min
    • Deployment blocat de o imagine cu tag latest neschimbat3 min
    • Conflict între sincronizarea GitOps și modificări manuale cu kubectl3 min
    • Rulare paralelă care suprascrie resurse comune, condiția de cursă (race condition)3 min
  15. 15. Laborator final: de la commit la producție pe Kubernetes

    • Configurare depozit Git cu aplicație, Dockerfile și manifeste Kubernetes4 min
    • Pipeline GitHub Actions: test, build imagine cu Kaniko, push la registry4 min
    • Scanare de securitate a imaginii cu Trivy, poartă obligatorie în pipeline3 min
    • Configurare Argo CD pentru sincronizare automată din depozitul Git3 min
    • Deployment canary cu Argo Rollouts și promovare treptată a traficului3 min
    • Verificarea completă a fluxului, de la commit până la aplicația live în producție3 min
Cine predă
, fondatorul agenției GOAI din Alba Iulia. În mediul online din 1997, în optimizare SEO din 2007. Cursul pornește de la situații întâlnite în lucrul cu clienți din România și este actualizat pe măsură ce uneltele se schimbă. Experiența autorului.
Conținut actualizat la
24 august 2026

Întrebări frecvente despre curs

Ce diferență este între GitOps și un pipeline CI/CD obișnuit?

Un pipeline CI/CD obișnuit face push direct către cluster, cu kubectl apply rulat dintr-un job. GitOps inversează fluxul, un controller din cluster, Argo CD sau Flux, citește starea dorită dintr-un depozit Git și o aplică automat, iar orice modificare manuală cu kubectl este suprascrisă la următoarea sincronizare.

Trebuie să știu deja Kubernetes înainte de acest curs?

Da. Cursul nu predă instalarea unui cluster sau comenzile kubectl de bază, acestea sunt acoperite în cursul dedicat de Kubernetes. Aici plecați de la un cluster funcțional și învățați exclusiv automatizarea build, test și deployment.

Care este diferența dintre Argo CD și Flux, pe care să îl aleg?

Argo CD are o interfață grafică proprie și un model bazat pe obiectul Application, potrivit pentru echipe care vor vizibilitate rapidă asupra stării sincronizării. Flux este format din controllere Kubernetes native, fără interfață grafică proprie, integrat mai simplu cu Helm prin HelmRelease. Cursul acoperă ambele unelte, iar ultimul capitol de GitOps compară direct cazurile de utilizare.

De ce Kaniko sau Buildah în loc de docker build direct în pipeline?

docker build clasic are nevoie de un daemon Docker privilegiat în interiorul pipeline-ului, un risc de securitate pe un runner partajat sau pe un Kubernetes Job. Kaniko și Buildah construiesc imagini fără daemon privilegiat, direct într-un container obișnuit, modul recomandat de rulare a build-urilor pe un runner Kubernetes.

Cursuri din aceeași categorie