main
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<!-- Sep 03, 2024 -->
5<meta charset="utf-8" />
6<meta name="viewport" content="width=device-width, initial-scale=1" />
7<title>GitOps</title>
8<meta name="author" content="Vincent Demeester" />
9<meta name="keywords" content="article" />
10<meta name="generator" content="Org Mode" />
11<link rel='icon' type='image/x-icon' href='/images/favicon.ico'/>
12<meta name='viewport' content='width=device-width, initial-scale=1'>
13<link rel='stylesheet' href='/css/new.css' type='text/css'/>
14<link rel='stylesheet' href='/css/syntax.css' type='text/css'/>
15<link href='/index.xml' rel='alternate' type='application/rss+xml' title='Vincent Demeester' />
16</head>
17<body>
18<main id="content" class="content">
19<header>
20<h1 class="title">GitOps</h1>
21</header><section id="outline-container-What%20is%20GitOps%3F" class="outline-2">
22<h2 id="What%20is%20GitOps%3F">What is GitOps?</h2>
23<div class="outline-text-2" id="text-What%20is%20GitOps%3F">
24<p>
25GitOps is an app dev and operations methodology that leverages
26</p>
27
28<ul class="org-ul">
29<li>an entire system that is described declaratively</li>
30<li>code that is version controlled and</li>
31<li>software agents that reconcile and ensure correctness (along with alerts, etc).</li>
32</ul>
33
34<p>
35GitOps is a paradigm, not a specific tool or technology. GitOps applies to everything and brings business value.
36</p>
37
38<p>
39Maya Kaczorowski adds that when you have everything “as code” with GitOps, you can make
40your code as automated and error-free as possible. With GitOps, you push a change to code
41that’s reviewed, and then you use automation to do the hard stuff of deploying,
42monitoring, etc. You also have a pipeline where devs only need to focus on developing
43their apps, and any operations or security control can be automatically verified or
44enforced as part of that pipeline. Teams have a clear separation of responsibilities.
45</p>
46</div>
47<div id="outline-container-The%204%20Principles%20of%20GitOps" class="outline-3">
48<h3 id="The%204%20Principles%20of%20GitOps">The 4 Principles of GitOps</h3>
49<div class="outline-text-3" id="text-The%204%20Principles%20of%20GitOps">
50<ol class="org-ol">
51<li>The entire system is described <b>declaratively</b></li>
52<li>The canonical desired system is <b>versioned</b> in git</li>
53<li>Approved changes can be <b>automatically applied</b> to the system</li>
54<li><b>Software agents</b> ensure correctness and alert (diffs & actions)</li>
55</ol>
56
57<p>
58Most importantly, these are principles, <b>not technologies</b>. You can apply the principles
59across many of your existing technologies without replacing them.
60</p>
61
62<p>
63Also, <b>GitOps</b> is not constrained to Git. You can use whatever support version control.
64</p>
65</div>
66</div>
67<div id="outline-container-What%20is%20GitOps%20for%20Security%3F" class="outline-3">
68<h3 id="What%20is%20GitOps%20for%20Security%3F">What is GitOps for Security?</h3>
69<div class="outline-text-3" id="text-What%20is%20GitOps%20for%20Security%3F">
70<p>
71It provides
72</p>
73
74<ol class="org-ol">
75<li>Immutable infrastructure</li>
76<li>Single source of truth</li>
77<li>Dev velocity</li>
78</ol>
79</div>
80</div>
81<div id="outline-container-Transparency%20and%20Collaboration" class="outline-3">
82<h3 id="Transparency%20and%20Collaboration">Transparency and Collaboration</h3>
83<div class="outline-text-3" id="text-Transparency%20and%20Collaboration">
84<ol class="org-ol">
85<li><b>Reversibility</b>: You can do rollbacks, and lower mean time to resolving config-based
86outages with version controlling.</li>
87<li><b>Audit trails</b>: You can track the history of a repo, …</li>
88</ol>
89
90<p>
91This also helps to reduce the risk of relying on a single employee.
92</p>
93</div>
94</div>
95<div id="outline-container-What%20can%20you%20GitOps%3F" class="outline-3">
96<h3 id="What%20can%20you%20GitOps%3F">What can you GitOps?</h3>
97<div class="outline-text-3" id="text-What%20can%20you%20GitOps%3F">
98<p>
99You can GitOps not just apps, but infrastructure, things that go onto DNS and identity
100providers, Chaos experiments and Kubernetes Clusters, and more. You can GitOps all the
101things!
102</p>
103</div>
104</div>
105</section>
106<section id="outline-container-GitOps%20tools" class="outline-2">
107<h2 id="GitOps%20tools">GitOps tools</h2>
108<div class="outline-text-2" id="text-GitOps%20tools">
109<ul class="org-ul">
110<li><a href="https://www.ansible.com/">Ansible</a></li>
111<li><a href="https://argoproj.github.io/argo-cd/">ArgoCD</a></li>
112<li><a href="https://www.runatlantis.io/">Atlantis</a></li>
113<li><a href="https://www.chef.io/">Chef</a></li>
114<li><a href="https://draft.sh/">Draft</a></li>
115<li><a href="https://eksctl.io/">eksctl</a></li>
116<li><a href="https://fluxcd.io/">FluxCD</a></li>
117<li><a href="https://flagger.app/">Flagger</a></li>
118<li><a href="https://git-scm.com/">Git</a></li>
119<li><a href="https://gitkube.sh/">GitKube</a></li>
120<li><a href="https://toolkit.fluxcd.io/">GitOps Toolkit</a></li>
121<li><a href="https://helm.sh/">Helm</a></li>
122<li><a href="https://medium.com/keikoproj/keiko-running-kubernetes-at-scale-1178491c1440">Keiko</a></li>
123<li><a href="https://kubernetes.io/">Kubernetes</a></li>
124<li><a href="https://kustomize.io/">Kustomize</a></li>
125<li><a href="https://www.jenkins.io/">Jenkins</a></li>
126<li><a href="https://jenkins-x.io/">Jenkins X</a></li>
127<li><a href="https://www.pulumi.com/">Pulumi</a></li>
128<li><a href="https://puppet.com/">Puppet</a></li>
129<li><a href="http://salt.io/">Salt</a></li>
130<li><a href="https://skaffold.dev/">Skaffold</a></li>
131<li><a href="https://www.terraform.io/">Terraform</a></li>
132</ul>
133
134<p>
135One day, <a href="tekton.html">Tekton</a> components could be in that list
136</p>
137</div>
138</section>
139<section id="outline-container-References" class="outline-2">
140<h2 id="References">References</h2>
141<div class="outline-text-2" id="text-References">
142<ul class="org-ul">
143<li><a href="https://gitops-community.github.io/kit/#need-help-or-want-updates">GitOps Conversation Kit (beta) | GitOps Community</a></li>
144</ul>
145</div>
146</section>
147<section id="outline-container-Links" class="outline-2">
148<h2 id="Links">Links</h2>
149<div class="outline-text-2" id="text-Links">
150</div>
151<div id="outline-container-%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D" class="outline-3">
152<h3 id="%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D"><span class="todo TODO">TODO</span> <a href="https://zwischenzugs.com/2020/11/30/gitops-decisions/">GitOps Decisions – zwischenzugs</a></h3>
153<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fzwischenzugs.com%2F2020%2F11%2F30%2Fgitops-decisions%2F%5D%5BGitOps%20Decisions%20%E2%80%93%20zwischenzugs%5D%5D">
154<p>
155<span class="timestamp-wrapper"><span class="timestamp">[2020-12-02 Wed 10:57]</span></span>
156</p>
157</div>
158</div>
159</section>
160</main>
161<footer id="postamble" class="status">
162<footer>
163 <small><a href="/" rel="history">Index</a> • <a href="/sitemap.html">Sitemap</a> • <a href="https://dl.sbr.pm/">Files</a></small><br/>
164 <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/>
165 <small class='copyright'>
166 Content and design by Vincent Demeester
167 (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>)
168 </small><br />
169</footer>
170</footer>
171</body>
172</html>