{"componentChunkName":"component---src-templates-blog-post-js","path":"/post/gitops-why-is-it-relevant-now","result":{"data":{"headerImage":{"childImageSharp":{"fluid":{"aspectRatio":3.3992537313432836,"src":"/static/b72d38f0a9a131a445c0798c8f11b233/85c19/blog-post-intro.png","srcSet":"/static/b72d38f0a9a131a445c0798c8f11b233/c95ef/blog-post-intro.png 911w,\n/static/b72d38f0a9a131a445c0798c8f11b233/6d938/blog-post-intro.png 1822w,\n/static/b72d38f0a9a131a445c0798c8f11b233/85c19/blog-post-intro.png 3635w","srcWebp":"/static/b72d38f0a9a131a445c0798c8f11b233/bbedc/blog-post-intro.webp","srcSetWebp":"/static/b72d38f0a9a131a445c0798c8f11b233/8f106/blog-post-intro.webp 911w,\n/static/b72d38f0a9a131a445c0798c8f11b233/4b1a2/blog-post-intro.webp 1822w,\n/static/b72d38f0a9a131a445c0798c8f11b233/bbedc/blog-post-intro.webp 3635w","sizes":"(max-width: 3635px) 100vw, 3635px"}}},"relatedPosts":{"nodes":[{"fields":{"slug":"/blog-aws-kubernetes/"},"frontmatter":{"url":"aws-kubernetes/part-1","title":"The State of Kubernetes in AWS: Persistent Data Storage, Application Engineering and More","description":"When it comes to orchestrating containerized workloads, there are several options in the market, with [Kubernetes](https://kubernetes.io) being the most adopted and sought-after solution.","tags":["AWS","Kubernetes"],"date":"2022-12-20T16:44:23.317Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.5,"src":"/static/eb8228db77951dd583fd607fb3b3d3bd/836e2/kubernetes-and-aws.jpg","srcSet":"/static/eb8228db77951dd583fd607fb3b3d3bd/6e81a/kubernetes-and-aws.jpg 120w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/fbe0e/kubernetes-and-aws.jpg 240w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/836e2/kubernetes-and-aws.jpg 480w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/94285/kubernetes-and-aws.jpg 720w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/b1cc5/kubernetes-and-aws.jpg 960w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/097fa/kubernetes-and-aws.jpg 1920w","srcWebp":"/static/eb8228db77951dd583fd607fb3b3d3bd/35871/kubernetes-and-aws.webp","srcSetWebp":"/static/eb8228db77951dd583fd607fb3b3d3bd/83552/kubernetes-and-aws.webp 120w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/2b5a3/kubernetes-and-aws.webp 240w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/35871/kubernetes-and-aws.webp 480w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/9754a/kubernetes-and-aws.webp 720w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/fcc10/kubernetes-and-aws.webp 960w,\n/static/eb8228db77951dd583fd607fb3b3d3bd/30cf3/kubernetes-and-aws.webp 1920w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/kubernetes-node-management/"},"frontmatter":{"url":"karpenter","title":"Karpenter - A New Way to Manage Kubernetes Node Groups","description":"One of the most common discussions that happen when adopting Kubernetes is around autoscaling. You can autoscale your workloads horizontally or vertically, but the main challenge has always been the nodes.\n","tags":["Kubernetes","AWS"],"date":"2022-01-20T00:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.9047619047619047,"src":"/static/e0d4e328e64d982af16b722b7165263b/b460a/aws-karpenter.png","srcSet":"/static/e0d4e328e64d982af16b722b7165263b/d966b/aws-karpenter.png 120w,\n/static/e0d4e328e64d982af16b722b7165263b/67196/aws-karpenter.png 240w,\n/static/e0d4e328e64d982af16b722b7165263b/b460a/aws-karpenter.png 480w,\n/static/e0d4e328e64d982af16b722b7165263b/9a8d7/aws-karpenter.png 720w,\n/static/e0d4e328e64d982af16b722b7165263b/6e898/aws-karpenter.png 960w,\n/static/e0d4e328e64d982af16b722b7165263b/6050d/aws-karpenter.png 1200w","srcWebp":"/static/e0d4e328e64d982af16b722b7165263b/35871/aws-karpenter.webp","srcSetWebp":"/static/e0d4e328e64d982af16b722b7165263b/83552/aws-karpenter.webp 120w,\n/static/e0d4e328e64d982af16b722b7165263b/2b5a3/aws-karpenter.webp 240w,\n/static/e0d4e328e64d982af16b722b7165263b/35871/aws-karpenter.webp 480w,\n/static/e0d4e328e64d982af16b722b7165263b/9754a/aws-karpenter.webp 720w,\n/static/e0d4e328e64d982af16b722b7165263b/fcc10/aws-karpenter.webp 960w,\n/static/e0d4e328e64d982af16b722b7165263b/9000d/aws-karpenter.webp 1200w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/aws-kubernetes-part-2/"},"frontmatter":{"url":"aws-kubernetes/part-2","title":"The Current State of Kubernetes on AWS: Kubernetes Security, Scalability, Performance Engineering & More, Part 2","description":"In the first part of our two-part post on the current state of Kubernetes in AWS, we discussed how Kubernetes can help you handle stateful workloads with persistent data storage and standardize your application and data engineering approaches.","tags":["AWS","Kubernetes"],"date":"2021-12-09T08:30:41.061Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.5,"src":"/static/dddeb31efb8e1c04a57b32e10aa14653/836e2/kubernetes-security.jpg","srcSet":"/static/dddeb31efb8e1c04a57b32e10aa14653/6e81a/kubernetes-security.jpg 120w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/fbe0e/kubernetes-security.jpg 240w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/836e2/kubernetes-security.jpg 480w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/94285/kubernetes-security.jpg 720w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/b1cc5/kubernetes-security.jpg 960w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/097fa/kubernetes-security.jpg 1920w","srcWebp":"/static/dddeb31efb8e1c04a57b32e10aa14653/35871/kubernetes-security.webp","srcSetWebp":"/static/dddeb31efb8e1c04a57b32e10aa14653/83552/kubernetes-security.webp 120w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/2b5a3/kubernetes-security.webp 240w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/35871/kubernetes-security.webp 480w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/9754a/kubernetes-security.webp 720w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/fcc10/kubernetes-security.webp 960w,\n/static/dddeb31efb8e1c04a57b32e10aa14653/30cf3/kubernetes-security.webp 1920w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/gitops-why-is-it-relevant-now/"},"frontmatter":{"url":"gitops-why-is-it-relevant-now","title":"GitOps - Why is it Relevant Now?","description":"There seems to have been a lot of talk about GitOps just recently. This impression is certainly reinforced by the sessions and booths during KubeCon San Diego late 2019. Regardless of the discipline or services, GitOps was the keyword that was constantly repeated.","tags":["Kubernetes"],"date":"2020-01-21T17:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/602b397bd0ef200acbf6007f11c2f3f5/836e2/shutterstock_1019460151-1-.jpg","srcSet":"/static/602b397bd0ef200acbf6007f11c2f3f5/6e81a/shutterstock_1019460151-1-.jpg 120w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/fbe0e/shutterstock_1019460151-1-.jpg 240w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/836e2/shutterstock_1019460151-1-.jpg 480w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/94285/shutterstock_1019460151-1-.jpg 720w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/b1cc5/shutterstock_1019460151-1-.jpg 960w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/405f0/shutterstock_1019460151-1-.jpg 4856w","srcWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/35871/shutterstock_1019460151-1-.webp","srcSetWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/83552/shutterstock_1019460151-1-.webp 120w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/2b5a3/shutterstock_1019460151-1-.webp 240w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/35871/shutterstock_1019460151-1-.webp 480w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/9754a/shutterstock_1019460151-1-.webp 720w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/fcc10/shutterstock_1019460151-1-.webp 960w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/cdeed/shutterstock_1019460151-1-.webp 4856w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/setting-up-a-multi-tenant-aws-eks-cluster/"},"frontmatter":{"url":"setting-up-a-multi-tenant-aws-eks-cluster","title":"Setting up a Multi-tenant Amazon EKS cluster: a few things to consider","description":"MyOps prides itself in heavy use of cloud-native technology, and Kubernetes is often the primary platform of choice to run containerized workloads. In this blog we discuss using name space, network policies, Integrating AWS IAM to EKS cluster/workloads, isolation techniques and much more.","tags":["Kubernetes","AWS"],"date":"2019-12-12T17:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.7647058823529411,"src":"/static/242e9209b664bee2a7dc6b090d3a07e1/836e2/setting-up-multi-tenant-aws-eks-cluster.jpg","srcSet":"/static/242e9209b664bee2a7dc6b090d3a07e1/6e81a/setting-up-multi-tenant-aws-eks-cluster.jpg 120w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/fbe0e/setting-up-multi-tenant-aws-eks-cluster.jpg 240w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/836e2/setting-up-multi-tenant-aws-eks-cluster.jpg 480w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/94285/setting-up-multi-tenant-aws-eks-cluster.jpg 720w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/b1cc5/setting-up-multi-tenant-aws-eks-cluster.jpg 960w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/e147c/setting-up-multi-tenant-aws-eks-cluster.jpg 5760w","srcWebp":"/static/242e9209b664bee2a7dc6b090d3a07e1/35871/setting-up-multi-tenant-aws-eks-cluster.webp","srcSetWebp":"/static/242e9209b664bee2a7dc6b090d3a07e1/83552/setting-up-multi-tenant-aws-eks-cluster.webp 120w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/2b5a3/setting-up-multi-tenant-aws-eks-cluster.webp 240w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/35871/setting-up-multi-tenant-aws-eks-cluster.webp 480w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/9754a/setting-up-multi-tenant-aws-eks-cluster.webp 720w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/fcc10/setting-up-multi-tenant-aws-eks-cluster.webp 960w,\n/static/242e9209b664bee2a7dc6b090d3a07e1/b4d70/setting-up-multi-tenant-aws-eks-cluster.webp 5760w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/walkthrough-ecs-local/"},"frontmatter":{"url":"walkthrough-ecs-local","title":"Walkthrough - ECS Local: Bringing ECS to your local environment","description":"As someone who works with AWS on a day-to-day basis, It's important to stay up to date with all the changes and new features of the different services on the platform. That's how one recent announcement caught my eye - The new capability of local testing of ECS.","tags":["Kubernetes","AWS"],"date":"2019-09-17T16:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":2.142857142857143,"src":"/static/12224681f2fd40bf0749423e29cf8d0c/836e2/technology-education-information-handover.jpg","srcSet":"/static/12224681f2fd40bf0749423e29cf8d0c/6e81a/technology-education-information-handover.jpg 120w,\n/static/12224681f2fd40bf0749423e29cf8d0c/fbe0e/technology-education-information-handover.jpg 240w,\n/static/12224681f2fd40bf0749423e29cf8d0c/836e2/technology-education-information-handover.jpg 480w,\n/static/12224681f2fd40bf0749423e29cf8d0c/94285/technology-education-information-handover.jpg 720w,\n/static/12224681f2fd40bf0749423e29cf8d0c/b1cc5/technology-education-information-handover.jpg 960w,\n/static/12224681f2fd40bf0749423e29cf8d0c/0ff54/technology-education-information-handover.jpg 1200w","srcWebp":"/static/12224681f2fd40bf0749423e29cf8d0c/35871/technology-education-information-handover.webp","srcSetWebp":"/static/12224681f2fd40bf0749423e29cf8d0c/83552/technology-education-information-handover.webp 120w,\n/static/12224681f2fd40bf0749423e29cf8d0c/2b5a3/technology-education-information-handover.webp 240w,\n/static/12224681f2fd40bf0749423e29cf8d0c/35871/technology-education-information-handover.webp 480w,\n/static/12224681f2fd40bf0749423e29cf8d0c/9754a/technology-education-information-handover.webp 720w,\n/static/12224681f2fd40bf0749423e29cf8d0c/fcc10/technology-education-information-handover.webp 960w,\n/static/12224681f2fd40bf0749423e29cf8d0c/9000d/technology-education-information-handover.webp 1200w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/opensource-data-lakes-for-the-hybrid-cloud-designing-an-oss-datalake/"},"frontmatter":{"url":"opensource-data-lakes-for-the-hybrid-cloud-designing-an-oss-datalake","title":"OpenSource Data Lake for the Hybrid Cloud - Part 2: Designing an OSS DataLake","description":"In part 1 of this series, we answered the question of WHY Open Source components are often an attractive option when building a data lake of any significant size. In this second installment, we describe HOW to cost-effectively build a data lake out of Open Source components.","tags":["Kubernetes","Big Data"],"date":"2019-08-27T16:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.6,"src":"/static/107087aec2d3327919bcfb2ab38201da/836e2/datalake-p2.jpg","srcSet":"/static/107087aec2d3327919bcfb2ab38201da/6e81a/datalake-p2.jpg 120w,\n/static/107087aec2d3327919bcfb2ab38201da/fbe0e/datalake-p2.jpg 240w,\n/static/107087aec2d3327919bcfb2ab38201da/836e2/datalake-p2.jpg 480w,\n/static/107087aec2d3327919bcfb2ab38201da/94285/datalake-p2.jpg 720w,\n/static/107087aec2d3327919bcfb2ab38201da/b1cc5/datalake-p2.jpg 960w,\n/static/107087aec2d3327919bcfb2ab38201da/32638/datalake-p2.jpg 6399w","srcWebp":"/static/107087aec2d3327919bcfb2ab38201da/35871/datalake-p2.webp","srcSetWebp":"/static/107087aec2d3327919bcfb2ab38201da/83552/datalake-p2.webp 120w,\n/static/107087aec2d3327919bcfb2ab38201da/2b5a3/datalake-p2.webp 240w,\n/static/107087aec2d3327919bcfb2ab38201da/35871/datalake-p2.webp 480w,\n/static/107087aec2d3327919bcfb2ab38201da/9754a/datalake-p2.webp 720w,\n/static/107087aec2d3327919bcfb2ab38201da/fcc10/datalake-p2.webp 960w,\n/static/107087aec2d3327919bcfb2ab38201da/85285/datalake-p2.webp 6399w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/opensource-data-lake-for-the-hybrid-cloud/"},"frontmatter":{"url":"opensource-data-lake-for-the-hybrid-cloud","title":"OpenSource Data Lake for the Hybrid Cloud - Part 1","description":"Data lakes have become the de-facto standard for Enterprises and Corporations looking to take advantage of their existing Data.\n","tags":["Kubernetes","Big Data"],"date":"2019-06-17T16:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":1.5,"src":"/static/8640602d41c9ebdbd88a4281c37bcae9/836e2/myops-data-lake-blog-profile-1-.jpg","srcSet":"/static/8640602d41c9ebdbd88a4281c37bcae9/6e81a/myops-data-lake-blog-profile-1-.jpg 120w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/fbe0e/myops-data-lake-blog-profile-1-.jpg 240w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/836e2/myops-data-lake-blog-profile-1-.jpg 480w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/94285/myops-data-lake-blog-profile-1-.jpg 720w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/b1cc5/myops-data-lake-blog-profile-1-.jpg 960w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/724c8/myops-data-lake-blog-profile-1-.jpg 1000w","srcWebp":"/static/8640602d41c9ebdbd88a4281c37bcae9/35871/myops-data-lake-blog-profile-1-.webp","srcSetWebp":"/static/8640602d41c9ebdbd88a4281c37bcae9/83552/myops-data-lake-blog-profile-1-.webp 120w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/2b5a3/myops-data-lake-blog-profile-1-.webp 240w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/35871/myops-data-lake-blog-profile-1-.webp 480w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/9754a/myops-data-lake-blog-profile-1-.webp 720w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/fcc10/myops-data-lake-blog-profile-1-.webp 960w,\n/static/8640602d41c9ebdbd88a4281c37bcae9/36ebb/myops-data-lake-blog-profile-1-.webp 1000w","sizes":"(max-width: 480px) 100vw, 480px"}}}}},{"fields":{"slug":"/securing-kubernetes-secrets-how-to-efficiently-secure-access-to-etcd-and-protect-your-secrets/"},"frontmatter":{"url":"securing-kubernetes-secrets-how-to-efficiently-secure-access-to-etcd-and-protect-your-secrets","title":"Securing Kubernetes secrets: How to efficiently secure access to etcd and protect your secrets","description":"Etcd is a distributed, consistent and highly-available key value store used as the Kubernetes backing store for all cluster data, making it a core component of every K8s deployment. Due to its central role etcd may contain sensitive information related to access of the deployed services and their associated components,","tags":["Kubernetes","Security"],"date":"2018-06-20T16:00:00.000Z","image":{"childImageSharp":{"fluid":{"aspectRatio":0.7407407407407407,"src":"/static/62bd016a89ce5970467a24df70a52cf0/836e2/close-up-door-golden-67537.jpg","srcSet":"/static/62bd016a89ce5970467a24df70a52cf0/6e81a/close-up-door-golden-67537.jpg 120w,\n/static/62bd016a89ce5970467a24df70a52cf0/fbe0e/close-up-door-golden-67537.jpg 240w,\n/static/62bd016a89ce5970467a24df70a52cf0/836e2/close-up-door-golden-67537.jpg 480w,\n/static/62bd016a89ce5970467a24df70a52cf0/94285/close-up-door-golden-67537.jpg 720w,\n/static/62bd016a89ce5970467a24df70a52cf0/b1cc5/close-up-door-golden-67537.jpg 960w,\n/static/62bd016a89ce5970467a24df70a52cf0/fb46d/close-up-door-golden-67537.jpg 2820w","srcWebp":"/static/62bd016a89ce5970467a24df70a52cf0/35871/close-up-door-golden-67537.webp","srcSetWebp":"/static/62bd016a89ce5970467a24df70a52cf0/83552/close-up-door-golden-67537.webp 120w,\n/static/62bd016a89ce5970467a24df70a52cf0/2b5a3/close-up-door-golden-67537.webp 240w,\n/static/62bd016a89ce5970467a24df70a52cf0/35871/close-up-door-golden-67537.webp 480w,\n/static/62bd016a89ce5970467a24df70a52cf0/9754a/close-up-door-golden-67537.webp 720w,\n/static/62bd016a89ce5970467a24df70a52cf0/fcc10/close-up-door-golden-67537.webp 960w,\n/static/62bd016a89ce5970467a24df70a52cf0/d0805/close-up-door-golden-67537.webp 2820w","sizes":"(max-width: 480px) 100vw, 480px"}}}}}]},"socials":{"frontmatter":{"socials":{"linkedin":"https://www.linkedin.com/company/myops-yael","github":"https://github.com/opsguru-israel"}}},"markdownRemark":{"html":"<p>Recently there seems to be a lot of talk about GitOps. This impression is certainly reinforced by the sessions and booths during KubeCon San Diego late 2019. Regardless of the discipline or services, GitOps was the keyword that was constantly repeated. Despite a very branded beginning of the word (Weaveworks, with full credits, has done a great job promoting the concept), it seems to have quickly become a standard. As MyOps spends a lot of time working with clients implementing <em><a href=\"/day2ops-cloud-native\">Day2Ops</a></em>, including managing CI/CD and processes enabling cloud-native workloads, GitOps is such a relevant topic that it needs a deeper look.</p>\n<h2>What is GitOps?</h2>\n<p>When Weaveworks first promoted the term GitOps, it was largely pointing to using Git as the source of truth for <a href=\"/kubernetes-enablement\">Kubernetes</a> manifests and resource configurations. An automated pipeline is set up to run through the validation, test and deployment actions. As a result of the setup, the pipeline is triggered whenever the triggering event (e.g. pull request issued, successful merge to the production branch) is fired. The pre-configured workflows -- including necessary tests and validations -- generally lead to API calls to the targeted Kubernetes clusters, resulting in, for example, rollout of new versions of applications and services, creation of a new namespace to support a new tenant. The key is that no manual intervention is necessary.</p>\n<p>Because Git is the standard option to store source code (including codified configurations), and any DevOps practices will mandate automated pipelines, the GitOps is the logical marriage of source code and automation pipeline. In fact, GitOps is only a slight extension from the infrastructure as code paradigm. After all, the next logical stage for codified infrastructure is a standardised workflow, and what more can be standardised than a predefined automated workflow?</p>\n<p>One implicit requirement for GitOps, however, is declarative infrastructure. Declarative code is superior to procedural code because it is idempotent. Because declarative code only specifies desired state of the system post-application, the same desired state is valid regardless of the current state of the system. Kubernetes resources are declarative by nature, infrastructure-as-code tools such as Terraform and CloudFormation are also declaration-driven. Declarative infrastructure is popular because delegating the just-in-time action plan to the controllers of the respective resources is a lot more scalable and manageable. The alternative of determining all the applicable decision flows and execution paths of complex systems is simply not viable.</p>\n<p><img src=\"https://static.wixstatic.com/media/b2b678_64a4d07c79a042b09047fe468789e6e3~mv2.jpg/v1/fit/w_300,h_300,al_c,q_5/file.jpg\"><img src=\"https://static.wixstatic.com/media/b2b678_64a4d07c79a042b09047fe468789e6e3~mv2.jpg/v1/fill/w_1127,h_206,al_c,lg_1,q_90/b2b678_64a4d07c79a042b09047fe468789e6e3~mv2.webp\"></p>\n<p><em>Figure 1: A typical GitOps pipeline: Git triggers the workflow, resulting in \"kubectl apply\" at a Kubernetes cluster</em></p>\n<h2>Why GitOps now?</h2>\n<p>The premise of GitOps is not different from the drivers of CI/CD, namely</p>\n<ul>\n<li><strong>Need for speed</strong>: one of the differentiation for Docker and containers is speed, especially when compared to bare-metal servers and virtual machines. The advantage of speedy deployments requires however a process that is equally speedy. The need for speed goes hand in hand with the need for transparency -- transparent code leads to quicker knowledge transfer and therefore increases confidence and quality.</li>\n<li><strong>Need for repeatability</strong>: one of the primary drivers of using version control is repeatability -- that the same software/configuration can be regenerated using the same code. As declarative (and implicitly idempotent) infrastructure and configuration is the expected norm, the code and instructions of the same version are expected to bring up the exact infrastructure, regardless of when the code is executed.</li>\n<li><strong>Need for a single source of truth</strong>: this is where Git shines over other version control mechanisms. What can be more convenient than using a version control system that allows developers to collaborate while keeping track of all the divergences and correlations? Git is accessible, it builds on a storage mechanism that is well-known and well-adopted by the majority of developers. Until another version control mechanism is introduced (blockchain!!), Git is the binary-based version control that is as good as cemented for most purposes.</li>\n<li><strong>Need for reliability with auditability</strong>: having Kubernetes manifests stored in a source code is the first step to reliability, but a proven and reliable mechanism to verify, apply and track the changes is also critical as part of the insurance to the credibility of the process. A standardized workflow that applies the changes is a lot more credible than an engineer being able to get the change and apply manually using \"kubectl.\"</li>\n</ul>\n<p>As such, why is it suddenly so popular? Arguably, it is because of the current features of the Kubernetes ecosystem.</p>\n<p>The popularity of Kubernetes-targeted, opinionated CI/CD solutions from different vendors is not only an indicator of the popularity of Kubernetes, but it is also a signal of the need to introduce a platform-as-a-service experience that is thus far largely lacking in Kubernetes.</p>\n<p>While Kubernetes grows in its feature set, Kubernetes user experience in the core project is still an area that lags behind the platform. The kubernetes/dashboard project has been attempting to fill the gap. However, a UI that assumes users to have relatively intimate knowledge of the container orchestration platform is still a high entry barrier to most developers whose primary concern is the administration of individual workloads instead of the cluster. Kubernetes is the primary choice of container orchestration, but it does not fulfil the user requirements on looking for a platform-as-a-service experience.</p>\n<p>OpenShift arguably is the first product that identifies the need to address the platform-as-a-service gap for the Kubernetes experience. However, while RedHat continuously and heavily contributes to upstream Kubernetes, one cannot help but wonder about the potential divergence between OpenShift and Kubernetes. The slew of products emerging in the market aims to provide a packaged platform-as-a-service experience, including CI/CD, container registry, container scanning services. They aim to strongly reinforce the native Kubernetes platform by providing an experience that abstracts from the complexities of the platform.</p>\n<p>In the next two weeks, we are going to explore a number of services available that answer the GitOps needs and compare the features and promises of a number of GitOps hosted services. We are also going to deep-dive into one such offering and examine how it can be incorporated to simplify some CI/CD pipeline setup.</p>\n<p>Are you interested in learning how MyOps implements CI/CD, Day2Ops and how GitOps aligns with <em><a href=\"/day2ops-cloud-native\">Day2Ops</a></em> in a solution that works for you? We'd love to discuss a workflow that is customised to your needs!</p>\n<p><em><a href=\"mailto:info@myops.co.il\">info@myops.co.il</a></em></p>","frontmatter":{"url":"gitops-why-is-it-relevant-now","seo":{"title":"GitOps - Why is it Relevant Now?","description":"There seems to have been a lot of talk about GitOps just recently. This impression is certainly reinforced by the sessions and booths during KubeCon San Diego late 2019. Regardless of the discipline or services, GitOps was the keyword that was constantly repeated.","canonical":null,"image":{"childImageSharp":{"fluid":{"aspectRatio":1.3368983957219251,"src":"/static/602b397bd0ef200acbf6007f11c2f3f5/724c8/shutterstock_1019460151-1-.jpg","srcSet":"/static/602b397bd0ef200acbf6007f11c2f3f5/84d81/shutterstock_1019460151-1-.jpg 250w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/f0719/shutterstock_1019460151-1-.jpg 500w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/724c8/shutterstock_1019460151-1-.jpg 1000w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/d79bd/shutterstock_1019460151-1-.jpg 1500w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/a66ad/shutterstock_1019460151-1-.jpg 2000w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/405f0/shutterstock_1019460151-1-.jpg 4856w","srcWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/36ebb/shutterstock_1019460151-1-.webp","srcSetWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/1d872/shutterstock_1019460151-1-.webp 250w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/4e6d4/shutterstock_1019460151-1-.webp 500w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/36ebb/shutterstock_1019460151-1-.webp 1000w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/fd45d/shutterstock_1019460151-1-.webp 1500w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/6e77b/shutterstock_1019460151-1-.webp 2000w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/cdeed/shutterstock_1019460151-1-.webp 4856w","sizes":"(max-width: 1000px) 100vw, 1000px","maxHeight":750,"maxWidth":1000}}}},"title":"GitOps - Why is it Relevant Now?","date":"2020-01-21T17:00:00.000Z","tags":["Kubernetes"],"author":{"name":"MyOps","photo":{"extension":"png","publicURL":"/static/3ff870573bc56665ee67e3cf3f5fc163/logo-small.png","childImageSharp":{"fluid":{"aspectRatio":0.8759124087591241,"src":"/static/3ff870573bc56665ee67e3cf3f5fc163/b460a/logo-small.png","srcSet":"/static/3ff870573bc56665ee67e3cf3f5fc163/d966b/logo-small.png 120w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/67196/logo-small.png 240w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/b460a/logo-small.png 480w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/eec14/logo-small.png 596w","srcWebp":"/static/3ff870573bc56665ee67e3cf3f5fc163/35871/logo-small.webp","srcSetWebp":"/static/3ff870573bc56665ee67e3cf3f5fc163/83552/logo-small.webp 120w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/2b5a3/logo-small.webp 240w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/35871/logo-small.webp 480w,\n/static/3ff870573bc56665ee67e3cf3f5fc163/c0cb3/logo-small.webp 596w","sizes":"(max-width: 480px) 100vw, 480px"}}}},"image":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/602b397bd0ef200acbf6007f11c2f3f5/8c3c2/shutterstock_1019460151-1-.jpg","srcSet":"/static/602b397bd0ef200acbf6007f11c2f3f5/15aed/shutterstock_1019460151-1-.jpg 300w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/a07a5/shutterstock_1019460151-1-.jpg 600w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/8c3c2/shutterstock_1019460151-1-.jpg 1200w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/cd33f/shutterstock_1019460151-1-.jpg 1800w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/1c8c6/shutterstock_1019460151-1-.jpg 2400w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/f7940/shutterstock_1019460151-1-.jpg 4856w","srcWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/e7405/shutterstock_1019460151-1-.webp","srcSetWebp":"/static/602b397bd0ef200acbf6007f11c2f3f5/4fec1/shutterstock_1019460151-1-.webp 300w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/483a3/shutterstock_1019460151-1-.webp 600w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/e7405/shutterstock_1019460151-1-.webp 1200w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/7f800/shutterstock_1019460151-1-.webp 1800w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/7acea/shutterstock_1019460151-1-.webp 2400w,\n/static/602b397bd0ef200acbf6007f11c2f3f5/56f29/shutterstock_1019460151-1-.webp 4856w","sizes":"(max-width: 1200px) 100vw, 1200px"}}}}}},"pageContext":{"id":"4e907e13-01f5-5b70-928d-0c7effa76655","categories":["Kubernetes"]}},"staticQueryHashes":["2022990323","639612397"]}