Aseptic vs Docker Compose vs Kubernetes local
As três coisas aparecem na mesma conversa —«como montamos o ambiente local?»— e resolvem problemas diferentes. Esta página diz qual é qual, sem fingir que as outras duas estão mal: a maioria das equipas acaba a usar mais do que uma, e o Aseptic de facto apoia-se no Docker para a infraestrutura.
Numa frase
- O Docker Compose declara um conjunto de contentores e levanta-os juntos. É a ferramenta padrão para a infraestrutura e para sistemas que correm inteiros em contentor.
- O Kubernetes local (Kind, minikube, k3d) mete um cluster de Kubernetes na tua máquina. A sua razão de ser é parecer-se com produção: testar manifestos, Helm charts, operadores e políticas.
- O Aseptic é um orquestrador de ambiente de trabalho para o ciclo do dia: levanta os serviços de um fluxo e, sobretudo, decide para onde chama cada um —para outro serviço local, para a nuvem ou para um mock— reescrevendo os URLs sem tocar nos repositórios.
A tabela
| Critério | Docker Compose | Kubernetes local (Kind) | Aseptic |
|---|---|---|---|
| Para que foi pensado | Levantar contentores declarados juntos | Reproduzir Kubernetes em local | O ciclo diário com vários serviços que se chamam entre si |
| Como se descreve o sistema | Um docker-compose.yml que escreves tu |
Manifestos ou charts, mais a configuração do cluster | Autodetetado do repo (stack, portas, infra, dependências) e revês-lo |
| Para onde chama cada serviço | Configuração de cada repo, à mão | Descoberta do cluster; sair para fora configura-se à parte | Por dependência: local, nuvem ou mock. O URL é reescrito pelo motor ao arrancar |
| Ciclo de mudança | Reconstruir a imagem; compose watch sincroniza ou reconstrói |
Construir, carregar no cluster e fazer deploy (o Tilt ou o Skaffold automatizam-no) | O serviço em que mexes corre nativo, com hot reload |
| Depurar | Ligar o depurador ao contentor | Reencaminhamento de portas para o pod | Processo nativo: o depurador do IDE, sem intermediários |
| Infraestrutura comum | É o seu ponto forte | Outro contentor ou operador dentro do cluster | Gere-a em Docker, com auto-remapeamento quando a porta está ocupada |
| Simular um serviço alheio | Outro contentor com um servidor de stubs, configurado à mão | Igual, mais manifestos | Integrado: a dependência põe-se em mock e define-se o stub |
| Semelhança com produção | Média | Alta, e é o seu motivo de existir | Baixa de propósito: otimiza o ciclo, não a fidelidade |
| Partilhar a montagem | O ficheiro, versionado | Manifestos, versionados | O cenário exporta-se para um ficheiro autocontido e importável |
| Interface | Linha de comandos (mais a do Docker Desktop) | Linha de comandos | Janela e CLI, com a mesma lógica por trás |
| Licença | Código aberto | Código aberto | Proprietária: grátis para uso pessoal, paga para uso numa organização |
| Requisitos | Um motor Docker | Docker e bastante memória | Windows, macOS ou Linux, e um motor Docker para a infraestrutura |
Fica-te pelo Docker Compose se…
-
O que precisas é da infraestrutura: bases de dados, filas, caches. Para isso
não há nada melhor, e o Aseptic não a substitui — de facto
lê o teu
docker-compose.ymlpara saber o que tens declarado, e nunca o escreve. - O teu sistema são dois ou três serviços estáveis em que não mexes diariamente. Levantá-los todos em contentor e esquecer é mais simples do que qualquer outra coisa.
- Precisas que funcione igual em qualquer máquina e na CI, com uma só ferramenta e sem instalar mais nada.
Fica-te pelo Kubernetes local se…
- O que estás a desenvolver é Kubernetes: manifestos, charts, operadores, políticas de rede. Testá-los fora de um cluster não prova nada.
- Precisas de reproduzir um comportamento que só aparece no cluster —a service mesh, um ingress, os limites de recursos—.
- Já tens o Tilt ou o Skaffold montados e o ciclo de build não vos dói.
Escolhe o Aseptic se…
- O fluxo que testas passa por vários serviços, e cada um chama outros que nem sempre queres levantar.
- Mudas com frequência para onde aponta uma dependência —hoje contra o ambiente partilhado, amanhã contra o colega que o tem levantado, depois contra um mock porque não há VPN— e estás cansado de editar configuração em repos que não são teus.
- Queres mexer e ver o efeito já: o serviço em que estás a correr nativo com hot reload, e os outros em fundo em contentor.
-
Cada pessoa que entra na equipa perde o seu primeiro dia com um
LOCAL_SETUP.mdque ninguém mantém.
Onde o Aseptic fica curto
Um comparativo que só diz coisas boas de quem o escreve não serve de nada.
- Não se parece com produção, e não o pretende. Se o teu problema é que algo falha só no cluster, isto não o vai reproduzir.
- Não fala Kubernetes. Não lê manifestos nem charts, nem está nos planos.
- Windows, macOS e Linux.
- Está em beta, e nota-se: muda com frequência.
- Não é código aberto, e usá-lo no trabalho requer uma licença paga. O Compose e o Kind são grátis para qualquer uso; isto é um produto e há que dizê-lo antes de dares com isso.
-
É preciso descrever cada serviço uma vez. Autodeteta-se quase tudo, mas a
revisão inicial é trabalho que com um
composejá escrito não terias.
O que costuma acabar por acontecer
Os três convivem sem conflito: compose para a infraestrutura comum —que o Aseptic
lê e gere—, Kubernetes local para o que é mesmo de Kubernetes e para a CI, e o Aseptic para o
tempo em que estás a mudar código e precisas que o fluxo inteiro responda sem o montar à mão de
cada vez.
Comparações uma a uma
O Docker Compose e um Kubernetes local são as duas respostas que se encontram primeiro, mas não são as únicas. Se tens uma ferramenta concreta na lista:
- Aseptic vs Tilt — um ciclo interno rápido contra um cluster, com interface para builds e logs.
- Aseptic vs Skaffold — construir, publicar e fazer deploy num comando, com perfis.
- Aseptic vs DevSpace — o teu código a correr num contentor de desenvolvimento dentro do cluster.
- Aseptic vs Garden — um grafo de dependências para construir, fazer deploy e testar, partilhado com a CI.
- Aseptic vs Telepresence — um processo local ligado a um cluster a sério.
- Alternativas ao Docker Compose — o campo inteiro numa página, a nossa incluída.
- Aseptic vs Docker Compose e Aseptic vs Testcontainers, uma a uma.
E por stack: Spring Boot, Quarkus e Node.
Perguntas frequentes
Docker Compose, Kubernetes local ou um orquestrador?
Compose se o teu sistema é pequeno e estável; Kubernetes local se o que testas é a própria camada do Kubernetes; um orquestrador local se o que pesa é o ciclo diário de trabalhar sobre vários serviços ao mesmo tempo.
Posso usar mais do que um?
É o habitual, e não é contraditório: convivem bem porque não resolvem a mesma camada. O erro caro é usar o cluster também para o ciclo do dia a dia.
O que é que nenhum resolve sozinho?
Decidir, por cada dependência, se uma chamada vai para o serviço local, para o ambiente partilhado ou para um mock, e aplicá-lo sem editar os repositórios.