SlideShare a Scribd company logo
1 of 102
Download to read offline
GITOPS
25.06.2020
Git as a single source of truth for
declarative infrastructure and
applications
IMAGE GOES OVER HERE
ANDREA PANISSON
● Cloud engineer & Kubernetes expert @ Sparkfabrik
https://www.sparkfabrik.com/en/
● CKAD Certified
@andypanix
The session:
1 - Some fundamental concepts for newbies
2 - GitOps - What, Why and Benefits
3 - GitOps in practice with GitHub Actions and ArgoCD
THE BASICS OF CICD - DEVOPS - KUBERNETES - DECLARATIVE MODEL
WHAT IS GIT?
THE BASICS: GIT
The most widely used modern
version control system in the world
today.
More one GIT: https://www.atlassian.com/git/tutorials/what-is-git
CI: Continuous
Integration
● Automates the build and unit test process of new code
changes
● A software development practice where all developers merge
code changes in a central repository (Git).
● Each change in code (commit) triggers an automated
build-and-test stage for the given repo and provides feedback
to the developer(s) who made the change.
THE BASICS: CICD
CD: Continuous
Deployments
THE BASICS: CICD
More one CONTINUOUS DEPLOYMENTS: https://en.wikipedia.org/wiki/Continuous_deployment
A software engineering approach in which
software functionalities are delivered
frequently through automated deployments.
CD: Continuous
Delivery
THE BASICS: CICD
More one CONTINUOUS DELIVERY: https://en.wikipedia.org/wiki/Continuous_delivery
A software engineering approach in which
teams produce software in short cycles,
ensuring that the software can be reliably
released at any time and, when releasing
the software, doing so manually.
KUBERNETES
THE BASICS: KUBERNETES
Kubernetes is a portable, extensible,
open-source platform for managing
containerized workloads and services, that
facilitates both declarative configuration
and automation.
More one KUBERNETES: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
KUBERNETES
Controllers
THE BASICS: KUBERNETES
“Controllers are control loops that watch the
state of your cluster, then make or request
changes where needed.”
More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/
The interesting part: if you want, you can write a new
controller yourself.
THE BASICS: KUBERNETES
KUBERNETES
Operator
THE BASICS: KUBERNETES
An application-specific controller is called
Operator.
Operators allow automations (monitoring,
alerts, actions, deployment)
More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/
B E W A R E S P O I L E R S !
THE BASICS: KUBERNETES
A Kubernetes Operator is a main actor in GitOps pull-based CICD pipeline
DevOps
THE BASICS: DEVOPS
Patrick Debois coined the term
“DevOps” as part of the first
DevOpsDays conference in
late 2009
More one DEVOPS: https://devopsdays.org
DevOps
THE BASICS: DEVOPS
He was trying to address issues with
the “traditional” operations model.
More one DEVOPS: https://devopsdays.org
DevOps model
● Interdisciplinary teams
● Better collaboration and communication
between development and operations
● More frequent releases (improved product
quality)
● Reduced time-to-market for new features
THE BASICS: DEVOPS
Traditional model:
● Different teams for Development, Quality, and
Operations
● Strict boundaries between teams
● Lacks of interaction, collaboration and
intercommunication between teams.
https://www.gkmit.co/blog/devops/devops https://opensenselabs.com/blog/articles/devops-drupal-development
THE BASICS: DEVOPS
“DevOps isn’t about tools, but about how teams work
together. DevOps is about people first, then process, then
tools.”
THE BASICS: DEVOPS
CAMS:
the pillars
of DevOps
DevOps is structured around four pillars of attention and focus. Those
pillars are:
● CULTURE
● AUTOMATION
● METRICS
● SHARING
(CAMS) as it's called for short.
THE BASICS: DEVOPS
The model of
declarative
systems and
configuration
DECLARATIVE MODEL
One of the more prominent
paradigms emerged from the
DevOps movement.
Imperative model
You describe a sequence of instructions to
manipulate the state of the system to reach your
desired state
DECLARATIVE MODEL
Declarative model
You describe what you want to be achieved, as
opposed to how to get there
Kubernetes APIs are declarative. That is why using
GitOps with a declarative configuration is such a good fit
for Kubernetes.
KUBERNETES AND DECLARATIVE MODEL
B E W A R E S P O I L E R S !
G I T O P S
GITOPS
“What DevOps is to the Cloud,
GitOps is to Cloud Native”
https://www.weave.works/blog/gitops-is-cloud-native
The first
appearance of
GitOps
● GitOps: Operations by Pull Request
https://www.weave.works/blog/gitops-operations-by-pull-request
● The GitOps Pipeline
https://www.weave.works/blog/the-gitops-pipeline
● Observability
https://www.weave.works/blog/gitops-part-3-observability
● Application Delivery Compliance and Secure CICD
https://www.weave.works/blog/gitops-compliance-and-secure-cicd
GITOPS
The term “GitOps” was coined/popularized in August 2017
by a series of blogs by Alexis Richardson, the co-founder,
and CEO of Weaveworks
GITOPS TRENDS
GITOPS
“GitOps is a paradigm, not a specific tool or technology.”
https://www.weave.works/blog/gitops-is-cloud-native
What is
GitOps?
GITOPS
More one GITOPS: https://www.gitops.tech/
Is a way of implementing
Continuous Deployment /
Delivery for cloud native
applications
What is
GitOps?
GITOPS
More one GITOPS: https://www.gitops.tech/
Is a way to manage the delivery
and operations of applications
that are deployed to Kubernetes
GITOPS
https://youtu.be/_pdZnVzQIwc?t=522
GITOPS
1
GITOPS
1 2
GITOPS
● Git as the single source of truth of the system
GITOPS
● Git as the single source of truth of the system
● Git as the single place where we operate (create,
change and destroy) all environments
GITOPS
1 2 3
GITOPS
1 2 3 4
GITOPS
System is
described
declaratively
Kubernetes and Terraform, given their
declarative nature, are perfect tools to do
GitOps.
They allow to describe the entire system
(infrastructure and applications) as
configuration code.
GITOPS
Delivery
automation
and monitoring
Kubernetes operators are the perfect tools
for delivery automation and monitoring (diff
and actions).
Flux CD Argo CD Jenkins-x
GitOps follows
the logic of
DevOps
GITOPS
More one GITOPS: https://www.gitops.tech/
● Config is code
● Code must be versioned controlled
● Config must be versioned controlled too
● What can be described can be automated
● Describe everything: code, config,
monitoring & policy; and then keep it
versioned
The role of the infrastructure and operations engineers in a
GitOps model shifts from performing the infrastructure
changes and application deployments to developing and
maintaining the GitOps automation and helping teams
review and approve changes using Git.
GITOSP AND OPERATIONS
Let’s talk about CICD pipeline and GitOps
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
*.tf
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
terraform apply
*.tf
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#push-based-deployments
The GitOps push-based model for CD
Jenkins CircleCI Travis CI GitLab GitHub Actions
CICD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#pull-based-deployments
The GitOps pull-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#pull-based-deployments
The GitOps pull-based model for CD
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#pull-based-deployments
The GitOps pull-based model for CD
Jenkins CircleCI Travis CI GitLab GitHub Actions
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#pull-based-deployments
The GitOps pull-based model for CD
Jenkins CircleCI Travis CI GitLab GitHub Actions
CICD PIPELINE AND GITOPS
https://www.gitops.tech/#pull-based-deployments
The GitOps pull-based model for CD
Jenkins CircleCI Travis CI GitLab GitHub Actions
CI CD
CICD PIPELINE AND GITOPS
Push-based Deployments
● You need to provide the cluster credential to the
deployment environment (potential security
challenge)
● This kind of pipeline is probably inevitable when
provisioning the infrastructure (Terraform)
● The deployment pipeline can’t automatically notice
any deviation from the desired state
● We need to install a monitoring tool
Pull-based Deployments
● We have a new actor: the operator, living in the
same cluster as the application to deploy
● CI do not need the credential of the k8s cluster
● The CD is in charge of the operator
● The operator can monitor the convergence status
and take actions in case of divergence(CD)
● We must monitor the operator health (no operator
no CD)
CICD PIPELINE AND GITOPS
GitOps in practice: a GitOps CICD with GitHub Actions and ArgoCD
● GitHub Actions allow to run a workflow on any GitHub
event (push, issue creation or new release).
● From august 2019, GitHub Actions supports CI/CD,
free for public repositories or up to 2000 minutes /
month for private repos.
● It’s a great place to test and implements CICD even for
learning purposes or of course for open source
projects.
GitHub
Actions
GITOPS IN PRACTICE
https://github.com/features/actions
● Creating an action is easy as adding YAML a file in the
.github/workflows/ folder in your repo.
● You can start with an empty template or choose from a
library of existing templates (for example to build a
Docker image to deploy, run, or push to a registry).
● Hosted runners supports Linux, macOS, Windows,
ARM, and containers
GitHub
Actions
GITOPS IN PRACTICE
https://github.com/features/actions
● Argo CD is a declarative, GitOps continuous delivery
tool for Kubernetes.
● Is an open source project donated to the community
by Intuit a big american business and financial
software company
● Is a CNCF incubator project since april 2019
Argo CD
GITOPS IN PRACTICE
https://argoproj.github.io/projects/argo-cd
● In november 2019 Argo teamed up with Weave Works
and AWS to unify CNCF Flux, a Cloud Native Computing
Foundation sandbox project, and Argo CD to announce
Argo Flux, an open source GitOps continuous
delivery tool that will bring the best of the two
projects under one umbrella
● The first product of the new team is GitOps Engine
(https://github.com/argoproj/gitops-engine), a
reusable library that implements core GitOps features.
Argo CD
GITOPS IN PRACTICE
https://argoproj.github.io/projects/argo-cd
GITOPS IN PRACTICE
GitHub Actions + Argo CD pull-based model for CD
GitHub Actions
CI CD
DEMO
RESOURCES
WEB SITES
https://www.gitops.tech/
https://gitops-community.github.io/kit/#what-is-gitops
https://www.weave.works/blog/category/gitops/
https://www.weave.works/technologies/gitops-frequently-asked-questions/
https://www.weave.works/technologies/gitops/
SLIDES
https://www.slideshare.net/weaveworks/continuous-lifecycle-london-2018-event-keynote-97418556
BOOKS:
https://www.gitops.tech/
https://www.manning.com/books/gitops-and-kubernetes
THANK YOU!
GitOps
And
KUBERNETES
GITOPS DEFINITION
Kubernetes deployments have the following excellent properties:
a. AUTOMATION: Kubernetes updates provide a mechanism for automating the
process of applying a set of changes correctly and in a timely manner.
b. CONVERGENCE: Kubernetes will keep trying to update until success.
c. IDEMPOTENCE: multiple applications of convergence have the same outcome.
d. DETERMINISM: assuming adequate resources, the updated cluster state depends
only on the desired state.
So what is so special about Kubernetes, and how and why
did it lead to the rise of GitOps?
GitOps
in practice
GITOPS DEFINITION
● Describe the desired state of the whole system using a declarative
specification.
a. A git repo is the single source of truth
b. All changes to the desired state are Git commits
c. All specified properties of the cluster are observable in the cluster
● When the desired and observed states are not the same then:
a. There is a convergence mechanism to bring the desired and observed states
in sync both eventually, and autonomically. Within the cluster, this is
Kubernetes.
b. This is triggered immediately with a “change committed” alert.
c. After a configurable interval, an alert “diff” may also be sent if the states are
divergent.
● Hence all Git commits cause verifiable and idempotent updates in the
cluster.
a. Rollback is: “convergence to an earlier desired state”.
● Convergence is eventual and indicated by:
a. No more “diff” alerts during a defined time interval.
b. A “converged” alert (eg. webhook, Git writeback event).
https://twitter.com/vitorsilva/status/999978906903080961 from Luis Faceira https://twitter.com/luisfaceira
The “1 slide”
definition
GITOPS
What is
GitOps?
It focuses on a developer-centric experience when operating
infrastructure, by using tools developers are already familiar with,
including Git and Continuous Deployment tools.
The core idea of GitOps is having a Git repository that always contains
declarative descriptions of the infrastructure currently desired in the
production environment and an automated process to make the
production environment match the described state in the repository. If
you want to deploy a new application or update an existing one, you only
need to update the repository - the automated process handles
everything else. It’s like having cruise control for managing your
applications in production.
GITOPS
More one GITOPS: https://www.gitops.tech/
“GitOps is a way of implementing Continuous
Deployment for cloud native applications. “
What is
GitOps?
GITOPS
● GitOps is a paradigm, not a specific tool or technology.
● It’s a new operational model designed for modern systems.
● Is Cloud-Native operations and automation.
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
GitOps:
Operations by
pull requests
GITOPS
● “90% best practices and 10% cool new stuff”
● “Git as the source of Truth... using the practices outlined in this post, our developers
operate Kubernetes via Git.”
● provisioning of resources and deployment of k8s is declarative (Declarative tools love
using Git as source of truth)
● entire system state is under version control and described in a single Git repository
● operational changes are made by pull request
● diff tools detect any divergence and notify us; and sync tools enable convergence
(observability)
● rollback and audit logs are also provided via Git
The author, Alexis the co-founder and CEO of
Weaveworks, was describing their workflow, telling how
their developers operate K8s via git. In this article he
coined the term “GitOps”.
More one GITOPS [07/08/2017]: https://www.weave.works/blog/gitops-operations-by-pull-request
GitOps:
The GitOps
Pipeline
GITOPS
More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline
Mainstream continuous delivery puts CI at the design centre of the
pipeline and treats Git and CD as servant components.
a. Git is a service, used by CI to obtain an input for the build.
b. CD is an implementation extension powered by CI to promote build artifacts to
production
c. CI owns delivery orchestration.
In the GitOps pipeline model, Git is the design centre.
a. Git plays the central role of “source of truth for everything in the system” - code,
config and the full stack.
b. CI, build and test services are necessary for constructing deployable artefacts.
c. the overall orchestration of delivery is coordinated by the deployment and release
automation system - triggered by updates to repos.
d. CD owns delivery orchestration, not CI.
“This is all about GitOps on Kubernetes”
KUBERNETES
GITOPS
And in the beginning there was...
GitOps:
The GitOps
Pipeline
GITOPS
More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline
The traditional pipeline model
The GitOps pipeline model (the pull model)
GitOps:
The GitOps
Pipeline
GITOPS
More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline
The traditional pipeline model
The GitOps pipeline model (the pull model)
GitOps:
Observability
GITOPS
Fundamental Theorem of GitOps:
“Only what can be described and observed can be
automated and operated.”
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
GitOps:
Observability
GITOPS
● A system is Observable if developers can understand its current
state from the outside
● Observability is a property of systems - like Availability and
Scalability.
● Developers should care about making their applications observable
so they can be in charge of monitoring their app’s behavior and impact
on their app’s users.
● Monitoring, Tracing & Logging are techniques for baseline
observations: measurements like error rate, request latency,
queries/sec, i.e. symptoms of operational wellness.
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
GitOps:
Observability
GITOPS
● Git provides a source of truth for the desired state of the system, and
observability provides a source of truth for the actual production
state of the running system.
● Delivery of software should not be considered “done” until that
software is Observable. So make monitoring and management part of
your app dev process and not an afterthought. Developers should bake
in application monitoring at the start of the design (Site Reliability
Engineering).
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
GitOps:
Observability
GITOPS
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
Since the entire system configuration is stored on git (the source of
truth), an operator can at any point in time compare the actual running
state to the desired state held in source control, and verify that they are
matching.
Kubernetes orchestrator will apply changes to the cluster until its state
has converged to the updated configuration
GitOps:
Application Delivery
Compliance and Secure CICD
GITOPS
● In GitOps, the CI system does not have direct access to the cluster
● Use pull based deployment - do not let CI push updates into the
Kubernetes cluster or use kubectl by hand
● Record everything in Git to have audit and compliance
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
Go back to GitOps “definition”...
More GitOps
definitions
GITOPS DEFINITION
https://www.slideshare.net/weaveworks/continuous-lifecycle-london-2018-event-keynote-97418556/9
● GitOps is:
a. An operating model for Kubernetes and other cloud native technologies. It
provides a set of best practices that unify deployment, management and
monitoring for containerized clusters and applications.
b. A path towards a developer centric experience for managing applications,
where end-to-end CICD pipelines and git workflows are applied to both
operations, and development.
● GitOps is a fast, and secure method for developers and cluster
operators to maintain and update complex applications running in
Kubernetes
● GitOps is developer workflows for operations
● GitOps is automation for Cloud Native
CICD PIPELINE AND GITOPS
“Kubernetes anti-patterns: Let's do GitOps, not CIOps!”
https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
CICD PIPELINE AND GITOPS
Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
The CIOps: the push model for CD
The Kubernetes antipattern
CIOps: The push model for CICD
GITOPS
Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
The anti-pattern is when the CI system runs build and
tests, followed by a deployment directly to
Kubernetes.
a. insecure by design: both developer and the CI system have
full-access to the cluster as well as the container registry –
there are no clear boundaries and this poses potential
security risks.
b. the CI system is a pretty interesting attack target.
c. each CI job must be configure to deploy to the cluster
(inefficient)
d. The CI and the Kubernetes cluster both compete to be the
source of truth
A Kubernetes anti-pattern
Should I abandon my CI tool? NO.
But you shouldn’t use CI servers to do continuous
delivery
CICD PIPELINE AND GITOPS
CICD PIPELINE AND GITOPS
Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
The GitOps CICD - The pull model for CD
The Kubernetes way
The GitOps CICD
The pull model for CD
(the Kubernetes way)
GITOPS
● In GitOps, the CI system does not have direct access to the cluster
● Use pull based deployment - do not let CI push updates into the
Kubernetes cluster or use kubectl by hand
● Record everything in Git to have audit and compliance
More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
GITOPS
KUBERNETES ● An open-source platform that orchestrates and automates container
operations
● Eliminates many of the manual processes involved in deploying and
scaling containerized applications
● Helps to automate the deployment, scaling, and management of
applications using containers
THE BASICS: KUBERNETES
More one KUBERNETES: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Kubernetes is a portable, extensible, open-source
platform for managing containerized workloads and
services, that facilitates both declarative configuration
and automation.
KUBERNETES
Controller
architecture
Through listening to the API server events related to the resource type
being managed, the controller continuously watches for changes to the
resource’s configuration and performs the necessary work to move the
current state towards the desired state.
THE BASICS: KUBERNETES
More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/
“Controllers are control (infinite) loops that watch the
state of your cluster, then make or request changes
where needed.”
KUBERNETES
Controller
architecture
THE BASICS: KUBERNETES
More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/
Kubernetes comes with a set of built-in controllers that
run inside the kube-controller-manager. These built-in
controllers running in the Controller Manager provide
important core behaviors.
● Replication Manager (a controller for ReplicationController resources)
● ReplicaSet, DaemonSet, and Job controllers
● Deployment controller
● StatefulSet controller
● Node controller
● Service controller
● Endpoints controller
● Namespace controller
● PersistentVolume controller
● Others
THE BASICS: KUBERNETES
Introducing Replication Controllers in Kubernetes: https://freecontent.manning.com/kubernetes-in-action-introducing-replication-controllers/
Replication controller’s reconciliation loop. A replication controller, in
essence, constantly monitors the list of running pods and makes sure the
actual number of pods of some type always matches the desired number:
KUBERNETES
Controller
architecture
KUBERNETES
Operator
People who run workloads on Kubernetes often like to use automation to
take care of repeatable tasks. The Operator pattern captures how you
can write code to automate a task beyond what Kubernetes itself
provides.
THE BASICS: KUBERNETES
More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/
Operators are software extensions of the
Kubernetes API that act as controllers for a
Custom Resource.
Operators are application-specific controllers.
● All operators use the controller pattern, but not all controllers are
operators.
● Operators follow Kubernetes principles, notably the control loop
The model of
declarative
systems and
configuration
THE BASICS: DEVOPS
● One of the more prominent paradigms emerged from the DevOps
movement.
● With declarative models, you describe what you want to be achieved,
as opposed to how to get there.
● This is in contrast to an imperative model, in which you describe a
sequence of instructions to manipulate the state of the system to
reach your desired state.
● Declarative systems are idempotent; imperative systems are not
(idempotency is a property of an operation, whereby the operation can
be performed any number of times and still produce the same result)
Kubernetes APIs are declarative. That is why using GitOps with a
declarative configuration is such a good fit for Kubernetes.
DevOps He was trying to address issues with the “traditional” operations model
where the organization is split between functional boundaries, with
different teams for Development, Quality, and Operations and where
these teams lacks of interaction, collaboration and intercommunication.
THE BASICS: DEVOPS
More one DEVOPS: https://devopsdays.org
Patrick Debois coined the term “DevOps” as part of the
first DevOpsDays conference in late 2009
DevOps In the DevOps model, teams are divided between products or
components and are interdisciplinary, containing team members with
skill sets across all functions.
THE BASICS: DEVOPS
More one DEVOPS: https://devopsdays.org
DevOps is, at first, a shift in the Organizational model.
DevOps:
A definition DevOps puts a heavy emphasis on shared responsibilities across all
teams throughout the software development lifecycle.
DevOps isn’t about tools, but about how teams work together. DevOps is
about people first, then process, then tools.
THE BASICS: DEVOPS
More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/
“DevOps is the union of people, process, and
technology to continually provide value to
customers.”
THE BASICS: DEVOPS
DevOps:
The benefits
● Better collaboration between development and operations
● Improved product quality
● More frequent releases
● Reduced time-to-market for new features
● Decreasing costs of design, development, and operations
THE BASICS: DEVOPS

More Related Content

What's hot

Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitWeaveworks
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfKnoldus Inc.
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfamanmakwana3
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOpsNicola Baldi
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfssuser31375f
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...Weaveworks
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsJulian Mazzitelli
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteWeaveworks
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfWeaveworks
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabFilipa Lacerda
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdBilly Yuen
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...Edureka!
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...Edureka!
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 

What's hot (20)

Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
 
Github basics
Github basicsGithub basics
Github basics
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 

Similar to GitOps: Git come unica fonte di verità per applicazioni e infrastruttura

gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfsaraichiba2
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ... Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...Weaveworks
 
Cloud Native Apps with GitOps
Cloud Native Apps with GitOps Cloud Native Apps with GitOps
Cloud Native Apps with GitOps Weaveworks
 
Next Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOpsNext Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOpsRamadoni Ashudi
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021William Caban
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?All Things Open
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
DX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesDX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesWeaveworks
 
Observe and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsObserve and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsWeaveworks
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfWeaveworks
 
Make a better DevOps with GitOps
Make a better DevOps with GitOpsMake a better DevOps with GitOps
Make a better DevOps with GitOpsOpsta
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfWeaveworks
 
What is the concept of GitOps.pdf
What is the concept of GitOps.pdfWhat is the concept of GitOps.pdf
What is the concept of GitOps.pdfCiente
 
Cloud native CI/CD with GitOps
Cloud native CI/CD with GitOpsCloud native CI/CD with GitOps
Cloud native CI/CD with GitOpsAntonio Liccardi
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Weaveworks
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeaveworks
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDJulian Mazzitelli
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
 

Similar to GitOps: Git come unica fonte di verità per applicazioni e infrastruttura (20)

gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ... Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 
Cloud Native Apps with GitOps
Cloud Native Apps with GitOps Cloud Native Apps with GitOps
Cloud Native Apps with GitOps
 
Next Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOpsNext Level DevOps Implementation with GitOps
Next Level DevOps Implementation with GitOps
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
DX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesDX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in Kubernetes
 
Observe and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsObserve and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git ops
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Make a better DevOps with GitOps
Make a better DevOps with GitOpsMake a better DevOps with GitOps
Make a better DevOps with GitOps
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 
What is the concept of GitOps.pdf
What is the concept of GitOps.pdfWhat is the concept of GitOps.pdf
What is the concept of GitOps.pdf
 
Cloud native CI/CD with GitOps
Cloud native CI/CD with GitOpsCloud native CI/CD with GitOps
Cloud native CI/CD with GitOps
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 

More from sparkfabrik

KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetessparkfabrik
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...sparkfabrik
 
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtIAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtsparkfabrik
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pagessparkfabrik
 
2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal frontesparkfabrik
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...sparkfabrik
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystemsparkfabrik
 
UX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdfUX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdfsparkfabrik
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
 
Deep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloudDeep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloudsparkfabrik
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplanesparkfabrik
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue paginesparkfabrik
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)sparkfabrik
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!sparkfabrik
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedsparkfabrik
 
