deploy as code · workflow durevoli DBOS
Il tuo processo di deploy, sotto controllo.#
Definisci cosa rilasciare. Controlla come arriva in produzione.
Manent è un motore di deploy open source che coordina workflow durevoli, verifica degli artefatti, rollout progressivi e governance dei rilasci su VM, Kubernetes e piattaforme cloud.
$ manent deploy -f release.yml
deploy enqueued: 7c0e… (manent logs -f 7c0e…)
$ manent logs -f 7c0e…
14:03:10 INFO [secrets] secrets verified
14:03:12 INFO [artifacts] sha256=2d27fbdf… verified
14:03:12 INFO [qa] QA passed
14:03:15 INFO [deploy] release 1.4.0 activated on 3 targets
14:03:15 INFO [activation] live
✔ SUCCESS myapp/prod 1.4.0 kind=promotion
Il deploy si descrive in un file dichiarativo, il descrittore. Il client manent lo legge in YAML e lo invia all'API di manent-server, che lo accoda; un worker lo esegue come workflow durevole DBOS.
apiVersion: manent/v1
application: myapp
environment: test
artifact:
type: application
name: myapp
version: 1.2.3
source: https://artifacts.example.com/myapp/myapp-1.2.3.tar.gz
Cosa offre#
-
Workflow durevoli
Ogni step è registrato da DBOS: se un worker si interrompe, il deploy riprende dall'ultimo step completato e non esegue due volte ciò che è già stato fatto.
-
Pipeline configurabile
Segreti, artefatti, QA, deploy, test post deploy e attivazione. Gli step obbligatori non si possono saltare; quelli opzionali si attivano dal descrittore.
-
Plugin di deploy
Il deploy vero e proprio è delegato a plugin: remote-copy per file via SSH, container per Docker e Podman su VM, kubernetes per i cluster, ecs, lambda, cloudrun, appservice e containerapps per i servizi cloud gestiti di AWS, Google Cloud e Azure, jboss per JBoss EAP e WildFly, windows per IIS, servizi Windows, attività pianificate e pacchetti MSI. Se ne scrivono di nuovi, anche come binari separati via gRPC.
-
Interfaccia web
Deploy, ondate e log in tempo reale, approvazioni, inventario con promozioni e rollback, freeze e metriche DORA, con i permessi dell'API. Incorporata nel server, accessibile, in inglese e italiano.
-
Configurazione per ambiente
Target, plugin e parametri di ogni ambiente possono stare in Consul. Il descrittore indica solo cosa rilasciare.
-
Pianificazione
Deploy a un orario preciso o ricorrenti (cron), sulla stessa coda e con gli stessi limiti di concorrenza dei deploy immediati.
-
Dry-run e callback
Simula un deploy verificando segreti, artefatto e target senza modificarli. Notifica l'esito di ogni step a endpoint HTTP esterni.
-
Sicurezza e audit
Utenti OIDC e token per la CI, permessi per applicazione e ambiente, audit con catena di hash, segreti da Vault e limiti su ciò che un descrittore può chiedere.
-
Rollback automatico
Se un deploy fallisce, riporta l'ambiente alla release precedente. Le policy stabiliscono per quali tipi di artefatto è possibile.
-
Governance dei rilasci
Inventario di cosa è in esercizio, promozione obbligatoria tra ambienti, approvazioni, finestre di freeze e rollback manuale.
-
Chat e change management
Notifiche di deploy e approvazioni in Slack e Teams, approvazioni con i pulsanti di Slack, ticket di change in ServiceNow o Jira aperti e chiusi con ogni deploy.
-
Rilasci a ondate
Canary, poi una region e un'AZ alla volta, con tempo di osservazione e health gate su sonde, Prometheus e Alertmanager. Ogni region eseguita dai suoi worker.
-
Pronto per l'esercizio
Metriche Prometheus, tracing OpenTelemetry, log di ogni deploy e metriche DORA. Recovery dei worker persi, drain, retention, immagini container, chart Helm e rilasci firmati.
Il percorso di un rilascio#
flowchart LR
CI["La CI costruisce e testa<br/>l'artefatto"] --> D["Descrittore<br/>cosa rilasciare"]
D --> G{"Governance<br/>promozione · approvazioni · freeze"}
G --> W["Workflow durevole<br/>segreti → artefatto → QA → deploy → test"]
W --> S["Strategia<br/>tutti insieme · ondate · percentuale"]
S --> T["Target<br/>VM · Kubernetes · cloud · Windows"]
W -.->|"errore"| R["Rollback automatico"]
Ogni fase viene registrata: il ciclo di vita di un deploy spiega ogni stato, e le tipologie di deploy tutti i modi in cui un rilascio può partire e raggiungere i target.
L'interfaccia web#
Il server serve anche un'interfaccia web, con gli stessi permessi dell'API: segui deploy e ondate in tempo reale, approva, promuovi e torna indietro, guarda cosa gira dove. Gli screenshot vengono da un ambiente demo con cinque applicazioni, tre ambienti e quattro settimane di storico; la guida all'interfaccia web descrive ogni vista.
Da dove iniziare#
-
Sette passi pratici, dal primo deploy via SSH a Kubernetes, rilasci canary, pipeline di CI e produzione.
-
Cosa è e cosa non è manent, il modello, le tipologie di deploy, il ciclo di vita e i livelli di configurazione.
-
Configurazioni passo passo per Slack, Teams, ServiceNow, Jira, GitHub, GitLab, Terraform, Vault, Consul, OIDC, Prometheus e altro.
-
Descrittore, CLI, API HTTP,
manent-serveremanent.yml. -
Installazione, scalabilità, recovery, aggiornamenti, osservabilità e sicurezza per il team di piattaforma.
-
I plugin incorporati per ogni piattaforma, e come scriverne di propri, anche come binari separati.