Les 4 sujets de classe renversée
La promo va être divisée en suivant les 4 même groupes que pour le TD sur le pizza shop. Le but ici est d’explorer par vous-même 4 thèmes importants en systèmes distribués et de réussir à donner de l’information sur ce sujet aux autres.
Votre présentation devra contenir les éléments suivants pour un total de 5 à 10 minutes :
-
1 slide d’illustration de l’utilité de votre sujet pour comprendre le problème qui est résolu,
-
quelques slides sur les concepts de base de votre sujet et comment ça fontionne,
-
quelques slides sur l’outil que vous devez étudier,
-
si vous arrivez à faire une petite démonstration de base de l’outil ça sera idéal mais le principal est de comprendre et faire comprendre les concepts et l’outil.
Pour chaque sujet je vous donne un certain nombre de pointeurs mais libre à vous d’en chercher d’autres suivant votre besoin ! À noter que vous pouvez aussi faire un tour sur les tutoriels Youtube (même si les vidéos c’est très mauvais énergétiquement) où on a parfois de très bonnes explications.
1. Groupe 1 - Gateway, load balancer and NGINX
Quelques liens qui me semblent pertinents pour apprendre sur les API gateway et le load balancing :
-
bases sur les API gateway : https://docs.microsoft.com/en-us/azure/architecture/microservices/design/gateway
-
API gateway : https://www.nginx.com/learn/api-gateway/
-
reverse proxy : https://en.wikipedia.org/wiki/Reverse_proxy
-
load balancing : https://en.wikipedia.org/wiki/Load_balancing_(computing)
Voici quelques liens pour en savoir plus sur NGINX :
-
tutoriel : https://www.javatpoint.com/nginx-tutorial
-
basic concepts : https://www.netguru.com/blog/nginx-tutorial-basics-concepts
-
reference guide on NGINX open-source : https://nginx.org/en/docs/
-
détails sur NGINX en load balancer : https://nginx.org/en/docs/http/load_balancing.html
-
si vous voulez configurer NGINX pour une application Flask : https://www.patricksoftwareblog.com/how-to-configure-nginx-for-a-flask-web-application/
-
si vous voulez configurer NGINX pour une application Flask : https://fedingo.com/how-to-use-nginx-with-flask/
2. Groupe 2 - Message queue, publish-subscribe and RabbitMQ
Quelques liens qui me semblent pertinents pour apprendre les bases sur le message queue et de publish-subscribe :
-
bases sur message queue : https://en.wikipedia.org/wiki/Message_queue
-
bases sur publish-subscribe pattern : https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
Voici quelques liens pour en savoir plus sur RabbitMQ :
-
RabbitMQ tutorials : https://www.rabbitmq.com/getstarted.html
-
RabbitMQ and Python : https://betterprogramming.pub/introduction-to-message-queue-with-rabbitmq-python-639e397cb668
3. Groupe 3 - NoSQL databases and REDIS
Ce sujet étant un peu plus facile que les autres, vous devriez arriver à une démonstration.
Quelques liens qui me semblent pertinents pour les avantages et inconvénients des bases de données NoSQL :
-
Concepts sur NoSQL : https://azure.microsoft.com/en-us/overview/nosql-database/
-
Concepts sur NoSQL : https://en.wikipedia.org/wiki/NoSQL
Voici quelques liens pour en savoir plus sur REDIS :
-
REDIS and Python : https://realpython.com/python-redis/
-
REDIS and Python : https://www.bogotobogo.com/python/python_redis_with_python.php
Pour aller plus loin, et faire le lien avec le sujet du groupe 4 vous pouvez regarder la thématique de Sharding et l’utilisation de Cassandra :
4. Groupe 4 - Distributed databases, CAP theorem and CockroachDB
Quelques liens qui me semblent pertinents pour les avantages et inconvénients des bases de données distribuées et sur le CAP theorem :
-
distributed databases and consistency : https://www.youtube.com/watch?v=m4q7VkgDWrM
-
distributed databases : https://www.tutorialspoint.com/distributed_dbms/distributed_dbms_databases.htm
-
CAP theorem : https://en.wikipedia.org/wiki/CAP_theorem
Voici quelques liens pour en savoir plus sur CockroachDB :
-
GitHub : https://github.com/cockroachdb
-
Documentation : https://www.cockroachlabs.com/docs
-
Tutoriel : https://www.cockroachlabs.com/docs/v21.1/example-apps.html