GitOps Architecture

In the introduction section 1.2 Introduction to GitOps Workflow we talked about GitOps Workflow and the GitOps deployment process. In this section, we will implement GitOps on AWS EKS environment with ArgoCD as the GitOps Agent.

GitOps Architecture

Similar to the Workflow in the introduction, we will implement GitOps using ArgoCD combined with Helm Chart and Kustomize to manage applications and infrastructure in the Kubernetes cluster deployed on AWS EKS.

In the architecture mentioned above, the application deployment process is automated through GitOps:

  1. Whenever a new image is built and pushed to ECR, CodeBuild will automatically update the new tag to the repository containing Helm chart files.

  2. ArgoCD, serving as the GitOps Agent, will monitor this configuration repository. When changes are detected (such as new image tags), ArgoCD will automatically synchronize the cluster state with the state defined in Git.

  3. Application deployment in the system is managed through Application objects in ArgoCD. Each Application corresponds to a microservice and uses Helm Chart to describe deployment configuration. Specifically for database components like PostgreSQL, Kustomize is used in combination to fine-tune configuration by applying patch mechanisms to ensure high customization and reusability for each environment.

  4. Additionally, systems like Kong Gateway (API Gateway), Prometheus (monitoring), Grafana (visualization), and ELK Stack (logging) are also deployed and managed by GitOps, ensuring consistency, controllability and easy rollback if incidents occur.