Aseptic vs Telepresence
O Telepresence e o Aseptic concordam no diagnóstico —não devias ter de levantar doze serviços para trabalhar num— e discordam sobre onde devem viver os outros onze. O Telepresence pede-os emprestados a um cluster. O Aseptic deixa-te decidi-lo um a um.
Numa frase
O Telepresence liga a tua máquina a um cluster de Kubernetes e interceta o tráfego de um serviço escolhido, encaminhando-o para a cópia que tens a correr em local. O resto do sistema fica no cluster, real, e o teu processo fala com ele como se estivesse implantado ali.
O Aseptic arranca os serviços de um cenário na tua máquina e resolve cada dependência para um serviço local, um ambiente partilhado na nuvem ou um mock, reescrevendo os URLs entre eles ao levantar. Não há cluster pelo meio.
A tabela
| Telepresence | Aseptic | |
|---|---|---|
| Precisa de um cluster de Kubernetes | Sim, e implantado e saudável | Não |
| Onde corre o resto do sistema | No cluster, real | Onde tu escolheres, por dependência |
| Quantos serviços levantas em local | Normalmente um, o intercetado | Os que o cenário disser |
| Realismo das dependências | Altíssimo — são as verdadeiras | O que lhes deres; os mocks também valem |
| Funciona sem ligação | Não | Sim, salvo se uma dependência apontar à nuvem |
| Risco para os ambientes partilhados | Real — estás dentro de um | Nenhum por omissão; só se apontares uma dependência para lá |
| Infraestrutura comum para o fluxo | A do cluster | Kafka, Redis e PostgreSQL levantados em Docker por ti |
| Licença | Núcleo aberto, níveis comerciais | Grátis para uso pessoal, pago para uso comercial |
Fica-te pelo Telepresence se…
- A falha só aparece contra o verdadeiro: os volumes de dados reais, o fornecedor de identidade real, a gateway real à frente.
- O teu sistema é demasiado grande para uma só máquina e vai continuar a sê-lo.
- Já manténs um cluster de desenvolvimento partilhado que reflete a realidade suficientemente bem para valer a pena pedi-lo emprestado.
- Estás a mudar um serviço e o resto não está em jogo.
Fica-te pelo Aseptic se…
- Queres mudar vários serviços ao mesmo tempo e ver o fluxo de ponta a ponta, que é o que intercetar um só não te dá.
- Queres trabalhar num avião, num comboio ou no dia em que o cluster partilhado está em baixo.
- Preferias não ter o teu código a meio escrever dentro de um ambiente que os teus colegas estão a usar.
- Queres poder escolher: esta dependência em local, aquela contra a nuvem, esta terceira com mock — e mudá-lo num clique.
Onde o Aseptic fica curto
O realismo. As dependências do Telepresence são os serviços implantados a sério, com a sua configuração a sério; as do Aseptic são aquilo a que as apontaste. Se a falha que persegues vive nessa diferença —algo da rede do cluster, um cabeçalho que a gateway acrescenta, um payload que ninguém documentou—, a cópia local não a vai reproduzir, e procurá-la aí custa-te uma tarde.
O Aseptic está além disso em beta pública, publica-se para Windows, macOS e Linux, e não é código aberto.
O que costuma acabar por acontecer
Estas duas convivem melhor do que a maioria: o Aseptic para construir a funcionalidade e o Telepresence para a última milha contra o ambiente real, quando algo não bate certo. E convém dizê-lo claro, já que o Aseptic também pode apontar uma dependência ao vosso ambiente partilhado: isso é um URL, não uma interceção. É mais simples e também é menos fiel.
Se o que estás a comparar é o cluster, vê o Tilt, o DevSpace e o comparativo amplo.
Perguntas frequentes
O que faz exatamente o Telepresence?
Liga um processo que corre na tua máquina a um cluster real, de forma que o teu serviço local ocupa o lugar do que está implantado e fala com o resto do cluster.
Então porque não me basta o Telepresence?
Porque precisa do cluster. Se ele está em baixo, se não tens ligação a essa rede ou se queres levantar três serviços ao mesmo tempo sem tocar no ambiente partilhado, esse modelo não ajuda. O Aseptic corre o fluxo inteiro na tua máquina e aponta cada dependência onde tu escolheres.
Posso misturar serviços locais e remotos com o Aseptic?
Sim, e é a sua razão de ser: por cada dependência decides se vai para o serviço local, para o teu ambiente na nuvem ou para um mock.