Mes notes sur RabbitMQ

RabbitMQ est un bus de messages Open Source qui implémente le protocole Advanced Message Queuing (AMQP). Sa fonction est de faire communiquer entre eux des programmes différents, potentiellement écrits dans différents langages. Le serveur RabbitMQ est lui-même écrit dans le langage de programmation Erlang, ce qui est plutôt atypique. Aucune connaissance de Erlang n’est nécessaire pour l’utiliser. C’est un produit édité par Pivotal, un spin-off de VMWare et EMC, connu de tous les développeurs JAVA pour son fabuleux framework Spring.

Mon kif pour les microservices

Je m’intéresse aux microservices depuis un bout de temps. Comme pour beaucoup de sujets de fond, je suis à maturation lente : j’engrange les concepts, je lis les retours d’expérience, je pèse les avantages et les inconvénients. Quand on a commencé à parler d’architecture microservices, l’engouement était tel qu’on confrontait souvent l’architecture orientés services (SOA) et on présentait les microservices comme la réponse adéquate pour tout type d’application. Aujourd’hui, les esprits sont plus calmes, l’opinion commune décrit l’architecture à base de microservices comme une version plus granulaire que le SOA, qui suit les mêmes principes (séparation des responsabilités, interface de communication formalisée entre les composants) afin d’atteindre les mêmes objectifs : maintenabilite du code, indépendance entre le code et le déploiement (localisation, redondance).

Performances, Golang à la rescousse

Dans l’article précédent j’ai optimisé le système de gestion des commentaires Stacosys en : remplaçant le serveur HTTP de Flask par Sanic, un serveur HTTP Python tirant parti des capacités asynchrones de Python 3.5 et multi-processus (plusieurs workers) ajoutant un cache mémoire à la partie de l’API de Stacosys qui récupère le compteur de commentaires d’un article J’ai terminé sur une performance bien améliorée : plus de 11000 requêtes traitées en 1 minute un temps de requête moyen de 1,3 seconde une répartition du temps de traitement entre 81 ms et 18 secondes (assez élevé) 171 des requêtes (soit 1,5 %) avec un temps de traitement supérieur à 10 secondes L’architecture avec Sanic ressemble à ceci :

Performance Python Web

J’ai terminé l’article précédent en évoquant le système de gestion des commentaires Stacosys et sa mise en place sur le blog propulsé par Hugo. Il est installé sur le même serveur que le blog mais il pourrait tout à fait être déporté car le blog statique interagit avec lui par du code JavaScript qui envoit des requêtes RESTful afin de : récupérer le nombre de commentaires d’un article récupérer les commentaires d’un article soumettre un nouveau commentaire Avant de migrer vers Hugo, les commentaires étaient visibles seulement à l’intérieur des articles.

Sublime Text vs Atom

Je suis un utilisateur intermédiaire de VIM. Je connais les commandes de base et certaines plus avancées, j’utilise quelques plug-ins et je suis friand des articles du style “10 tips for VIM power users”. J’installe Vim sur tous mes systèmes et c’est mon éditeur favori en mode console, généralement pour des connexions distantes SSH sur des serveurs. Pour progresser plus, et level-up comme disent les jeunes, il faudrait pratiquer quotidiennement et l’utiliser comme IDE, ce qu’il peut être pour les langages du Web et beaucoup d’autres.

Un serveur SVN en 5 minutes

Bien qu’on soit en 2017, on peut avoir besoin d’un gestionnaire de source centralisé et Subversion reste une valeur sure. On va donc s’installer un serveur SVN sur Debian Jessie en 5 minutes chrono. D’abord on installe SVN et on crée un répertoire pour les données. $ apt-get install subversion $ mkdir -p /srv/svn/repos Et on initialise un dépôt (aka repository) nommé “yaxsoft”. $ svnadmin create /svn/repos/yaxsoft On ajoute des droits d’accès simples : un utilisateur en lecture-écriture, pas d’accès anonyme.

SRmail

J’ai développé un petit bout de logiciel nommé, sans grande inspiration, SRmail pour “Simple Rest Mail” avec les technos que j’apprécie : le langage Python et le framework Web Flask. Le but de SRmail est de fournir un service local de récupération et d’envoi de courriels à d’autres applications. En gros, c’est une brique logicielle à l’écoute sur l’interface localhost qui permet de lire et d’envoyer des messages à travers une API Restful.

Eclipse Juno sous GNU/Linux

La dernière version d’Eclipse, sortie en juin dernier, a pour nom de code Juno. Eclipse c’est un IDE pour le développement Java bâti sur une plateforme ouverte, extensible à au possible par le biais de plugins. Du coup, Eclipse est livré sous licence EPL (Eclipse Public License), une licence reconnue libre par la FSF mais moins contraignante que la GPL avec laquelle est est incompatible d’ailleurs, afin de permettre à des éditeurs de bâtir des logiciels propriétaires (ou privateurs selon les termes de Richard Stallman) en s’appuyant sur sa plateforme.