Cloud Native CI/CD
with GitOps
Antonio Liccardi
Cloud Developer & DevOps Engineer @Blexin
Microsoft MVP for Developer Technologies
antonio.liccardi@blexin.com
@turibbio
Agenda
• GitOps definition
• DevOps & GitOps
• GitOps principles
• Tools & best practices
What is GitOps?
GitOps principles
• The entire system is described by using a declarative
approach. The desired state of the system is versioned
in a Git repository
• The changes need to be approved, and they are
automatically applied to the system
• Services will guarantee the application of the desired
state and alert in case of divergence
GitOps in practice
• Git is the single source of truth, any change in git will
trigger all the operations
• Both the application and the infrastructure are stored in
the Git repository. Using tools such as kubectl to apply
a configuration is not suggested (Self-documenting
Deployments)
• Once prepared the workflow, the entire process is
guided by pull requests, and it is fully automated
GitOps in a sentence
Only what can be described and observed
can be automated and controlled
GitOps & DevOps
• GitOps is mainly based on DevOps
• Why now?
– Until today, there were only a few frameworks able to create an
infrastructure in a declarative way to be stored in Git
– Git is the best tool to store an infrastructure thanks to auditing,
comments and review feature
GitOps advantages
Increased
productivity
Better developer
experience
Compliance &
Stability
(audit)
Higher Reliability
(MTTR)
Consistency and
standardization
(workflow)
Stronger
Security
Guarantees
3 GitOps pillars
Pipelines Observability Control
Pipeline: Push-based approach
Pipeline: Push-based approach
Pipeline: Pull-based approach
Pipeline: Pull-based approach
Multiple environments
Observability
• It is hard to find a problem in our system if it is not
observable
Observability
Control
Works
closely with
Observability
Controls
means
Convergence
Control
GitOps Lifecycle
A GitOps repository
A GitOps repository
• 1 repository per application, 1 repository for environment
configuration
• Branches are mapped to environments
• Changes are related to both application code and
infrastructure
• Rollback using revert
• Use of protected branches to force the pull request
DEMO
GitOps, K8s, Azure DevOps & ArgoCD
Is GitOps the right approach
for me?
Questions? Thoughts?
Antonio Liccardi
Cloud Developer & DevOps Engineer @Blexin
Microsoft MVP for Developer Technologies
antonio.liccardi@blexin.com
@turibbio
Resources
• https://www.gitops.tech/
• https://www.weave.works/technologies/gitops/
• https://www.weave.works/blog/what-is-gitops-really
• https://www.youtube.com/watch?v=BSqE2RqctNs

Cloud native CI/CD with GitOps