Suite des Bossie Awards 2014. Après les applications, les outils de développement d’applications et les outils de développement d’applications, je vais vous parler aujourd’hui des logiciels de data center et de cloud.
On commence avec Nginx, un logiciel de serveur Web asynchrone doté d’un reverse proxy (placé en frontal du serveur), adapté pour les très fort trafics, fonctionnant sous Linux, BSD, Mac OS X et Solaris, et également sous Windows dans sa version avancée 0.7.52.
On trouve ensuite OpenStack est un ensemble de logiciels permettant de déployer du cloud computing sous forme Iaas (Infrastructure as a service), dont l’architecture modulaire permet de contrôler les différentes ressources des machines virtuelles tels que la puissance de calcul, le stockage ou le réseau propre au datacenter.
Vient ensuite AppScale, une implémentation libre du Google App Engine (GAE) développée par l’université de Santa Barbara. Le GAE permettait jusque là de développer des applications web hébergées par Google ; AppScale permet en quelque sorte de s’affranchir de l’hébergement Google. Autre projet développé par l’université de Santa Barbara, mais récemment racheté par HP, Eucalyptus est un éditeur d’infrastructure open source centrée sur les problématiques de clouds privés et hybrides (orienté IaaS), qui peut-être considéré comme le challengeur d’OpenStack et CloudStack.
On trouve ensuite Ansible, une plateforme logicielle combinant la gestion de configuration des ordinateurs, le déploiement de logiciels multi-nœuds, et l’exécution des tâches ad-hoc. Les modules fonctionnent grâce à JSON et à la sortie standard et peuvent être écrits dans n’importe quel langage de programmation. Le système utilise YAML pour exprimer des descriptions réutilisables de systèmes. Dans le même registre, mais écrit en Python, Salt est un logiciel spécifiquement dédié à la gestion de configuration, dont la particularité est de rendre la gestion de configuration simple mais flexible.
On trouve ensuite Cloud Foundry, distribué par VMWare sous licence Apache 2, qui est un ensemble de modules développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc. Cloud Foundry supporte Ruby on Rails, Sinatra, Node.js, Spring et Grails pour les applications, et MySQL, MongoDB, Redis et RabbitMQ pour les services.
OpenShift est une autre Paas, développée par Red Hat, à partir des Amazon Web Services, en s’appuyant sur OpenShift Origin, une série de paquets logiciels Open Source. OpenShift permet ainsi de faire tourner des applications créées avec Java, Ruby, PHP, Python, Perl ou Node.js, et fonctionnant sur des bases de données comme MySQL et MongoDB.
Ceph est une autre plateforme libre dont la vocation est de fournir un stockage complètement distribué sans point unique de défaillance, extensible jusqu’à l’exabyte (1 exabyte = 1 000 000 terabytes = 1 0006 bytes), et particulièrement tolérant aux pannes grâce à son système de données répliquées.
Elasticsearch est un moteur de recherche distribué écrit en Java, basé sur la bibliothèque open source Lucene de la fondation Apache, qui utilise une base de données NoSQL.
Logstash est un outil de collecte (messages syslog, mails IMAP, tweets, commande IRC…), d’analyse (standardisation, découpage, structuration…) et d’exportation (email, sortie standard, fichier texte, alarme Nagios…) de logs, développé en Java sous licence Apache 2.0.
Nous trouvons ensuite CoreOS, une distribution Linux conçue pour les déploiements massifs de serveurs (et qui a trouvé sa place sur la plateforme cloud de Google), qui a besoin de moins de 200 Mo de mémoire vive pour fonctionner.
On trouve aussi Mesos, un gestionnaire de cluster qui simplifie la complexité de l’exécution des applications d’un pool de serveurs partagé.
Dans le domaine des SGBDR (systèmes de gestion de base de données relationnelles), on trouve MariaDB, distribué sous licence GPL, le fameux fork communautaire de MySQL, développé par la fondation MariaDB (donc plus libre que MySQL qui est la propriété d’Oracle), et son concurrent PostgreSQL. Les différences sont ténues entre les deux, je dirais que MariaDB est plus universel côté langage (il supporte Ada, C, C#, C++, D, Eiffel, Erlang, Haskell, Java, Objective-C, OCaml, Perl, PHP, Python, Ruby, Scheme, Tcl) là où PostgreSQL est plus universel côté OS (il supporte HP-UX, Linux, OS X, Solaris, Unix, Windows). La présence de ces deux alternatives de MySQL n’a rien de surprenant, quand on sait que de plus en plus de projets d’envergure abandonnent aujourd’hui MySQL (parfois aussi pour le noSQL).
On trouve ensuite Mule ESB, une plateforme développée par MuleSoft pour faciliter les échanges multiples entre différentes applications utilisant des protocoles de communication hétérogène (avec à la clé plus de 50 protocoles et technologies supportées, comme JMS, JDBC, TCP, UDP, Multicast, HTTP, servlet, SMTP, POP3, XMPP…).
Autour de Docker, Infoworld cite Panamax, sous licence Apache 2, un projet permettant de déployer très facilement des apps conteneurisées, grâce à de simples drag-and-drop, fournissant ainsi une interface particulièrement intuitive pour les utilisateurs de Docker. Kubernetes est un autre gestionnaire de conteneurs, développé par Google, s’appuyant également sur Docker. Enfin Inforworld cite Docker lui-même, un projet déjà présent dans les outils de développement d’applications.
Pour en savoir plus sur les logiciels de data center et de cloud des Bossie Awards 2014 : Bossie Awards 2014: The best open source data center and cloud software