CI/CD Pipeline using Jenkins, SonarQube, Trivy, Docker, and Amazon EKS
Git Repository link - https://github.com/abhaytechlab/DevOps-CICD
Pipeline Script Link - https://drive.google.com/file/d/1n47l2QzB93yeacr0OD3THVaoekWcicCD/view?usp=sharing
User Interaction:
The pipeline starts when a user pushes code to a GitHub repository.
Local Deployment:
♻️ Initial development and testing happen in a local environment where the app is connected to essential services like EC2 instance, Cloudinary, MongoDB, and Mapbox.
CICD Pipeline - Jenkins Integration:
🧪 Testing: Jenkins runs unit tests to verify that recent changes don’t break existing functionality.
🛠️ SonarQube: Scans the codebase to enforce coding standards, check for code smells, and identify potential bugs.
🔐 Trivy FS Scan: The pipeline integrates Trivy FS scan to examine the file system for vulnerabilities.
🐳 Docker: A Docker image is built with the latest code and dependencies, creating a standardized environment for testing and production.
🔍 Trivy Image Scan: After building the image, Trivy performs another scan specifically on the Docker image, detecting any vulnerabilities in dependencies and base images.
📤 Docker Push: Once scans pass, the Docker image is pushed to a container registry (DockerHub), making it available for deployment.
📦 Finally, the app is deployed in a Development container environment for integration testing and validation.
🔹 Production Environment (Deployment to Amazon EKS):
Once the application successfully passes all stages, it is ready for Production deployment, hosted on Amazon Elastic Kubernetes Service (EKS).
🌐 EKS Deployment: The containerized application is deployed to Amazon EKS, a managed Kubernetes service that ensures scalability, high availability, and managed resources.
📈 Continuous Monitoring and Alerting: In production, continuous monitoring is implemented to track performance, resource utilization, and application health.
◾ Real-time alerts notify about any anomalies, ensuring rapid response to potential issues.