Architecture Agent
Berth Agent — Architecture technique
Section titled “Berth Agent — Architecture technique”Agent Go léger, mono-tenant et self-hosted, installé sur chaque serveur client pour découvrir, superviser et piloter les conteneurs Docker locaux.
Sommaire détaillé
Section titled “Sommaire détaillé”L’architecture de l’Agent est découpée en plusieurs sections pour une meilleure compréhension :
- Stack Technique & Structure : Choix technologiques, dépendances et arborescence du projet Go.
- Discovery & Monitoring : Architecture des flux, cycle de vie et supervision des conteneurs via Docker Engine API.
- Métriques, Actions & Logs : Collecte de données, exécution de commandes à distance et streaming gRPC des logs.
- Sécurité & Configuration : Authentification mTLS, processus d’enrôlement et schéma de configuration YAML.
- Résilience, Tests & Déploiement : Gestion des pannes, stratégie de tests (unitaires, mocks, intégration) et installation via systemd.
Schéma récapitulatif
Section titled “Schéma récapitulatif”L’Agent Berth est volontairement petit : un wrapper Docker, quelques workers concurrents (discovery, métriques, heartbeat), des handlers gRPC et une couche de sécurité/résilience.
┌──────────────────────────── API Berth ────────────────────────────┐│ Auth/API REST · CQRS · PostgreSQL · Redis cache · audit Streams │└──────────────────────────────┬────────────────────────────────────┘ │ gRPC + mTLS (sortant Agent)┌──────────────────────────────▼────────────────────────────────────┐│ Agent Go ││ discovery/events · metrics · actions · log streams · heartbeat ││ retry/backoff · spool borné · certificats │└──────────────────────────────┬────────────────────────────────────┘ │ Docker SDK / docker.sock ┌─────────────▼─────────────┐ │ Docker daemon + containers │ └───────────────────────────┘La simplicité opérationnelle, la réconciliation périodique, l’idempotence des commandes et l’identité mTLS par Agent constituent les garanties principales de robustesse dans un environnement client self-hosted.
