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.

Workflow Roboconf

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.

Architecture de Roboconf

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.

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.