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