Blog

Viewing posts for the category RabbitMQ

OpenStack haute-disponibilité #3 RabbitMQ

RabbitMQ LogoLes composants des APIs de OpenStack ont recours à un serveur AMQP pour traiter les demandes de manière asynchrone, un message est posté sur la file de message et les services qui exécutes réellement le travail prennent les tickets et exécutent la tâche (tient, ça ressemble à mon job).

Docker #1 : un simple Dockerfile

Docker permet d'industrialiser la mise en place de conteneurs applicatifs (basés sur lxc). Le but est la mise en place d'environnements de développement ou de SaaS (Software as a Service). L'un des avantages de Docker, est la construction des containers eux même. Ceux ci sont gérés sous forme de couche. Ansi, un hôte hébergeant 20 containers pour des WebApp Django, n'aura en mémoire qu'une seule image système d'exploitation et selon les versions de la WebApp disposera de plusieurs couches.

Distribuer des tâches avec Celery et RabbitMQ #1 (RainbowTable)

Python LogoRabbitMQ est un service de gestion de file d'attente pour tâche, particulièrement utilisé lorsque l'on souhaite distribuer un travail sur de multiples unités de travail. Attention, la communication inter-processus n'étant pas gérée cette façon de faire ne peut pas se substituer a MPI et consort! Dans le cas présent et a toute fin de test (gnarf, gnarf, gnarf), nous souhaitons réaliser une rainbow table. Une rainbow table est une base de données de mot de passe avec son équivalent chiffré (hash). Pour bien montrer l'avantage du procédé, j'ai choisit une fonction de hash hyper couteuse en temps CPU : bcrypt.

Rien ne sert de courrir avec RabbitMQ...

RabbitMQ est un logiciel client/serveur permettant de passer des messages de manière asynchrone entre des processus, qu'ils soient hébergé sur une même machine ou sur des machines différentes. Je m'en vais tester tout cela sur une Debian Wheezy, puis deux...