Qu'est-ce que Roboconf ?
Roboconf est à la fois une plate-forme et un framework pour gérer des applications élastiques dans le nuage.
Par élastiques, on entend les applications dont la topologie va évoluer au cours du temps (par exemple pour un passage à l’échelle).
Roboconf prend en charge les déploiements, la gestion des sondes, des procédures automatisées ainsi que des reconfigurations. Au-delà des applications, on peut voir Roboconf comme un « PaaS framework », c’est à dire une solution pour construire des PaaS (Platform as a Service). La plupart des PaaS, comme Cloud Foundry ou Openshift, ciblent des développeurs avec des patrons applicatifs et architecturaux prédéfinis. Roboconf vous autorise à créer vos propres patrons et ainsi supporter des cas exigeant plus de flexibilité.
Avec Roboconf, il n’y a pas de contrainte sur les langages de programmation, les frameworks, types d’application ou avec le système d’exploitation. Vous définissez ce qu’il y a dans votre plate-forme, ainsi que les interactions en son sein, les procédures d’administration, etc.
Roboconf gère le cycle de vie des applications. Cela passe par la reconfiguration à chaud (pour s’adapter aux phases d’élasticité) ainsi que la consistence globale (s’assurer que l’état de l’aplication répartie reste cohérent, même quand un de ses constituants vient à s’arrêter, que ce soit accidentel ou non). Ces propriétés reposent sur l’utilisation d’un serveur de messagerie (actuellement, Rabbit MQ). Les constituants de l’application répartie savent ce qu’ils exposent et ce dont ils dépendent vis-à-vis des autres parties. Globalement, l’idée est de retranscrire à un niveau applicatif, les concepts que l’on retrouve dans des modèles à composants comme OSGi, le tout de manière non-invasive. Cela permet notamment d’utiliser Roboconf sur des systèmes patrimoniaux.
Ainsi, un serveur d’application a connaissance des bases de données. Cette information est relayée via la messagerie. Roboconf se charge de prendre les décisions adéquates en fonction des messages qui transitent. Ces actions, effectuées par Roboconf, sont en réalité exécutées au travers d’extensions (ou de plug-ins). Il y a par exemple un plug-in Bash, ainsi qu’un plug-in Puppet.
Roboconf est elle-même une application répartie, basée sur AMQP et REST / JSon. Elle supporte plusieurs IaaS (dont OpenStack, Amazon Web Services, Microsoft Azure, VMWare, ainsi qu’un déploiement “local” pour des hôtes pré-existants, voire même pour de l’embarqué). Merci de vous reporter sur la FAQ (en anglais) pour de plus amples détails.
Historique
Roboconf a été créé pour être le socle d’Open PaaS.
Open PaaS est un réseau social d’entreprise, c’est à dire une plate-forme dédiée à la collaboration au sein
d’organisations (messagerie, gestion de groupes et de projets, vidéo conférence…). Le projet est mené par
Linagora, qui développe également Roboconf en partenariat avec le
Laboratoire Informatique de Grenoble, rattaché à l’Université Joseph Fourier.
Les impératifs techniques pour le socle d’Open PaaS étaient clairs.
- Supporter des déploiements dans le cloud (clouds publics, privés et hybrides)
- Garantir aux développeurs des parties hautes qu’ils pourraient choisir les solutions qu’ils souhaitent (bases de données, serveurs, langages de programmation…)
- Fournir des mécanismes d’élasticité (adaptation automatique à la charge…)
- Être totalement open-source (comme toutes les solutions utilisées et/ou développées par Linagora).
La plus-value de la plate-forme réside clairement dans les applications au-dessus, et non dans le socle.
A l’époque (fin 2012), certaines solutions cloud commençaient à émerger, mais aucune ne satisfaisait tous les critères décris ci-dessus.
Des contacts établis entre Linagora et le Laboratoire Informatique de Grenoble aboutirent à un partenariat industriel
avec l’Université Joseph Fourier et à la création d’une équipe commune pour protyper une telle solution. Ainsi est né Roboconf…
Cas d’Usage
Les cas d’usage généraux sont listés ici.
La liste suivante fait référence à des exemples, des démonstrations ou de vrais besoins.
-
LAMP Patrimonial : un cas classique, avec un équilibreur de charge basé sur un serveur Apache, une application web déployée sur Tomcat, et une base de données MySQL. L’intérêt de ce cas réside dans la facilité avec laquelle on peut rajouter ou enlever des instance de Tomcat. La connexion avec MySQL est configurée par Roboconf, tandis que l’équilibeur de charge prend en compte l’arrivée ou la suppression des Tomcat à chaud.
-
M2M / IoT : il s’agît ici de déployer et d’inter-connecter de l’embarqué et des éléments déployées dans un cloud.
Le cas d’usage nominal met en oeuvre des capteurs domestiques qui envoient, de par leur nombre, de gros volumes de données à des outils d’analyse déployés dans le nuage. On parle ici d’outils comme Hadoop ou Storm pour du calcul en temps réel. Que des capteurs apparaissent ou disparaissent, Roboconf prend en charge la reconfiguration de l’ensmeble. Pour rappel, M2M signifie machine to machine et IoT Internet of Things. -
Open PaaS : Open PaaS est un Réseau Social d’Entreprise (RSE) open-source et adapté à l’ère du cloud.
Présenté autrement, il s’agît d’une plateforme web pour faciliter et améliorer la collaboration au sein d’entreprises, et plus généralement, au sein d’organisations. Open PaaS s’appuie sur de nombreuses technologies, telles que NodeJS, NPM, Redis, MongoDB, LDAP, etc.