Coder Social home page Coder Social logo

tp_devops_course_management's Introduction

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.

tp_devops_course_management's People

Contributors

aymenboujmil avatar

Stargazers

Mohamed Amin Felah avatar Nour Belmabrouk avatar Chaima Akkari avatar Riheme avatar Ramzi Latrous avatar Saief Zneti avatar  avatar Mekni_Wassime avatar  avatar Oumaima Kboubi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.