/MerryTV

DevOps school project using Jenkins, Docker, Trivy, Slack, Helm, Prometheus, Grafana, SonarQube, OWASP Dependency Check and Kubernetes for development and deployment. πŸ› οΈπŸ’»

Primary LanguageJavaScript

MerryTV πŸŒπŸš€

Overview

MerryTV is a DevOps school project that integrates various tools and technologies to streamline the development and deployment process. πŸ› οΈπŸ’»

Tools Used

Jenkins

Jenkins is employed as the automation server, providing a robust platform for building, deploying, and automating projects.

Docker

Docker facilitates seamless containerization, ensuring consistency across different environments and simplifying deployment.

Trivy

Trivy is integrated to enhance container security by scanning Docker images for vulnerabilities.

Slack

Slack is employed for effective communication and real-time notifications. Jenkins CI app integration ensures immediate updates.

Jenkins Shared Library

The Jenkins Shared Library contains essential scripts for various tasks, enhancing reusability and maintaining a consistent pipeline structure. Key scripts include:

  • checkoutGit.groovy
  • cleanWorkspace.groovy
  • dockerBuild.groovy
  • kubeDelete.groovy
  • kubeDeploy.groovy
  • npmInstall.groovy
  • qualityGate.groovy
  • removeContainer.groovy
  • runContainer.groovy
  • sonarqubeAnalysis.groovy
  • trivyFs.groovy
  • trivyImage.groovy

Jenkins Pipeline πŸš€

The Jenkins pipeline is structured to automate builds and deployments. It starts by triggering a job, utilizing a shared library stored in GitHub for reusability. The pipeline includes stages for installing plugins, configuring tools, integrating SonarQube for code quality checks, and adding custom stages for a tailored workflow.

Security and Quality Checks πŸ›‘οΈ

Docker & API Integration 🐳

Automated Docker image builds and push to a container registry are achieved, along with secure API interactions using an API key from Rapid API.

Kubernetes Integration 🚒

  • Helm for Kubernetes Application Management: Utilize Helm to simplify the management and deployment of applications on Kubernetes.

  • Prometheus for Monitoring: Implement Prometheus for robust monitoring, collecting and processing real-time metrics.

  • Grafana for Visualization: Leverage Grafana to create interactive and customizable dashboards, providing optimal visualization of Prometheus metrics.

  • Customizing Prometheus Service: Tailor the Prometheus service configuration to ensure optimal performance for collecting and storing metrics.

  • Customizing Grafana Service: Fine-tune Grafana service settings to meet specific visualization requirements.

  • Kubernetes Deployment: Deploy applications to Kubernetes, ensuring scalability and efficient container management.

Screenshots πŸ“ΈπŸ“Š

Image 1

Image 2

Image 3

Image 4

Image 5

Image 6

Image 7

Image 8

Image 9

Image 10

Image 11

Image 12

Alt Text