Headless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIsHeadless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIssparkfabrik
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guidesparkfabrik
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 

More from sparkfabrik (20)

KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
 
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtIAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages
 
2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
 
UX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdfUX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdf
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
Deep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloudDeep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloud
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagine
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
 
Headless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIsHeadless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIs
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guide
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

GitOps: Git come unica fonte di verità per applicazioni e infrastruttura

  • 1. GITOPS 25.06.2020 Git as a single source of truth for declarative infrastructure and applications
  • 2. IMAGE GOES OVER HERE ANDREA PANISSON ● Cloud engineer & Kubernetes expert @ Sparkfabrik https://www.sparkfabrik.com/en/ ● CKAD Certified @andypanix
  • 3. The session: 1 - Some fundamental concepts for newbies 2 - GitOps - What, Why and Benefits 3 - GitOps in practice with GitHub Actions and ArgoCD
  • 4. THE BASICS OF CICD - DEVOPS - KUBERNETES - DECLARATIVE MODEL
  • 5. WHAT IS GIT? THE BASICS: GIT The most widely used modern version control system in the world today. More one GIT: https://www.atlassian.com/git/tutorials/what-is-git
  • 6. CI: Continuous Integration ● Automates the build and unit test process of new code changes ● A software development practice where all developers merge code changes in a central repository (Git). ● Each change in code (commit) triggers an automated build-and-test stage for the given repo and provides feedback to the developer(s) who made the change. THE BASICS: CICD
  • 7. CD: Continuous Deployments THE BASICS: CICD More one CONTINUOUS DEPLOYMENTS: https://en.wikipedia.org/wiki/Continuous_deployment A software engineering approach in which software functionalities are delivered frequently through automated deployments.
  • 8. CD: Continuous Delivery THE BASICS: CICD More one CONTINUOUS DELIVERY: https://en.wikipedia.org/wiki/Continuous_delivery A software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually.
  • 9. KUBERNETES THE BASICS: KUBERNETES Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. More one KUBERNETES: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
  • 10.
  • 11.
  • 12. KUBERNETES Controllers THE BASICS: KUBERNETES “Controllers are control loops that watch the state of your cluster, then make or request changes where needed.” More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/
  • 13. The interesting part: if you want, you can write a new controller yourself. THE BASICS: KUBERNETES
  • 14. KUBERNETES Operator THE BASICS: KUBERNETES An application-specific controller is called Operator. Operators allow automations (monitoring, alerts, actions, deployment) More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/
  • 15. B E W A R E S P O I L E R S ! THE BASICS: KUBERNETES A Kubernetes Operator is a main actor in GitOps pull-based CICD pipeline
  • 16. DevOps THE BASICS: DEVOPS Patrick Debois coined the term “DevOps” as part of the first DevOpsDays conference in late 2009 More one DEVOPS: https://devopsdays.org
  • 17. DevOps THE BASICS: DEVOPS He was trying to address issues with the “traditional” operations model. More one DEVOPS: https://devopsdays.org
  • 18. DevOps model ● Interdisciplinary teams ● Better collaboration and communication between development and operations ● More frequent releases (improved product quality) ● Reduced time-to-market for new features THE BASICS: DEVOPS Traditional model: ● Different teams for Development, Quality, and Operations ● Strict boundaries between teams ● Lacks of interaction, collaboration and intercommunication between teams.
  • 20. “DevOps isn’t about tools, but about how teams work together. DevOps is about people first, then process, then tools.” THE BASICS: DEVOPS
  • 21. CAMS: the pillars of DevOps DevOps is structured around four pillars of attention and focus. Those pillars are: ● CULTURE ● AUTOMATION ● METRICS ● SHARING (CAMS) as it's called for short. THE BASICS: DEVOPS
  • 22. The model of declarative systems and configuration DECLARATIVE MODEL One of the more prominent paradigms emerged from the DevOps movement.
  • 23. Imperative model You describe a sequence of instructions to manipulate the state of the system to reach your desired state DECLARATIVE MODEL Declarative model You describe what you want to be achieved, as opposed to how to get there
  • 24. Kubernetes APIs are declarative. That is why using GitOps with a declarative configuration is such a good fit for Kubernetes. KUBERNETES AND DECLARATIVE MODEL B E W A R E S P O I L E R S !
  • 25. G I T O P S
  • 26. GITOPS “What DevOps is to the Cloud, GitOps is to Cloud Native” https://www.weave.works/blog/gitops-is-cloud-native
  • 27. The first appearance of GitOps ● GitOps: Operations by Pull Request https://www.weave.works/blog/gitops-operations-by-pull-request ● The GitOps Pipeline https://www.weave.works/blog/the-gitops-pipeline ● Observability https://www.weave.works/blog/gitops-part-3-observability ● Application Delivery Compliance and Secure CICD https://www.weave.works/blog/gitops-compliance-and-secure-cicd GITOPS The term “GitOps” was coined/popularized in August 2017 by a series of blogs by Alexis Richardson, the co-founder, and CEO of Weaveworks
  • 29. GITOPS “GitOps is a paradigm, not a specific tool or technology.” https://www.weave.works/blog/gitops-is-cloud-native
  • 30. What is GitOps? GITOPS More one GITOPS: https://www.gitops.tech/ Is a way of implementing Continuous Deployment / Delivery for cloud native applications
  • 31. What is GitOps? GITOPS More one GITOPS: https://www.gitops.tech/ Is a way to manage the delivery and operations of applications that are deployed to Kubernetes
  • 35. GITOPS ● Git as the single source of truth of the system
  • 36. GITOPS ● Git as the single source of truth of the system ● Git as the single place where we operate (create, change and destroy) all environments
  • 39. GITOPS System is described declaratively Kubernetes and Terraform, given their declarative nature, are perfect tools to do GitOps. They allow to describe the entire system (infrastructure and applications) as configuration code.
  • 40. GITOPS Delivery automation and monitoring Kubernetes operators are the perfect tools for delivery automation and monitoring (diff and actions). Flux CD Argo CD Jenkins-x
  • 41. GitOps follows the logic of DevOps GITOPS More one GITOPS: https://www.gitops.tech/ ● Config is code ● Code must be versioned controlled ● Config must be versioned controlled too ● What can be described can be automated ● Describe everything: code, config, monitoring & policy; and then keep it versioned
  • 42. The role of the infrastructure and operations engineers in a GitOps model shifts from performing the infrastructure changes and application deployments to developing and maintaining the GitOps automation and helping teams review and approve changes using Git. GITOSP AND OPERATIONS
  • 43. Let’s talk about CICD pipeline and GitOps
  • 44. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD
  • 45. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD
  • 46. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD
  • 47. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD
  • 48. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD *.tf
  • 49. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD terraform apply *.tf
  • 50. CICD PIPELINE AND GITOPS https://www.gitops.tech/#push-based-deployments The GitOps push-based model for CD Jenkins CircleCI Travis CI GitLab GitHub Actions CICD
  • 51. CICD PIPELINE AND GITOPS https://www.gitops.tech/#pull-based-deployments The GitOps pull-based model for CD
  • 52. CICD PIPELINE AND GITOPS https://www.gitops.tech/#pull-based-deployments The GitOps pull-based model for CD
  • 53. CICD PIPELINE AND GITOPS https://www.gitops.tech/#pull-based-deployments The GitOps pull-based model for CD Jenkins CircleCI Travis CI GitLab GitHub Actions
  • 54. CICD PIPELINE AND GITOPS https://www.gitops.tech/#pull-based-deployments The GitOps pull-based model for CD Jenkins CircleCI Travis CI GitLab GitHub Actions
  • 55. CICD PIPELINE AND GITOPS https://www.gitops.tech/#pull-based-deployments The GitOps pull-based model for CD Jenkins CircleCI Travis CI GitLab GitHub Actions CI CD
  • 56. CICD PIPELINE AND GITOPS Push-based Deployments ● You need to provide the cluster credential to the deployment environment (potential security challenge) ● This kind of pipeline is probably inevitable when provisioning the infrastructure (Terraform) ● The deployment pipeline can’t automatically notice any deviation from the desired state ● We need to install a monitoring tool
  • 57. Pull-based Deployments ● We have a new actor: the operator, living in the same cluster as the application to deploy ● CI do not need the credential of the k8s cluster ● The CD is in charge of the operator ● The operator can monitor the convergence status and take actions in case of divergence(CD) ● We must monitor the operator health (no operator no CD) CICD PIPELINE AND GITOPS
  • 58. GitOps in practice: a GitOps CICD with GitHub Actions and ArgoCD
  • 59. ● GitHub Actions allow to run a workflow on any GitHub event (push, issue creation or new release). ● From august 2019, GitHub Actions supports CI/CD, free for public repositories or up to 2000 minutes / month for private repos. ● It’s a great place to test and implements CICD even for learning purposes or of course for open source projects. GitHub Actions GITOPS IN PRACTICE https://github.com/features/actions
  • 60. ● Creating an action is easy as adding YAML a file in the .github/workflows/ folder in your repo. ● You can start with an empty template or choose from a library of existing templates (for example to build a Docker image to deploy, run, or push to a registry). ● Hosted runners supports Linux, macOS, Windows, ARM, and containers GitHub Actions GITOPS IN PRACTICE https://github.com/features/actions
  • 61. ● Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. ● Is an open source project donated to the community by Intuit a big american business and financial software company ● Is a CNCF incubator project since april 2019 Argo CD GITOPS IN PRACTICE https://argoproj.github.io/projects/argo-cd
  • 62. ● In november 2019 Argo teamed up with Weave Works and AWS to unify CNCF Flux, a Cloud Native Computing Foundation sandbox project, and Argo CD to announce Argo Flux, an open source GitOps continuous delivery tool that will bring the best of the two projects under one umbrella ● The first product of the new team is GitOps Engine (https://github.com/argoproj/gitops-engine), a reusable library that implements core GitOps features. Argo CD GITOPS IN PRACTICE https://argoproj.github.io/projects/argo-cd
  • 63. GITOPS IN PRACTICE GitHub Actions + Argo CD pull-based model for CD GitHub Actions CI CD
  • 64. DEMO
  • 67. GitOps And KUBERNETES GITOPS DEFINITION Kubernetes deployments have the following excellent properties: a. AUTOMATION: Kubernetes updates provide a mechanism for automating the process of applying a set of changes correctly and in a timely manner. b. CONVERGENCE: Kubernetes will keep trying to update until success. c. IDEMPOTENCE: multiple applications of convergence have the same outcome. d. DETERMINISM: assuming adequate resources, the updated cluster state depends only on the desired state. So what is so special about Kubernetes, and how and why did it lead to the rise of GitOps?
  • 68. GitOps in practice GITOPS DEFINITION ● Describe the desired state of the whole system using a declarative specification. a. A git repo is the single source of truth b. All changes to the desired state are Git commits c. All specified properties of the cluster are observable in the cluster ● When the desired and observed states are not the same then: a. There is a convergence mechanism to bring the desired and observed states in sync both eventually, and autonomically. Within the cluster, this is Kubernetes. b. This is triggered immediately with a “change committed” alert. c. After a configurable interval, an alert “diff” may also be sent if the states are divergent. ● Hence all Git commits cause verifiable and idempotent updates in the cluster. a. Rollback is: “convergence to an earlier desired state”. ● Convergence is eventual and indicated by: a. No more “diff” alerts during a defined time interval. b. A “converged” alert (eg. webhook, Git writeback event).
  • 69. https://twitter.com/vitorsilva/status/999978906903080961 from Luis Faceira https://twitter.com/luisfaceira The “1 slide” definition GITOPS
  • 70. What is GitOps? It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools. The core idea of GitOps is having a Git repository that always contains declarative descriptions of the infrastructure currently desired in the production environment and an automated process to make the production environment match the described state in the repository. If you want to deploy a new application or update an existing one, you only need to update the repository - the automated process handles everything else. It’s like having cruise control for managing your applications in production. GITOPS More one GITOPS: https://www.gitops.tech/ “GitOps is a way of implementing Continuous Deployment for cloud native applications. “
  • 71. What is GitOps? GITOPS ● GitOps is a paradigm, not a specific tool or technology. ● It’s a new operational model designed for modern systems. ● Is Cloud-Native operations and automation. More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 72. GitOps: Operations by pull requests GITOPS ● “90% best practices and 10% cool new stuff” ● “Git as the source of Truth... using the practices outlined in this post, our developers operate Kubernetes via Git.” ● provisioning of resources and deployment of k8s is declarative (Declarative tools love using Git as source of truth) ● entire system state is under version control and described in a single Git repository ● operational changes are made by pull request ● diff tools detect any divergence and notify us; and sync tools enable convergence (observability) ● rollback and audit logs are also provided via Git The author, Alexis the co-founder and CEO of Weaveworks, was describing their workflow, telling how their developers operate K8s via git. In this article he coined the term “GitOps”. More one GITOPS [07/08/2017]: https://www.weave.works/blog/gitops-operations-by-pull-request
  • 73. GitOps: The GitOps Pipeline GITOPS More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline Mainstream continuous delivery puts CI at the design centre of the pipeline and treats Git and CD as servant components. a. Git is a service, used by CI to obtain an input for the build. b. CD is an implementation extension powered by CI to promote build artifacts to production c. CI owns delivery orchestration. In the GitOps pipeline model, Git is the design centre. a. Git plays the central role of “source of truth for everything in the system” - code, config and the full stack. b. CI, build and test services are necessary for constructing deployable artefacts. c. the overall orchestration of delivery is coordinated by the deployment and release automation system - triggered by updates to repos. d. CD owns delivery orchestration, not CI.
  • 74. “This is all about GitOps on Kubernetes” KUBERNETES
  • 75. GITOPS And in the beginning there was...
  • 76. GitOps: The GitOps Pipeline GITOPS More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline The traditional pipeline model The GitOps pipeline model (the pull model)
  • 77. GitOps: The GitOps Pipeline GITOPS More one GITOPS [30/08/2017]: https://www.weave.works/blog/the-gitops-pipeline The traditional pipeline model The GitOps pipeline model (the pull model)
  • 78. GitOps: Observability GITOPS Fundamental Theorem of GitOps: “Only what can be described and observed can be automated and operated.” More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 79. GitOps: Observability GITOPS ● A system is Observable if developers can understand its current state from the outside ● Observability is a property of systems - like Availability and Scalability. ● Developers should care about making their applications observable so they can be in charge of monitoring their app’s behavior and impact on their app’s users. ● Monitoring, Tracing & Logging are techniques for baseline observations: measurements like error rate, request latency, queries/sec, i.e. symptoms of operational wellness. More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 80. GitOps: Observability GITOPS ● Git provides a source of truth for the desired state of the system, and observability provides a source of truth for the actual production state of the running system. ● Delivery of software should not be considered “done” until that software is Observable. So make monitoring and management part of your app dev process and not an afterthought. Developers should bake in application monitoring at the start of the design (Site Reliability Engineering). More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 81. GitOps: Observability GITOPS More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability Since the entire system configuration is stored on git (the source of truth), an operator can at any point in time compare the actual running state to the desired state held in source control, and verify that they are matching. Kubernetes orchestrator will apply changes to the cluster until its state has converged to the updated configuration
  • 82. GitOps: Application Delivery Compliance and Secure CICD GITOPS ● In GitOps, the CI system does not have direct access to the cluster ● Use pull based deployment - do not let CI push updates into the Kubernetes cluster or use kubectl by hand ● Record everything in Git to have audit and compliance More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 83. Go back to GitOps “definition”...
  • 84. More GitOps definitions GITOPS DEFINITION https://www.slideshare.net/weaveworks/continuous-lifecycle-london-2018-event-keynote-97418556/9 ● GitOps is: a. An operating model for Kubernetes and other cloud native technologies. It provides a set of best practices that unify deployment, management and monitoring for containerized clusters and applications. b. A path towards a developer centric experience for managing applications, where end-to-end CICD pipelines and git workflows are applied to both operations, and development. ● GitOps is a fast, and secure method for developers and cluster operators to maintain and update complex applications running in Kubernetes ● GitOps is developer workflows for operations ● GitOps is automation for Cloud Native
  • 85. CICD PIPELINE AND GITOPS “Kubernetes anti-patterns: Let's do GitOps, not CIOps!” https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops
  • 86. CICD PIPELINE AND GITOPS Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops The CIOps: the push model for CD The Kubernetes antipattern
  • 87. CIOps: The push model for CICD GITOPS Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops The anti-pattern is when the CI system runs build and tests, followed by a deployment directly to Kubernetes. a. insecure by design: both developer and the CI system have full-access to the cluster as well as the container registry – there are no clear boundaries and this poses potential security risks. b. the CI system is a pretty interesting attack target. c. each CI job must be configure to deploy to the cluster (inefficient) d. The CI and the Kubernetes cluster both compete to be the source of truth A Kubernetes anti-pattern
  • 88. Should I abandon my CI tool? NO. But you shouldn’t use CI servers to do continuous delivery CICD PIPELINE AND GITOPS
  • 89. CICD PIPELINE AND GITOPS Kubernetes anti-patterns [17/07/2018]: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops The GitOps CICD - The pull model for CD The Kubernetes way
  • 90. The GitOps CICD The pull model for CD (the Kubernetes way) GITOPS ● In GitOps, the CI system does not have direct access to the cluster ● Use pull based deployment - do not let CI push updates into the Kubernetes cluster or use kubectl by hand ● Record everything in Git to have audit and compliance More one GITOPS [17/10/2017]: https://www.weave.works/blog/gitops-part-3-observability
  • 92. KUBERNETES ● An open-source platform that orchestrates and automates container operations ● Eliminates many of the manual processes involved in deploying and scaling containerized applications ● Helps to automate the deployment, scaling, and management of applications using containers THE BASICS: KUBERNETES More one KUBERNETES: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.
  • 93. KUBERNETES Controller architecture Through listening to the API server events related to the resource type being managed, the controller continuously watches for changes to the resource’s configuration and performs the necessary work to move the current state towards the desired state. THE BASICS: KUBERNETES More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/ “Controllers are control (infinite) loops that watch the state of your cluster, then make or request changes where needed.”
  • 94. KUBERNETES Controller architecture THE BASICS: KUBERNETES More one K8S CONTROLLERS: https://kubernetes.io/docs/concepts/architecture/controller/ Kubernetes comes with a set of built-in controllers that run inside the kube-controller-manager. These built-in controllers running in the Controller Manager provide important core behaviors. ● Replication Manager (a controller for ReplicationController resources) ● ReplicaSet, DaemonSet, and Job controllers ● Deployment controller ● StatefulSet controller ● Node controller ● Service controller ● Endpoints controller ● Namespace controller ● PersistentVolume controller ● Others
  • 95. THE BASICS: KUBERNETES Introducing Replication Controllers in Kubernetes: https://freecontent.manning.com/kubernetes-in-action-introducing-replication-controllers/ Replication controller’s reconciliation loop. A replication controller, in essence, constantly monitors the list of running pods and makes sure the actual number of pods of some type always matches the desired number: KUBERNETES Controller architecture
  • 96. KUBERNETES Operator People who run workloads on Kubernetes often like to use automation to take care of repeatable tasks. The Operator pattern captures how you can write code to automate a task beyond what Kubernetes itself provides. THE BASICS: KUBERNETES More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/ Operators are software extensions of the Kubernetes API that act as controllers for a Custom Resource. Operators are application-specific controllers. ● All operators use the controller pattern, but not all controllers are operators. ● Operators follow Kubernetes principles, notably the control loop
  • 97. The model of declarative systems and configuration THE BASICS: DEVOPS ● One of the more prominent paradigms emerged from the DevOps movement. ● With declarative models, you describe what you want to be achieved, as opposed to how to get there. ● This is in contrast to an imperative model, in which you describe a sequence of instructions to manipulate the state of the system to reach your desired state. ● Declarative systems are idempotent; imperative systems are not (idempotency is a property of an operation, whereby the operation can be performed any number of times and still produce the same result) Kubernetes APIs are declarative. That is why using GitOps with a declarative configuration is such a good fit for Kubernetes.
  • 98. DevOps He was trying to address issues with the “traditional” operations model where the organization is split between functional boundaries, with different teams for Development, Quality, and Operations and where these teams lacks of interaction, collaboration and intercommunication. THE BASICS: DEVOPS More one DEVOPS: https://devopsdays.org Patrick Debois coined the term “DevOps” as part of the first DevOpsDays conference in late 2009
  • 99. DevOps In the DevOps model, teams are divided between products or components and are interdisciplinary, containing team members with skill sets across all functions. THE BASICS: DEVOPS More one DEVOPS: https://devopsdays.org DevOps is, at first, a shift in the Organizational model.
  • 100. DevOps: A definition DevOps puts a heavy emphasis on shared responsibilities across all teams throughout the software development lifecycle. DevOps isn’t about tools, but about how teams work together. DevOps is about people first, then process, then tools. THE BASICS: DEVOPS More one DEVOPS: https://azure.microsoft.com/en-us/overview/what-is-devops/ “DevOps is the union of people, process, and technology to continually provide value to customers.”
  • 102. DevOps: The benefits ● Better collaboration between development and operations ● Improved product quality ● More frequent releases ● Reduced time-to-market for new features ● Decreasing costs of design, development, and operations THE BASICS: DEVOPS