Skip to content

Qwitter/Qwitter-DevOps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qwitter-DevOps

qwitter_devops

This repository contains all the DevOps files needed for Qwitter (X clone). I have used various tools on this project, and it was deployed on Azure, and the database was hosted on AWS (RDS).

Tools

Docker

Docker was used to containerize both the backend and frontend projects, making it easy to deploy them on hosted servers.

Jenkins

Jenkins was employed to automate the process of pushing changes to GitHub. Instead of manually pulling these changes, building the Docker image, and then pushing it to Docker Hub, Jenkins handled the entire process automatically

In this project, I implemented a total of four pipelines: two for backend (Development and Production), and two for frontend (Development and Production).

Backend Development pipeline has the following stages:

image

Backend Production pipeline has the following stages:

image

Frontend Development pipeline has the following stages:

image

Frontend Production pipeline has the following stages:

image

I have also used a mailing service that sends an email to the team leader whenever a pipeline fails and when it returns to normal operation.

Prometheus

Prometheus is an open-source monitoring tool tailored for dynamic infrastructures. With a robust querying language and alerting features, Prometheus enables real-time insights into system performance. All Prometheus configuration files can be found here.

Grafana

Grafana is an open-source analytics and monitoring platform that integrates with Prometheus, allowing users to visualize and understand their metrics through dynamic and customizable dashboards. Its user-friendly interface and extensive plugin ecosystem make it a versatile tool for creating insightful and interactive visualizations to monitor and analyze data across different domains.

I have monitored my three servers: Backend, Frontend, and Jenkins.

grafana1 grafana2

AWS

I utilized AWS to obtain a hosted relational database (RDS).

Azure

I employed Azure to host the backend, frontend, and Jenkins, as well as to acquire Azure Storage for storing static files.

Watchtower

Watchtower is an application that monitors running containers for changes to their images. When someone pushes an update to Docker Hub, Watchtower detects the changes, pulls down the new image, and subsequently restarts the container using the updated image with the same start options as the original.

ClouDNS

I utilized clouDNS to obtain the domain name for Qwitter (qwitter.cloudns.org) and a sub-domain for the backend server (back.qwitter.cloudns.org).

©️Developers

Name Email
Fares Atef [email protected]

Releases

No releases published

Packages

No packages published