Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/satya04m/devops_game-mastery
GameFlow Mastery is a CI/CD pipeline for board game development. It automates the process, ensuring code quality, security, and efficient deployment using Jenkins, Kubernetes, Prometheus, Grafana, GitHub, Maven, SonarQube, Trivy, Nexus, and Docker.
https://github.com/satya04m/devops_game-mastery
docker grafana html-css-javascript java jenkins kubernetes prometheus
Last synced: 27 days ago
JSON representation
GameFlow Mastery is a CI/CD pipeline for board game development. It automates the process, ensuring code quality, security, and efficient deployment using Jenkins, Kubernetes, Prometheus, Grafana, GitHub, Maven, SonarQube, Trivy, Nexus, and Docker.
- Host: GitHub
- URL: https://github.com/satya04m/devops_game-mastery
- Owner: satya04m
- Created: 2024-08-07T07:42:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-07T08:57:48.000Z (3 months ago)
- Last Synced: 2024-10-11T06:03:19.765Z (27 days ago)
- Topics: docker, grafana, html-css-javascript, java, jenkins, kubernetes, prometheus
- Language: HTML
- Homepage:
- Size: 957 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Overview
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:
![alt text](./docs/assets/image-3.png)
## Tech Stack
- [**Jenkins**](https://www.jenkins.io/doc/): Automates the build and deployment process.
- [**Kubernetes**](https://kubernetes.io/docs/setup/): Orchestrates and manages containerized applications
- [**Prometheus**](https://prometheus.io/docs/prometheus/latest/getting_started/): Monitors the performance and health of applications
- [**Grafana**](https://grafana.com/docs/grafana/latest/): Visualizes monitoring data and creates dashboards
- [**Maven**](https://maven.apache.org/guides/getting-started/index.html): Manages project builds and dependencies.
- [**SonarQube**](https://docs.sonarsource.com/sonarqube/latest/): Analyzes code quality and maintains code health
- [**Trivy**](https://aquasecurity.github.io/trivy/v0.53/): Scans for vulnerabilities in container images
- [**Nexus Repository**](https://help.sonatype.com/en/installation-and-upgrades.html): Stores and manages build artifacts
- [**Docker**](https://docs.docker.com/get-docker/): Containerizes applications for consistent deployment## Architecture
![Architecture](./docs/assets/image.png)
## Pipeline Flow
- **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.## Installation
For installation steps and how to configure the project follow the [installation guide docs](./docs)