Platinum Sponsor
Community
Gold Sponsor
GitOps and Best Practices for
Cloud Native CICD
Antonio Liccardi
CTO @ Blexin – Microsoft MVP - @turibbio
Session subtitle
Agenda
• Cosa è GitOps
• Differenze tra GitOps & DevOps
• Principi di GitOps
• Implementare GitOps (tools & practices)
Cosa è GitOps
Principi di GitOps
1. L’intero sistema viene descritto in maniera dichiarativa
2. Il desired state del sistema è versionato in Git
3. Le modifiche sono soggette ad approvazione vengono
applicate automaticamente al sistema
4. Agenti o servizi garantiscono la corretta applicazione
del desired state e avvisano in caso di divergenza
© Copyright Microsoft Corporation. All rights reserved.
Principi di GitOps
Only what can be described
and observed can be
automated, controlled and
accelerated
GitOps in dettaglio
1. Tutte le azioni sono guidate dagli eventi in Git, che è
considerato come l’unica fonte di verità dell’intero sistema
2. GitOps si basa fortemente sulle pratiche DevOps
3. Ma se DevOps esiste da anni, perché solo oggi si parla di
GitOps?
1. Fino ad oggi non abbiamo avuto tanti strumenti a favore di una declarative infrastructure
che potesse essere storicizzata in Git
2. Git rappresenta lo strumento migliore per questo scopo grazie a audit, commenti e
history
GitOps in dettaglio
• Una volta impostato il flusso di lavoro, l’intero
processo di modifiche viene effettuato usando solo
Git tramite Pull Request
• Sia il codice dell’applicazione, che la dichiarazione
dell’infrastruttura risiedono all’interno del repository.
L’uso di strumenti come kubectl per la configurazione
dell’infrastruttura è vietato
GitOps in dettaglio
• L’intero processo deve essere automatizzato
• L’intero sistema è sempre ripristinabile grazie a Git e
IaC
Vantaggi di GitOps
Aumento della
produttività
Esperienza di
sviluppo
migliore
Compliance &
Stability
Reliability
Consistency &
Standardization
Maggiore
sicurezza
I 3 pilastri di GitOps
Pipelines Observability Control
Pipeline di deploy standard
Pipeline di deploy standard
GitOps Pipeline
GitOps Pipeline
Observability
E’ difficile scovare un problema in un sistema se non è
osservabile
Observability
Control
Lavora a
stretto
contatto con
l’Observability
Control means
convergence
Control
GitOps Lifecycle
Struttura di un repository GitOps
Struttura di un repository GitOps
• 1 repository per applicazione e servizio o repository separati
• Usare branch separati per environment (Kubernetes
namespace o cluster)
• Push delle modifiche sia sul codice che sulla infrastruttura
• Rolling out tramite revert
• Uso dei protected branches per forzare la pull request
DEMO
GitOps with ArgoCD & Flux
Grazie!
Antonio Liccardi
CTO @ Blexin – Microsoft MVP - @turibbio
Platinum Sponsor
Community
Gold Sponsor

DevOpsConf2021 - GitOps and best practices for cloud native CI/CD

  • 1.
  • 2.
    GitOps and BestPractices for Cloud Native CICD Antonio Liccardi CTO @ Blexin – Microsoft MVP - @turibbio Session subtitle
  • 3.
    Agenda • Cosa èGitOps • Differenze tra GitOps & DevOps • Principi di GitOps • Implementare GitOps (tools & practices)
  • 4.
  • 5.
    Principi di GitOps 1.L’intero sistema viene descritto in maniera dichiarativa 2. Il desired state del sistema è versionato in Git 3. Le modifiche sono soggette ad approvazione vengono applicate automaticamente al sistema 4. Agenti o servizi garantiscono la corretta applicazione del desired state e avvisano in caso di divergenza
  • 6.
    © Copyright MicrosoftCorporation. All rights reserved. Principi di GitOps Only what can be described and observed can be automated, controlled and accelerated
  • 7.
    GitOps in dettaglio 1.Tutte le azioni sono guidate dagli eventi in Git, che è considerato come l’unica fonte di verità dell’intero sistema 2. GitOps si basa fortemente sulle pratiche DevOps 3. Ma se DevOps esiste da anni, perché solo oggi si parla di GitOps? 1. Fino ad oggi non abbiamo avuto tanti strumenti a favore di una declarative infrastructure che potesse essere storicizzata in Git 2. Git rappresenta lo strumento migliore per questo scopo grazie a audit, commenti e history
  • 8.
    GitOps in dettaglio •Una volta impostato il flusso di lavoro, l’intero processo di modifiche viene effettuato usando solo Git tramite Pull Request • Sia il codice dell’applicazione, che la dichiarazione dell’infrastruttura risiedono all’interno del repository. L’uso di strumenti come kubectl per la configurazione dell’infrastruttura è vietato
  • 9.
    GitOps in dettaglio •L’intero processo deve essere automatizzato • L’intero sistema è sempre ripristinabile grazie a Git e IaC
  • 10.
    Vantaggi di GitOps Aumentodella produttività Esperienza di sviluppo migliore Compliance & Stability Reliability Consistency & Standardization Maggiore sicurezza
  • 11.
    I 3 pilastridi GitOps Pipelines Observability Control
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Observability E’ difficile scovareun problema in un sistema se non è osservabile
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    Struttura di unrepository GitOps
  • 22.
    Struttura di unrepository GitOps • 1 repository per applicazione e servizio o repository separati • Usare branch separati per environment (Kubernetes namespace o cluster) • Push delle modifiche sia sul codice che sulla infrastruttura • Rolling out tramite revert • Uso dei protected branches per forzare la pull request
  • 23.
  • 24.
    Grazie! Antonio Liccardi CTO @Blexin – Microsoft MVP - @turibbio
  • 26.