Skip to content

AymenBoujmil/TP_Devops_Course_Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Devops Course Management Project

This project is a course management system.

There is 2 microservices in this project. The first microservice is a course service in which we can see the list of all courses, delete courses and add courses.

The second microservice is a teacher service in wich we can see the list of all teachers, add teachers and delete teachers. We can also see the list of courses for a particular teacher, or add a course or also delete a course.

These two microservices connects with an external database Atlas MongoDB

image

Deployment

Architecture

Architecture

So I started by dockerizing my two services then I Created Yaml files to deploy it in kubernetes. image

image

Deployment Strategy

I will use Canary because:

  • version released for a subset of users
  • convenient for error rate and performance monitoring
  • fast rollback

Observability

Metrics

For the metrics I worked with Prometheus for that i used prom-client. And I installed Prometheus in my cluster using helm chart. image

My metrics are counters.

  • We have all_requests:
  • image
  • For the buisiness metric we can use all_requests with a filter in the http POST.
  • image

For better Visualization, I used grafana and I installed it in my cluster using the helm chart: image image

Logging

For Logging I used winston Logger and i configure it in my services then I installed the datadog agent in my cluster so that I can see the logs in Datadog. image

image image

As we see, we have request ID of the log so that we can filter the logs by ID.

Also we have a rate limit user requests based on their IP address. For that I used express rate limit package.

Automation

I used Terraform to automate various infrastructure tasks. So I created three stacks and I used a backend state(Azure Storage Account).

Aks Cluster Provisionning

I created a new ressource group and an aks cluster.

Infrastructure layer

In this layer I automated the deployment of my application using helm charts and I also set up the ingress in my cluster.

Observability layer

In this layer I set up the monitoring using helm chart. We have set up prometheus, grafana and datadog.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages