In this Workshop, you will be guided to deploy a CI/CD system for a Microservices application, including a Frontend built with ReactJS and Backend developed with Java Spring Boot. The system is designed with separate components that communicate with each other through an API Gateway and use Eureka Server for service discovery. Data is stored in a PostgreSQL database.
The API Gateway is deployed through Kong Gateway, a powerful open-source solution that helps route, authenticate, and control access between services.
The entire system is deployed on the Kubernetes Container Orchestration platform, specifically on AWS Elastic Kubernetes Service (EKS). The creation and configuration of the EKS cluster is done automatically through the eksctl tool.
The project applies the GitOps model with ArgoCD, allowing synchronization of infrastructure state from Git and automatic deployment of changes when updates are made in the repository.
The CI/CD process is set up with AWS CodeBuild, automatically building and testing source code, then creating Docker Images and pushing them to Amazon Elastic Container Registry (ECR). To ensure code quality and security, SonarQube is integrated into the pipeline to perform static code analysis, detecting quality issues and security vulnerabilities.
Although the system is deployed with a complex model, you will be guided in detail through the deployment of each component to create a complete system.
Requirements to complete this Workshop include:
Estimated time to complete this Workshop is about 4 hours.
Estimated cost is about $3.
EKS Cluster control plane: $0.10/hour.
EKS Cluster node group (t3.large): $0.1056/hour x 3 nodes.
Route 53 Hosted Zone: $0.50/month.
Additionally, there are other costs such as ECR, ALB, EBS but these costs are negligible compared to EKS costs.
The above cost is only an estimate and may vary depending on the number of nodes and implementation time.
If you are using Free Tier or if AWS currently provides you with $200 credit, the cost will be lower.
| Repository | Description |
|---|---|
| Frontend | Repository containing the source code of the Frontend application written in ReactJS. |
| Backend | This repository contains all the Services and necessary tools of the Microservices system. |
| User Service | Repository containing the source code of User Service written in Java Spring Boot. |
| Product Service | Repository containing the source code of Product Service written in Java Spring Boot. |
| Shopping Cart Service | Repository containing the source code of Shopping Cart Service written in Java Spring Boot. |
| Config Server | Repository containing the source code of Config Server written in Java Spring Boot. |
| Discovery Server | Repository containing the source code of Discovery Server written in Java Spring Boot. |
| Helm Chart Frontend | Helm Chart to deploy the Frontend of the system. |
| Helm Chart Backend | Helm Chart to deploy the Backend of the system. |