Deploy Application with ArgoCD

In this section, we will use ArgoCD to automatically deploy the entire application system to the EKS Cluster, including the data layer, backend services, and frontend. The deployment follows the GitOps model, where all system configuration and state are managed through Git, ensuring consistency, easy tracking, and easy rollback.

The deployment is performed according to logical dependency order between components, ensuring stable service startup without connection errors when components are not ready.

Application deployment order

  1. Frontend

  2. Discovery Server

  3. PostgreSQL

  4. Keycloak-MySQL

  5. Keycloak

  6. User Service

  7. Product Service

  8. Cart Service

  9. API Gateway

All the above services will be accessed through the Ingress Controller with custom domain names pre-configured in Route 53.

Workflow

To simplify the deployment, the entire process will be divided into 3 main phases:

Frontend Deployment - Build image from user interface source code.

  • Push image to Amazon ECR (Elastic Container Registry).

  • Deploy through ArgoCD using Helm Chart.

Database System Deployment - Includes PostgreSQL, Keycloak-MySQL, and Keycloak.

  • Use Kustomize to manage and configure deployment of these components.

Main System Services Deployment - Includes services such as: Discovery Server, User Service, Product Service, Cart Service, and API Gateway.

  • Services will be built as images, pushed to ECR, then deployed using Helm Chart through ArgoCD.

Content

  1. Frontend Deployment
  2. System Database Deployment
  3. Backend Services Deployment
  4. Kong Gateway Deployment