Aseptic vs Docker Compose vs Kubernetes locale
Le tre cose compaiono nella stessa conversazione —«come montiamo l'ambiente locale?»— e risolvono problemi diversi. Questa pagina dice qual è quale, senza fingere che le altre due siano sbagliate: la maggior parte dei team finisce per usarne più di una, e Aseptic di fatto si appoggia su Docker per l'infrastruttura.
In una frase
- Docker Compose dichiara un insieme di container e li avvia insieme. È lo strumento standard per l'infrastruttura e per sistemi che girano interamente in container.
- Kubernetes locale (Kind, minikube, k3d) mette un cluster Kubernetes sulla tua macchina. La sua ragion d'essere è somigliare alla produzione: provare manifest, Helm chart, operatori e policy.
- Aseptic è un orchestratore desktop per il ciclo della giornata: avvia i servizi di un flusso e, soprattutto, decide dove chiama ciascuno —a un altro servizio locale, al cloud o a un mock— riscrivendo gli URL senza toccare i repository.
La tabella
| Criterio | Docker Compose | Kubernetes locale (Kind) | Aseptic |
|---|---|---|---|
| A cosa serve | Avviare container dichiarati insieme | Riprodurre Kubernetes in locale | Il ciclo quotidiano con più servizi che si chiamano fra loro |
| Come si descrive il sistema | Un docker-compose.yml che scrivi tu |
Manifest o chart, più la configurazione del cluster | Rilevato dal repo (stack, porte, infra, dipendenze) e lo rivedi |
| Dove chiama ogni servizio | Configurazione di ogni repo, a mano | Discovery del cluster; uscire fuori si configura a parte | Per dipendenza: locale, cloud o mock. L'URL lo riscrive il motore all'avvio |
| Ciclo di modifica | Ricostruire l'immagine; compose watch sincronizza o ricostruisce |
Costruire, caricare nel cluster e distribuire (Tilt o Skaffold lo automatizzano) | Il servizio che tocchi gira nativo, con hot reload |
| Debug | Agganciare il debugger al container | Port forwarding verso il pod | Processo nativo: il debugger dell'IDE, senza intermediari |
| Infrastruttura comune | È il suo punto forte | Un altro container o operatore dentro il cluster | La gestisce in Docker, con rimappatura automatica quando la porta è occupata |
| Simulare un servizio altrui | Un altro container con un server di stub, configurato a mano | Uguale, più manifest | Integrato: la dipendenza si mette su mock e si definisce lo stub |
| Somiglianza alla produzione | Media | Alta, ed è la sua ragion d'essere | Bassa di proposito: ottimizza il ciclo, non la fedeltà |
| Condividere il setup | Il file, versionato | I manifest, versionati | Lo scenario si esporta in un file autonomo e importabile |
| Interfaccia | Riga di comando (più quella di Docker Desktop) | Riga di comando | Finestra e CLI, con la stessa logica dietro |
| Licenza | Open source | Open source | Proprietaria: gratis per uso personale, a pagamento in un'organizzazione |
| Requisiti | Un motore Docker | Docker e parecchia memoria | Windows, macOS o Linux, e un motore Docker per l'infrastruttura |
Resta con Docker Compose se…
-
Quello che ti serve è l'infrastruttura: database, code, cache. Per quello non
c'è niente di meglio, e Aseptic non la sostituisce — di fatto
legge il tuo
docker-compose.ymlper sapere cosa hai dichiarato, e non lo scrive mai. - Il tuo sistema sono due o tre servizi stabili che non tocchi ogni giorno. Avviarli tutti in container e dimenticarsene è più semplice di qualsiasi altra cosa.
- Ti serve che funzioni allo stesso modo su qualsiasi macchina e in CI, con un solo strumento e senza installare altro.
Resta con Kubernetes locale se…
- Quello che stai sviluppando è Kubernetes: manifest, chart, operatori, network policy. Provarli fuori da un cluster non dimostra nulla.
- Devi riprodurre un comportamento che compare solo nel cluster —la service mesh, un ingress, i limiti di risorse—.
- Hai già Tilt o Skaffold in piedi e il ciclo di build non vi fa male.
Scegli Aseptic se…
- Il flusso che provi passa per più servizi, e ognuno ne chiama altri che non sempre vuoi avviare.
- Cambi spesso dove punta una dipendenza —oggi contro l'ambiente condiviso, domani contro il collega che ce l'ha su, dopodomani contro un mock perché non c'è la VPN— e sei stanco di modificare configurazione in repo che non sono tuoi.
- Vuoi toccare e vedere subito l'effetto: il servizio su cui stai lavorando in esecuzione nativa con hot reload, e gli altri sullo sfondo in container.
-
Ogni persona che entra nel team perde il primo giorno con un
LOCAL_SETUP.mdche nessuno mantiene.
Dove Aseptic resta corto
Un confronto che dice solo cose buone di chi lo scrive non serve a niente.
- Non somiglia alla produzione, e non lo pretende. Se il tuo problema è che qualcosa si rompe solo nel cluster, questo non lo riprodurrà.
- Non parla Kubernetes. Non legge manifest né chart, e non è in programma.
- Windows, macOS e Linux.
- È in beta, e si vede: cambia spesso.
- Non è open source, e usarlo al lavoro richiede una licenza a pagamento. Compose e Kind sono gratis per qualsiasi uso; questo è un prodotto e va detto prima che ci inciampi.
-
Bisogna descrivere ogni servizio una volta. Quasi tutto viene rilevato in
automatico, ma la revisione iniziale è lavoro che con un
composegià scritto non avresti.
Quello che di solito finisce per succedere
I tre convivono senza conflitto: compose per l'infrastruttura comune —che Aseptic
legge e gestisce—, Kubernetes locale per ciò che è davvero di Kubernetes e per la CI, e Aseptic
per il tempo in cui stai cambiando codice e ti serve che l'intero flusso risponda senza montarlo
a mano ogni volta.
Confronti uno a uno
Docker Compose e un Kubernetes locale sono le due risposte che si incontrano per prime, ma non sono le uniche. Se hai uno strumento preciso in lista:
- Aseptic vs Tilt — un ciclo interno rapido contro un cluster, con interfaccia per build e log.
- Aseptic vs Skaffold — costruire, pubblicare e distribuire in un comando, con profili.
- Aseptic vs DevSpace — il tuo codice in esecuzione in un container di sviluppo dentro il cluster.
- Aseptic vs Garden — un grafo di dipendenze per costruire, distribuire e testare, condiviso con la CI.
- Aseptic vs Telepresence — un processo locale collegato a un cluster vero.
- Alternative a Docker Compose — l'intero campo in una pagina, la nostra inclusa.
- Aseptic vs Docker Compose e Aseptic vs Testcontainers, uno a uno.
E per stack: Spring Boot, Quarkus e Node.
Domande frequenti
Docker Compose, Kubernetes locale o un orchestratore?
Compose se il tuo sistema è piccolo e stabile; Kubernetes locale se quello che provi è lo strato di Kubernetes stesso; un orchestratore locale se ciò che pesa è il ciclo quotidiano di lavorare su più servizi insieme.
Posso usarne più di uno?
È la norma, e non è contraddittorio: convivono bene perché non risolvono lo stesso strato. L'errore costoso è usare il cluster anche per il ciclo di tutti i giorni.
Cosa non risolve nessuno da solo?
Decidere, per ogni dipendenza, se una chiamata va al servizio locale, all'ambiente condiviso o a un mock, e applicarlo senza modificare i repository.