Le serveur XMPP MongooseIM est disponible en version 1.6

Posté par (page perso) . Édité par Lucas, M5oul, Benoît Sibaud et Nils Ratusznik. Modéré par Pierre Jarillon. Licence CC by-sa
23
27
nov.
2015
XMPP

MongooseIM, le serveur XMPP/Jabber massivement scalable en erlang (utilisé par WhatsApp), et entièrement open source et open standards, est disponible en version 1.6. La dernière version 1.5 avait été publiée en fin 2014, et la version de maintenance 1.5.1 début 2015, depuis nous nous sommes énormément concentrés sur les projets de nos clients. Cette toute nouvelle version 1.6 de MongooseIM marque le tournant d'une nouvelle dynamique d'équipe, et un engagement à plus de régularité et de prédictibilité.

MongooseIM

Au menu des changement majeurs :

  • prise en charge de Riak ;
  • plein de friandises pour DevOps ;
  • énormément de nettoyage et stabilisation.

Sommaire

Les nouveautés !

Riak

MongooseIM 1.6 prend en charge Riak, la base de données NoSQL distribuée codée en erlang aussi. Pour l'instant, ce ne sont que quatre modules :

  • authentification ;
  • Message Archive Management (MAM, XEP-0313), pour les conversations un-à-un ;
  • vCards (XEP-0054) ;
  • Private XML storage (XEP-0049).

Les autres modules arriveront plus tard.

Friandises pour DevOps

La version 1.6 propose une infrastructure de supervision et de métriques très puissante. MongooseIM repose sur Exometer pour l'instrumentation. Cette infrastructure permet de remonter des métriques tant au niveau du système d'exploitation que de la machine virtuelle Erlang, en plus des métriques métier. Ces métriques peuvent ensuite alimenter des grapheurs et des systèmes d'analyse tel que Grafana ou Kibana.

Cette fonctionnalité permet d'améliorer grandement la visibilité des DevOps pour gérer des systèmes de toute taille. D'autres domaines peuvent aussi tirer bénéfice de cette augmentation du nombre de données à analyser (big data, analyse, science des données), et ainsi avoir une meilleure compréhension des utilisateurs finaux, pour à terme pouvoir trouver des opportunités d'amélioration de l'expérience utilisateur, des compétences métier et de marchés à développer.

De plus, le nettoyage des données de session en base de données lors de l'extinction d'un nœud a été amélioré. Ces améliorations permettront de faciliter l'utilisation d'autres bases de données dans le futur et d'apporter une gestion plus facile de clusters pour les DevOps.

Il est aussi désormais possible de changer le niveau de journalisation dynamiquement avec un chemin de log personnalisé. Pour les DevOps, une fois de plus, cette fonctionnalité aide à renforcer les logs et à simplifier le déploiement, l'administration et l'analyse.

Image Docker

Vous pouvez déployer facilement votre propre image Docker de MongooseIM. Faites attention cependant, cette image est encore expérimentale et est amenée à s'améliorer au cours du temps. Pour la récupérer, rendez-vous sur sur le hub Docker. Essayez cette image, et faites des retours ou posez vos questions ou propositions d'amélioration. Sentez vous aussi libre de forker l'image depuis GitHub : https://github.com/ppikula/mongooseim-docker.

Le plein d'améliorations sympa

L'investissement technique massif produit lors du développement de cette version implique que nous pouvons continuer à livrer un meilleur MongooseIM à la communauté open source : ainsi des changements ont été apportés au cœur de l'application et les suites de test ont été intégrées, également dans l'espoir d'attirer plus de contributeurs de la communauté.

Quelques unes des améliorations apportées :

  • les XEP prises en charge sont documentées sur https://github.com/esl/MongooseIM ;
  • refactoring importants : mécanismes d'authentification mechanism, c2s (client-to-server), MAM simplifié (Message Archive Management) ;
  • prise en charge de Erlang/OTP 18 ;
  • meilleure conformité aux RFC & XEP.

Les notes de versions complètes de MongooseIM sont lisibles sur le dépôt de code source.

Et après ?

MongooseIM 1.6 continuera d’apporter son lot d’améliorations comme par exemple :

  • un bon nombre de métriques métier puissantes ;
  • de la flexibilité pour les DevOps ;
  • une base de code solide et stable pour les développeurs serveur et dorsal ;
  • plus de conformité aux standards pour les développeurs client ;
  • un gros jeu de tests pour tous et de l'automatisation.

Série 1.6.x de maintenance

Une version de maintenance 1.6.1 sera publiée (et potentiellement une 1.6.2 ensuite) qui inclura une meilleure prise en charge de Riak et, bien évidemment, les corrections de bugs habituelles, les optimisations et les améliorations générales.

1.7 et suivantes

Le cycle de développement de la version 1.7 a déjà commencé ! Un intérêt tout particulier sera porté sur le cloud, le mobile et les tests. Plus d'efforts seront investis dans le calendrier des versions afin qu'il soit plus prédictible (ce qui est en fait déjà en cours).

Quelques invitations

Liste de diffusion des annonces

Nous avons créé un liste de diffusion publique pour les annonces majeures. Pas plus de un ou deux courriels par mois, les archives sont ouvertes. Souscrivez ici : https://groups.google.com/d/forum/mongooseim-announce

Cliquez sur le bouton bleu "Join group" :

Rejoindre la liste de diffusion MongooseIM-announce

Puis cliquez sur "Email delivery preference" et "Notify me for every new message" :

Liste de diffusion MongooseIM-announce

Contribuez

Nous avons reçu de superbes contributions ces derniers mois, et nous voudrions remercier tous les développeurs ayant participé à MongooseIM 1.6 : @rgrinberg, @vooolll, @syhpoon, @mweibel, @Stelminator, @larshesel, @ruanpienaar, @aszlig, @jonathanve, @gmodarelli.

Influencez la feuille de route !

Nous vous encourageons à commenter, nous dire ce que vous pensez de cette version, et où nous devrions aller dans le futur. Vous pouvez aussi soumettre des "Issues" sur GitHub, ou forker et faire des pull requests. Nous serions heureux d'en parler et de les inclure dans la branche principale.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.