This project demonstrates the implementation of a CI/CD pipeline for a Node.js-based ticketing application
Implemented a robust CI/CD pipeline for the Demo-CRM application (a ticketing system written in Node.js). The pipeline integrates:
- [ArgoCD for automated deployment]
- [Docker for containerization]
- [Helm charts for Kubernetes deployment]
The application is deployed onto an AWS EKS cluster, with infrastructure provisioned and managed using Terraform, ensuring scalability, high availability, and automated infrastructure management.
As shown in the diagram, the application consists of three containers:
- MongoDB - The database container that stores application data
- Demo-CRM Application - The main backend application running on port 3000.
- Nginx - Used as a reverse proxy to route incoming traffic to the Demo-CRM application.
Network Segmentation - To enhance security, two separate Docker networks were created:
- frontend- Connects Nginx and Demo-CRM, allowing external users to access the application only through Nginx.
- badckend - Connects Demo-CRM and MongoDB, ensuring that the database is isolated from direct user access.
The user can only send requests to Nginx on port 80, preventing direct access to the backend services. MongoDB is not exposed to external requests, making the system more secure. The separation between frontend and backend networks ensures better security.
| Category | Technologies |
|---|---|
| Infrastructure | K8S |
| Containerization | Docker and Docker compose |
| CI/CD | github action |
| Security | Use Secrets and diffrent networks |
| Application | Node.js |
| Database | MongoDB |
Requirements for building and running the project:
- Demo-crm Application
- AWS user to create ECR and EKS
- Terraform modle to create EKS
- docker and docker compose installed
Follow these instructions to set up the project locally and deploy it to your cloud environment.
- create ECR
in AWS user create ECR at the required region
- create EKS cluster
run: terraform apply to with the cluster create modle
Idan Raviv - LinkedIn - idanraviv1993@gmail.com
Project Link: https://github.com/idrr1993/Application
