The GameFlow Mastery project integrates a comprehensive CI/CD pipeline for board game development. This pipeline ensures code quality, security and efficient deployment, leveraging various tools and technologies to deliver a seamless development and deployment experience for production environment projects. This project is a learning path of DevOPS CI/CD using the following tools:
- Jenkins: Automates the build and deployment process.
- Kubernetes: Orchestrates and manages containerized applications
- Prometheus: Monitors the performance and health of applications
- Grafana: Visualizes monitoring data and creates dashboards
- Maven: Manages project builds and dependencies.
- SonarQube: Analyzes code quality and maintains code health
- Trivy: Scans for vulnerabilities in container images
- Nexus Repository: Stores and manages build artifacts
- Docker: Containerizes applications for consistent deployment
- Developer Setup: Developers write code and tests locally.
- Code Commit & Push: Code is pushed to the GitHub repository.
- Jenkins Trigger: Jenkins triggers the pipeline upon code push.
- Declarative Tool Install: Installs necessary tools and dependencies.
- Git Checkout: Checks out the latest code from GitHub.
- Compile: Compiles the code using Maven.
- Test: Runs unit tests to ensure code correctness.
- File System Scan: Checks for file system anomalies.
- SonarQube Analysis: Analyzes code quality and security issues.
- Quality Gate: Ensures code meets predefined quality standards.
- Build: Packages the application using Maven.
- Publish to Nexus: Publishes build artifacts to Nexus Repository.
- Build & Tag Docker Image: Builds and tags Docker image.
- Push Docker Image: Pushes Docker image to Docker repository.
- Deploy to Kubernetes: Deploys the application to Kubernetes cluster.
- Verify Deployment: Verifies the successful deployment of the application.
- System-Level Monitoring: Configures Prometheus for monitoring system performance and health.
- Website-Level Monitoring: Uses Prometheus black-box exporter for monitoring website availability and performance.
- Visualization: Uses Grafana to create dashboards for visualizing both system-level and website-level monitoring data.
- Declarative Post Actions: Performs post-deployment actions.
- Notification: Sends notification about the deployment status.
For installation steps and how to configure the project follow the installation guide docs