Intuit is knee-deep in its busiest time of the year — tax season. But for this titan of tax filing, the ability to meet the demands of millions of customers across a one-month period didn’t just grow overnight inside its own walls.
Intuit relied heavily on open source software to do the job. The company runs hundreds of Kubernetes clusters to meet the demands of its customers, and in doing so, Intuit has also become the number one contributor to Argo CD, a project in the Cloud Native Computing Foundation Incubator.
How did this happen? And almost as importantly, why did this happen? The answer is fairly straightforward — complexity.
“Kubernetes adopters’ maturity has increased. Most organizations are more comfortable operating Kubernetes these days, so they provision a lot of it. With that comes the challenges of how to configure all those clusters. If you configure an app, you used to deploy it to one or two clusters. Now you deploy to 50 clusters. It’s become very complex,” said Siamak Sadeghianfar, product manager for continuous integration/continuous delivery (CI/CD) on Red Hat OpenShift.
CI/CD pipelines have long played a major role in speeding up the development and deployment of cloud-native apps. Cloud services like AWS lend themselves to more agile deployment through the services they offer as well as approaches such as Infrastructure as Code. There is no shortage of tools to help you manage your CI/CD pipeline as well.
While the majority of development teams have streamlined their pipelines to take full advantage of cloud-native features, there is still so much that can be done to refine CI/CD even further. The entire pipeline can now be built as code and managed either via Git as a single source of truth or by using visual tools to help guide the process.
The entire process can be fully automated. Even better, it can be made serverless, which allows the CI/CD pipeline to operate with immense efficiency. Git branches can even be utilized as a base for multiple pipelines. Thanks to the three tools from Amazon; AWS CodeCommit, AWS CodeBuild, and AWS CodeDeploy, serverless CI/CD on the AWS cloud is now easy to set up.
#aws #aws codebuild #aws codecommit #aws codedeploy #cd #cd pipeline #ci #ci/cd processes #ci/cd workflow #serverless
Some time after writing the first article, where I cleverly use jsonnet and gitlab, I realized that pipelines are certainly good, but unnecessarily difficult and inconvenient.
In most cases, a typical task is need: “to generate YAML and put it in Kubernetes”. Actually, this is what the Argo CD does really well.
Argo CD allows you to connect a Git repository and sync its state to Kubernetes. By default several types of applications are supported: Kustomize, Helm charts, Ksonnet, raw Jsonnet or simple directories with YAML/JSON manifests.
#gitops #argo #continuous-integration #kubernetes #devops
In this tutorial, we will be starting from scratch, with an empty Kubernetes cluster running on GKE. We chose GKE so we could share how Argo CD can be exposed publicly and securely to a group of developers, instead of limiting the demo to a toned-down local and private environment. Of course, if you wish to follow along using only your workstation, you can do so by creating a
Kind cluster in just a minute.
This tutorial also assumes you have downloaded and installed
kubectl and the argocd CLI.
Starting from scratch, we will scaffold our Kubernetes environment with all the desired tooling in just a few clicks, using the K8s Initializer at app.getambassador.io.
The K8s Initializer will ask questions about your target Kubernetes cluster, your load balancer, and where you’d like to terminate TLS. It will give you options to configure CI/CD, Argo is the obvious choice, as well as monitoring. After answering the questionnaire, the K8s Initializer will generate a zip file with a bundle of YAML files ready to be installed on your remote cluster.
#kubernetes #gitops #ambassador #ingress #argo
Within its 6 years of existence, Kubernetes has been the centerpiece of the Cloud Native landscape, elevating a pluggable system that contributed to the diversification of the entire ecosystem. As a result, multiple areas have been developed in the industry, galvanizing solutions for components such as network, runtime, storage, as well as cluster provisioning. One of the pivotal tools in the management of cross-public cloud infrastructure has been Cluster API, leading a unique and radical stance for Kubernetes distribution. In association with a model such as GitOps, Cluster API assembles a mechanism that leverages the concept of a cluster as a resource.
This blog post aims to outline how ClusterOps can be modeled with Cluster API manifests and automated using GitOps tools such as ArgoCD and Flux.
When it comes to cluster creation, numerous solutions and distributions have been put into place to simplify the Kubernetes bootstrapping process across cloud providers. However, one of the tools that stand out in the open-source landscape is Cluster API, as it facilitates a common interface for platform creation across existing vendors (e.g. GCP, AWS, Azure, Alibaba Cloud, Packet).
Note: For a full introduction of Cluster API, refer to this blog post .
#gitops #cloud-native #argo-cd #aws #kubernetes #cloud
You store and manage your deployments in Git repositories. With this, you will leverage the version-control system for tracking changes in the deployments and coordinating work among infrastructure teams like how programmers do. When you have everything declaratively configured as a code in the Git system, this Git centralized workflow allows you to manage the infrastructure at scale, and set the stage for accelerating automation, i.e., “Git as a single source of truth”.
In this example, we are going to learn how to construct the GitOps workflow from end-to-end using GitLab CI, ArgoCD with Helm Chart. This series is based on the following components:
#argo-cd #gitops #kubernetes #helm #gitlab-ci