Aseptic vs Tilt
As duas ferramentas existem pelo mesmo motivo: o ciclo entre mudar uma linha e ver a mudança a funcionar é demasiado lento quando um sistema está repartido por muitos serviços. Tomam caminhos opostos para o resolver. O Tilt faz com que o Kubernetes seja suficientemente rápido para desenvolver contra ele. O Aseptic tira o Kubernetes do ciclo.
Numa frase
O Tilt vigia os teus repositórios, reconstrói imagens, volta a fazer deploy para um cluster e sincroniza os ficheiros que mudam dentro dos contentores em marcha, com uma interface de navegador que mostra o estado da build, os logs e a saúde de cada serviço.
O Aseptic arranca os teus serviços como processos da tua máquina —ou em contentor, se preferires—, resolve cada dependência para um serviço local, um ambiente partilhado na nuvem ou um mock, e reescreve os URLs entre eles ao levantar. Não há cluster nem imagem para reconstruir.
A tabela
| Tilt | Aseptic | |
|---|---|---|
| Precisa de um cluster de Kubernetes | Sim, é essa a ideia | Não |
| Precisa de imagens de contentor dos teus serviços | Sim | Não — corre-os nativos, ou em contentor se quiseres |
| Configuração | Um Tiltfile em Starlark, dentro do teu repo | Cenários fora dos repos; manifestos autodetetados |
| Toca nos teus repositórios | Sim, o Tiltfile vive com o código | Não |
| Apontar um serviço a um ambiente partilhado na nuvem | Pode-se, ligas tu | Por dependência: local, nuvem ou mock |
| Semelhança com produção | Alta — os mesmos manifestos, as mesmas primitivas | Baixa — processos na tua máquina |
| Interface | CLI e uma interface de navegador | App de ambiente de trabalho e um CLI com paridade completa |
| Licença | Código aberto | Grátis para uso pessoal, pago para uso comercial |
Fica-te pelo Tilt se…
- Fazes deploy em Kubernetes e queres que o ciclo local use os mesmos manifestos, para que o que testas tenha a forma do que se publica.
- Os teus serviços já têm Dockerfiles e um chart ou um conjunto de manifestos que alguém mantém atualizado.
- Estás disposto a correr um cluster na máquina —kind, minikube, Docker Desktop— ou contra um remoto, e a pagar a sua fatura de memória.
- Queres uma configuração que viva no repositório e se partilhe por git como qualquer outro ficheiro.
Fica-te pelo Aseptic se…
- O Kubernetes é como fazes deploy, não como queres desenvolver. O cluster acrescenta um passo de build e push a cada mudança, e não te faz falta para testar um fluxo.
- Queres levantar três dos doze serviços e apontar o resto ao ambiente partilhado da nuvem, decidindo por dependência em vez de por ambiente.
- Queres os teus serviços ligados ao depurador como processos locais normais, com o hot reload que o próprio framework já te dá.
- Não queres acrescentar nem manter ficheiros dentro de cada repositório para que o ambiente local funcione.
Onde o Aseptic fica curto
Se o que estás a testar é a parte do Kubernetes —um ingress, uma network policy, um sidecar, limites de recursos, um readiness probe sob carga—, o Aseptic não te serve. Não corre um cluster, por isso nada disso existe. O Tilt é a ferramenta certa aí, e um cluster local pelado também.
O Aseptic é além disso mais novo: está em beta pública, publica-se para Windows, macOS e Linux, e não é código aberto. O Tilt tem anos de uso atrás e podes ler-lhe cada linha.
O que costuma acabar por acontecer
Não são exclusivos, e as equipas que usam os dois fazem-no por uma costura limpa: o Aseptic para o ciclo do dia a dia —escrever código, executar o fluxo, olhar para os logs— e um cluster, movido pelo Tilt ou pela CI, para o que só um cluster pode demonstrar. O erro é usar o cluster para as duas coisas e pagar o ciclo de deploy em cada mudança.
Se estavas também a pesar o Docker Compose e um Kubernetes local, o comparativo amplo cobre esses três. Há também uma página do Skaffold, que fica perto do Tilt.
Perguntas frequentes
Preciso de Kubernetes para usar o Aseptic?
Não. O Aseptic corre os teus serviços como processos da tua máquina e levanta a infraestrutura comum em Docker; não há cluster, nem imagens para construir, nem manifestos para manter.
Posso usar o Tilt e o Aseptic ao mesmo tempo?
Sim, e é o que fazem as equipas que usam os dois: o Aseptic para o ciclo do dia a dia e um cluster movido pelo Tilt para o que só um cluster demonstra —um ingress, uma network policy, um limite de recursos—.
E se o que estou a testar É a parte do Kubernetes?
Então o Aseptic não te serve, e convém dizê-lo claro: não corre um cluster, por isso um sidecar ou um readiness probe sob carga não existem ali. O Tilt é a ferramenta certa para isso.
O Aseptic precisa de ficheiros dentro dos meus repositórios?
Não. O Tiltfile vive com o código; o catálogo do Aseptic vive na sua própria pasta .aseptic/ e a configuração é injetada ao arrancar, por isso os teus repositórios não se tocam.