Orchestration En conception

Maestro est le service en ligne qui répartira le travail entre les goOn de vos différentes machines, et alimentera l’affichage des projets dans le Hub.

Présentation

Maestro est en cours de conception : cette page décrit son fonctionnement prévu.

Chaque machine fait tourner son propre goOn, avec sa propre base. Maestro les relie : il sait quelles machines sont disponibles et confie les tâches à celle qui peut les prendre. Il ne remplace pas goOn et ne centralise pas ses données.

Principes

  • Local d’abord : la référence reste le goOn de la machine qui exécute le travail. Ce que Maestro stocke est jetable et reconstructible.
  • Connexions sortantes uniquement : ce sont les machines qui contactent Maestro. Aucun port à ouvrir, compatible avec un réseau domestique ou un portable qui change de réseau.
  • Répartition par baux : un goOn disponible réclame du travail, Maestro lui accorde un bail limité dans le temps, renouvelé tant que la machine répond. Un bail expiré remet la tâche en file.
  • Machine prêtée seulement si inactive : un poste principal peut accepter du travail uniquement lorsqu’il n’est pas utilisé. Cette décision est prise sur la machine, sans envoyer de données d’activité.
  • Mode dégradé : si Maestro est indisponible, chaque goOn continue sur ses propres tâches et transmettra ses résultats plus tard.

Ce que fera Maestro

FonctionDescription
AppairageChaque goOn est relié une fois à Maestro avec une identité propre
CatalogueMissions, clients et utilisateurs lus dans le Hub, servis aux machines
Instantanés de projetCopie d’affichage des projets pour la console du Hub (sans secret, chemin, journal ni coût)
MarquesRelais des paquets de marque publiés par Display
RépartitionFile de tâches, baux et retour des résultats vers le goOn d’origine

Retour des résultats

Le code revient par Git : la machine qui a exécuté la tâche pousse une branche sur le dépôt distant du projet. L’état revient par Maestro, qui transmet un résumé au goOn d’origine ; celui-ci met à jour sa propre base. Un projet partagé entre machines doit donc avoir un dépôt Git distant commun.

Feuille de route

  1. Paquets de marque (sans Maestro)
  2. Maestro : catalogue et affichage dans le Hub
  3. Répartition des tâches entre machines
  4. Durcissement : signatures, journal d’audit, supervision