Nouveautés Principales
Cette page liste les nouvelles fonctionnalités et améliorations apportées à Roboconf 0.5.
Cibles de Déploiement via la Console Web
Il est désormais possible de définir des target.properties indépendamment de toute application.
Cela doit s’effectuer par la console web d’administration.
Les target.properties prédéfinis sont toujours fonctionnels, mais ne sont plus obligatoires.
Une fois définie, il est possible d’associer une cible de déploiement avec une application ou bien avec une instance précise au sein d’une application.
Combinée aux modèles d’applications, cette fonctionnalité permet de déployer une même application sur différents environnements.
Dépendances Externes
Les utilisateurs peuvent désormais définir des liens entre applications Roboconf.
Cela signifie que le graphe d’une application peut référencer des variables exportées par d’autres applications.
Cela n’est possible que si l’autre application a marqué certaines de ses variables internes comme visibles depuis l’extérieur.
# Un préfixe (unique) pour les variables externes
exports-prefix: Lamp
# Marquage et définition d'un alias pour une variable interne.
# Celle-ci pourra être importée par une autre application.
exports: Apache.ip as lb_ip
L’import d’une telle variable se note…
MyApp {
installer: script;
imports: Tomcat.portAJP, Tomcat.ip; # variables locales
imports: external Lamp.lb_ip; # variables externes
exports: ip;
}
Les liens inter-applications relient 2 applications ensemble.
Ce sont des relations de type « 1 à 1 ».
Une fois 2 applications attachées, un changement sur un composant dans l’une (composant dont les variables sont visibles à
l’extérieur) enverra une notification aux composants de l’autre application qui en dépendent. Cette fonctionnalité autorise
une plus grande modularité et fournit une approche plus réaliste dans un cadre « système d’information ».
Amélioration de l’Autonomique
Le gestionnaire d’autonomique a été retravaillé pour être un peu moins bête.
Au lieu d’exécuter une réaction chaque fois qu’un agent émet une alerte, celui-ci étudie le contexte pour décider
si une telle action fait sens. Ainsi, si une action similaire lancée précédemment est toujours en cours, l’alerte sera
ignorée. Il est aussi possible de définir un délai de sécurité entre l’exécution de 2 réactions identiques.
Enfin, nous avons introduit la notion de quota.
Pour l’instant, cela se limite à un quota global, qui empêche l’autonomique de créer des VM sans fin.
D’autres types de quotas seront ajoutés dans les prochaines versions (par application, par infrastructure, etc).
Système de Sondes Extensible
Le système de sondes des agents Roboconf est désormais extensible.
Ces sondes sont utilisées dans le cadre de l’autonomique pour récupérer des métriques sur les machines distantes.
En plus des sondes de type fichier, REST et Nagios, on peut donc maintenant brancher ses propres librairies
de surveillance.
C’est par exemple ce qui a été utilisé pour Petals ESB.
Une sonde basée sur la librairie JMX de Petals a été créée. Celle-ci s’intègre au sein d’un agent Roboconf en étant déposée
dans un répertoire adéquat.
Configuration Docker Simplifiée
La configuration pour l’utilisation de Docker avec Roboconf (en mode infrastructure) a été simplifiée.
Les fonctionnalités fournies sont les mêmes qu’en version 0.4, mais avec un nombre plus restreint de propriétés.
Par exemple, la configuration suivante permet de générer automatiquement une image docker, d’installer et de configurer un agent Roboconf, de lancer des conteneurs depuis cette image, puis d’y installer des composants logiciels (tels que spécifiés dans une application Roboconf).
# Information que l'on retrouve pour toute cible
handler = docker
name = Docker
description = Une installation Docker basée sur une image générée par Roboconf.
# Propriétés spécifiques à Docker
docker.generate.image = true
docker.image = roboconf-docker-img
Divers
D’autres améliorations, de moindre ampleur, ont aussi été apportées dans cette nouvelle mouture de Roboconf.
Un certain nombre de bugs ont également été corrigés. Veuillez vous référer aux entrées sur Github pour plus de détails.