gitops.html (7584B)
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> 25 GitOps 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> 35 GitOps is a paradigm, not a specific tool or technology. GitOps applies to everything and brings business value. 36 </p> 37 38 <p> 39 Maya Kaczorowski adds that when you have everything “as code” with GitOps, you can make 40 your code as automated and error-free as possible. With GitOps, you push a change to code 41 that’s reviewed, and then you use automation to do the hard stuff of deploying, 42 monitoring, etc. You also have a pipeline where devs only need to focus on developing 43 their apps, and any operations or security control can be automatically verified or 44 enforced 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> 58 Most importantly, these are principles, <b>not technologies</b>. You can apply the principles 59 across many of your existing technologies without replacing them. 60 </p> 61 62 <p> 63 Also, <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> 71 It 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 86 outages with version controlling.</li> 87 <li><b>Audit trails</b>: You can track the history of a repo, …</li> 88 </ol> 89 90 <p> 91 This 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> 99 You can GitOps not just apps, but infrastructure, things that go onto DNS and identity 100 providers, Chaos experiments and Kubernetes Clusters, and more. You can GitOps all the 101 things! 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> 135 One 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>