Une Constellation est constituée des éléments suivants :

  • Un serveur Constellation
  • Des sentinelles Constellation
  • Des packages déployés sur ces sentinelles
  • Des contrôleurs et consommateurs qui peuvent se connecter au serveur

Les Sentinelles

Une sentinelle est un agent de déploiement pour Constellation. Concrètement il s’agit d’une application (ou service) installée sur un système Windows ou Linux et qui tourne en tache de fond.

Le rôle d’une sentinelle est d’exécuter les ordres provenant du serveur Constellation pour :

  • Déployer des packages, c’est à dire télécharger des packages (= des programmes) depuis le serveur et les démarrer localement
  • Contrôler les packages déployés sur la sentinelle (démarrer, arrêter ou redémarrer un package)
  • Remonter les informations au serveur Constellation sur chaque package (état, consommation des ressources CPU et RAM, etc..)

Une fois une sentinelle installée et enregistrée dans une Constellation, il est possible depuis l’API ou la Console de suivre son état.

Sentinelles Constellation

Les packages

Les packages sont des applications graphiques ou non graphiques (services) stockées dans le “Package Repository” du serveur Constellation et qui seront déployés sur des sentinelles de la Constellation.

image

Vous pouvez déployer autant de package que vous souhaitez sur chaque sentinelle. Une fois le package démarré, vous retrouverez son état et sa consommation de ressource dans la Console ou via l’API. Vous pourrez également l’arrêter, le redémarrer ou forcer la mise à jour du package.

Le package lui-même remonte ses logs dans Constellation et récupère ses paramètres de configuration (les Settings) depuis Constellation.

image

Ainsi si vous souhaitez changer une variable de configuration de l’un de vos packages, vous pouvez le faire directement depuis l’API ou la Console et propager cette mise à jour au package en question.

image

Chaque package peut produire des données publiées dans ce que l’on nomme des « StateObjects » qui seront accessibles par les autres packages et les consommateurs (comme une page Web) de sa Constellation. De même un package peut consommer les StateObjects produits par les autres packages de la Constellation.

Enfin chaque package peut échanger des messages avec les autres packages ou consommateurs connectés sur les hubs Constellation ce qui permet par exemple d’invoquer des méthodes sur d’autre système (ce que l’on nomme les MessageCallbacks).

A noter qu’il existe aussi une notion de « package virtuel » expliquée à la page suivante.

Les consommateurs

Le serveur Constellation expose une interface REST ainsi qu’un hub nommé « Consumer » à destination des « consommateurs ».

Une page Web par exemple est un consommateur, c’est à dire qu’elle se connecte à Constellation pour interroger des StateObjects ou envoyer/recevoir des messages mais elle n’est pas considérée comme un package dans le sens où une page Web n’est pas un programme déployé et démarré par une sentinelle (son cycle de vie est lié au navigateur du client). Un “consommateur” ne peut ni produire des logs ni avoir de settings ou encore publier des StateObjects. Il ne fait que consommer ni plus ni moins !

Les contrôleurs

Le serveur Constellation expose un hub nommé “Controller” permettant contrôler des éléments de la Constellation comme arrêter/démarrer des packages, s’abonner et récupérer en temps réel les logs des packages de la Constellation, propager les changements de configuration dans la Constellation, suivre l’ état et la consommation des ressources de chaque packages, etc…

Ce hub est notamment utilisé par la Console Constellation pour vous fournir une interface de pilotage de votre Constellation.

Pour se connecter sur ce hub, le credential utilisé pour l’authentification doit avoir la clé « EnableControlHub » activée.

L’architecture Constellation et les différents acteurs : sentinelle, package, contrôleur et consommateur
Editer la page sur GitHub
Étiqueté avec :                

Démarrez la discussion sur le forum Constellation