A nova internet segundo a Tailscale
(tailscale.com)- A Tailscale quer criar uma nova camada 3 do OSI para que desenvolvedores não fiquem presos a estruturas voltadas para escalabilidade desnecessária, permitindo que todos os dispositivos se conectem diretamente com segurança
- Muitos programas na prática não precisam de escala massiva, mas Kubernetes, deploy de contêineres e coleta de logs na nuvem viraram o padrão, tornando desenvolvimento e operação mais lentos
- Escassez de IPv4, NAT, firewalls, IPs dinâmicos e a estrutura de certificados TLS separam cliente e servidor, colocando provedores centrais de nuvem como a AWS no centro da conectividade
- A Tailscale quer dar a cada dispositivo certificados, endereço IP, nome DNS, criptografia de ponta a ponta e identidade, conectando-os com segurança mesmo atrás de firewalls e transformando todos os dispositivos em peers
- A transferência de arquivos do Taildrop baseada em HTTP PUT mostra que é possível reduzir camadas intermediárias de nuvem, mas para que esse ecossistema de apps surja, é preciso primeiro ter adoção suficiente
O ponto de partida da visão da Tailscale
- A Tailscale não falou publicamente com tanta frequência sobre uma visão maior além de recursos de curto prazo, mas algumas empresas estão comprando Tailscale não apenas pelo que ela faz hoje, e sim pela conectividade que ela pode viabilizar no futuro
- A preocupação inicial não era virar uma empresa de networking, mas sim o fato de que desenvolvedores tentam escalar até o que não precisa ser escalado, piorando a experiência de desenvolvimento
- A geração que se lembra da experiência de LAN dos anos 1990 faz parte do contexto da fundação da Tailscale, e essa experiência serve como referência para comparar a complexidade técnica atual
- Desempenho dos computadores, acessibilidade da programação, app stores, sistemas de pagamento e gráficos melhoraram, mas eles avaliam que muitas tarefas cotidianas do desenvolvedor que antes eram fáceis ficaram, na verdade, mais difíceis
A sobrecarga de desenvolvimento criada pela escalabilidade desnecessária
- O desenvolvedor moderno é treinado para considerar escala de 1 bilhão de usuários antes mesmo de escrever a primeira linha de código, e a escolha de algoritmos e arquitetura também tende a priorizar escalabilidade
- Se a notação big-O for aplicada de forma errada, pode parecer que tabelas hash são sempre mais rápidas que arrays, mas em algo na faixa de 10 itens um array pode ser mais rápido e mais simples
- Ao escolher uma estrutura escalável, é possível acabar com um sistema mais lento e mais difícil de construir nos casos em que ele nunca chega a escalar de fato
- O caso de processar 500.000 pageviews por mês com Kubernetes equivale a cerca de 0,2 requisição por segundo, e o texto compara isso com computadores lentos dos anos 1990, nos quais programas em Perl ou Python iniciavam em milissegundos e podiam atender mais requisições do que isso
- Builds longos, Docker builds, upload para registries de contêiner, deploys que levam de dezenas de segundos a minutos e logs que chegam tarde entram no mesmo pacote de sobrecarga criado pela premissa de que “tudo precisa escalar”
- A Tailscale se posiciona como uma ferramenta para facilitar a criação daquela long tail de tarefas que não precisam escalar, como dashboards e geradores de meme, nas quais todo desenvolvedor gasta boa parte do tempo
Como a internet atual aumenta a complexidade
- Grande parte da complexidade é vista não como complexidade essencial, mas como o resultado de aplicar soluções complexas a problemas que poderiam ser resolvidos de forma simples
- Um sistema de logs é, no fim, apenas streaming de texto de um lugar para outro, mas ainda assim o resultado pode aparecer 5 minutos depois
- Um sistema de orquestração é um programa que executa outros programas, algo que o kernel Unix já faz em milissegundos há décadas
- Networking é essencial para software moderno, mas a internet atual torna muitos problemas mais difíceis
- Em vez de esconder esses problemas adicionando mais uma camada no topo da pilha OSI existente, a Tailscale quer criar uma nova camada 3 do OSI com premissas diferentes
Centralização da nuvem e o pedágio da conectividade
- Observar quem consegue cobrar pedágio na indústria de tecnologia ajuda a revelar os gargalos, e a visão apresentada é que, na distribuição de software atual, a AWS ocupa esse lugar
- A nuvem oferece recursos computacionais escaláveis, mas o texto compara isso ao fato de que até um MacBook intermediário consegue processar 10 ou 100 vezes mais transações por segundo a partir de um SSD do que um disco local na nuvem
- O motivo de o próprio computador ser ruim como servidor é localização e conectividade
- Existem firewalls, NAT, IPs dinâmicos e links de rede assimétricos
- Dá para configurar port forwarding, IP estático e links de internet redundantes por conta própria, mas isso exige muito trabalho e conhecimento especializado
- No fim, acaba-se pagando um provedor de hospedagem com endereço IP e largura de banda, e uma empresa séria tende a escolher um grande provedor em que possa confiar para acesso ao equipamento
- A lógica de que “ninguém é demitido por comprar AWS” é conectada à antiga frase sobre a IBM
O gatekeeper que saiu do sistema operacional e foi para o HTTPS
- A IBM conseguia cobrar pedágio no modelo de computação centralizada, e a Microsoft abalou essa lógica com a computação distribuída baseada em PCs
- O mundo atual, centrado em nuvem e celulares, é visto como um retorno à centralização
- Os dispositivos na mesa e no bolso têm poder de supercomputador pelos padrões de 20 anos atrás, mas se a AWS cair eles viram tijolos inúteis
- Mesmo com múltiplas instâncias de servidor e sistemas distribuídos de consenso, a maior parte ainda roda sobre provedores centrais de nuvem
- Nos anos 1990, o sistema operacional definia compatibilidade e conexão entre programas, mas depois da web JavaScript e a capacidade de conexão via HTTPS se tornaram mais importantes
- O HTTPS, por natureza, tem uma estrutura centralizada de cliente e servidor
- O servidor tem IP estático, nome DNS, certificado TLS e portas abertas
- O cliente normalmente não tem esses elementos
- Se o servidor desaparece, o cliente não consegue fazer nada
- Por causa de problemas de segurança e da escassez de endereços IPv4, firewalls e NAT foram adicionados, e a conexão virou uma estrutura unidirecional do cliente para o servidor
A New Internet da Tailscale
- Nos últimos 5 anos, a Tailscale vem construindo produtos como solução para esse problema
- Cada dispositivo passa a ter certificado, endereço IP, nome DNS, criptografia de ponta a ponta e identidade, contornando firewalls com segurança
- Todos os dispositivos podem se tornar peers conectados entre si, em vez de manter papéis fixos de servidor e cliente
- A Tailscale avalia que faz isso sem adicionar latência nem overhead
- Usuários da Tailscale já experimentam um ambiente em que várias camadas de complexidade foram removidas, e a internet funciona mais próxima do que se esperava originalmente
A simplificação mostrada pelo Taildrop
- Taildrop é um pequeno exemplo da estrutura que a Tailscale torna possível
- Com a Tailscale já instalada, o núcleo do Taildrop é um único HTTP PUT
- Quem envia faz uma requisição HTTP para quem recebe
- Avisa “estou enviando um arquivo X”
- Transfere o arquivo
- Na internet tradicional, como o dispositivo receptor fica atrás de firewall e não tem porta aberta nem identidade acessível, era necessário fazer upload para a nuvem e depois baixar de volta
- O modelo que passa pela nuvem cria várias camadas adicionais
- Há custo de tráfego de rede, armazenamento e CPU de servidor
- É preciso decidir quando apagar arquivos que não foram baixados
- O servidor precisa permanecer online mesmo quando não está em uso
- Em teoria, funcionários da nuvem podem acessar o arquivo, então é preciso criptografar
- Para criptografar, é necessária uma troca de chaves entre remetente e destinatário
- Para avisar ao destinatário que há um arquivo esperando, pode ser necessário um sistema de push notifications específico por plataforma
- O Taildrop permite transferência gratuita de arquivos porque esse overhead de custo desaparece, e isso se conecta ao contexto do plano gratuito da Tailscale
Por que a adoção é necessária
- O Taildrop é um exemplo pequeno, mas funciona como prova de existência de uma categoria de programas que pode ficar 10 vezes mais fácil com a Tailscale
- Falta de conectividade gera centralização, a centralização cria pedágios até para programas pequenos e isso produz estruturas lentas, complexas e difíceis de depurar
- Para surgirem apps que funcionem apenas sobre a Tailscale, é preciso que gente suficiente esteja usando Tailscale
- Sem adoção suficiente, aparece o problema do ovo e da galinha: ninguém cria esses apps
- Por isso, a Tailscale investe muito em oferecer o produto gratuitamente e, ao mesmo tempo, em recursos corporativos que facilitem adoção no trabalho e implantação em toda a empresa, inclusive em companhias da Fortune 500
Objetivo e estágio atual
- A internet é para todos, e a visão apresentada é que no passado existiram várias internetworks, mas a Internet mais diversa e inclusiva venceu
- A New Internet também precisa poder ser usada por desenvolvedores em casa, desenvolvedores em universidades, funcionários de empresas e, no fim, por todo mundo
- Hoje, cerca de 1 em cada 30.000 pessoas no mundo usa a New Internet, ou seja, a Tailscale
- A Tailscale afirma que não vai parar até que todos possam usá-la
- Ao lembrar da época em que a Microsoft era ridicularizada por querer colocar um computador em cada mesa e do tempo em que TCP/IP era um recurso opcional comprado de terceiros, o texto reforça que o mundo da tecnologia pode mudar rapidamente mesmo dentro de 30 anos
1 comentários
Opiniões do Hacker News
O problema permanente de empresas como Tailscale, Cloudflare e Google é que, ao resolverem no lugar da internet problemas que a própria internet deveria ter resolvido originalmente — por exemplo, conexões simples, seguras e fim a fim — elas passam a ter um incentivo para que esses problemas continuem existindo
O que a internet precisa é algo como IPv6 com uma infraestrutura baseada em chaves públicas fornecida por DNSSEC e criptografia automática via IPsec, mas, se algo assim fosse implementado de forma amplamente compatível, o negócio da Tailscale desmoronaria
No fim, o negócio dessas empresas depende de o problema continuar existindo
Repostagem: https://news.ycombinator.com/item?id=38570370
O IPv6 saiu em 1998 e, durante os 21 anos até a Tailscale ser lançada em 2019, aquilo que você descreveu também não foi implementado
Quem impediu isso naquela época, e quem está impedindo agora? Google, Cloudflare e Tailscale receberam dinheiro ou algo equivalente a dinheiro, como dados pessoais, porque resolveram problemas reais
É difícil concordar com esse tipo de aceleracionismo reverso segundo o qual seria preciso tornar a internet pior para todo mundo para que uma solução realmente boa apareça
Não é por causa da Tailscale que essa solução não aparece, e sim pela enorme quantidade de trabalho necessária para construí-la; e, se não fosse o WireGuard, é bem possível que nem a Tailscale existisse
Com o surgimento da Tailscale, surgiu também o Headscale, que se tornou mais um degrau para construir esse “algo” de que você falou
Dito em poucas palavras, a ideia central é uma arquitetura em que a Tailscale fica no meio enquanto os dispositivos encontram uns aos outros
Existem outras formas de fazer isso. DNS dinâmico, que atribui um nome permanente a dispositivos que têm apenas IPs temporários, existe há décadas, embora sua reputação não seja das melhores
Também seria possível usar vários nós de coordenação que se conhecem entre si e uma lista pública de nós. Mesmo que a lista fique desatualizada, basta um único nó ativo para se conectar e atualizá-la; o Kademlia, que serve de base para a rede Ethereum e alguns sistemas de compartilhamento de arquivos, funciona assim
Também há compromissos que separam descoberta e transferência. O Peertube encontra, em servidores descobertos por busca web comum, arquivos para transmitir via HTTP; já a transferência em si é distribuída, com os espectadores atuais enviando blocos uns aos outros, então ele escala bem mesmo quando um vídeo viraliza
Portanto, isso é perfeitamente possível também de uma forma em que ninguém no meio consiga cortar o tubo de oxigênio
Protocolos VPN antigos ou métodos de autenticação como RADIUS têm falhas de segurança graves e, ainda assim, são difíceis de corrigir por causa da compatibilidade; e eles rodam em uma escala muito menor que a internet inteira
O fato de o setor estar resolvendo o problema de ossificação do TCP abandonando o TCP e reimplementando tudo sobre UDP diz muito
O serviço de localização também pode ser auto-hospedado se você quiser, então não é obrigatório usar o serviço deles
Tirando o DNSSEC, é bem parecido com o que foi pedido
Esse valor não desaparece só porque o IPsec passa a existir
O texto começa com uma reclamação muito longa contra o controle centralizado que extrai renda, e essa queixa em si é válida
Mas então se perde em questões separadas, como se a computação cliente-servidor faz sentido ou se ela é a causa da busca por renda, e acaba chegando à conclusão de que “amanhã haverá uma divisão entre quem tem Tailscale e quem não tem”
Dá uma sensação de “o rei morreu, vida longa ao novo rei”
Ela é pequena e simples o bastante para que até eu, que não sou programador, consiga consertá-la
Como nem todo mundo tem na internet um IP sem firewall diretamente acessível, pode-se usar cliente-servidor para viabilizar peer-to-peer
Talvez seja preciso colocar um “supernó” em um servidor de uma empresa de hospedagem, mas, se ele for usado apenas como servidor de rendezvous, o tráfego não passa por ele e o custo é baixo
Sempre fico muito desconfiado de empresas que tentam competir com o “gratuito”. É aquela coisa de “pare de usar software livre e nos pague, em troca colocamos 100 recursos desnecessários”
Como no caso do Slack, essa estratégia empresarial pode funcionar no curto prazo, mas esse tipo de assinatura não é do meu gosto
Para mim, o ponto central não é cliente-servidor contra peer-to-peer, e sim proprietário contra não proprietário
Se eles não virarem um gigante do nível da Microsoft em até 10 anos, acho difícil isso ser bem recebido
Na época, era uma ferramenta realmente excelente e fácil para projetar e configurar redes privadas pessoais. Compartilhamento de arquivos, LAN para jogos locais, colaboração em desenvolvimento e até streaming de mídia ficavam fáceis
O futuro do peer-to-peer parece menos com a Tailscale e mais com alguma variante auto-hospedada do Hamachi, capaz de agrupar de forma geral nós por trás de NATs e ASNs diferentes e entender técnicas de travessia de NAT, STUN/TURN e roteamento turtle
Uma ferramenta que permita a usuários remotos entrarem facilmente sem um gateway VPN central seria um recurso poderoso no ambiente atual
Seria bom se todos nós aprendêssemos e aplicássemos os Iceberg Articles: https://john.kozubik.com/pub/IcebergArticle/tip.html
Na prática, usamos Tailscale em sistemas de produção. Os servidores ficam fisicamente próximos ou em outros locais controlados, e centenas de usuários a centenas de quilômetros de distância trabalham todos via Tailscale
Duas coisas precisam ser ditas. O Tailscale é incrível e realmente muito bom. Esse sistema não poderia existir sem o Tailscale ou, para operar 24 horas por dia, a equipe precisaria de pelo menos mais 10 pessoas
Mas é preciso moderar as expectativas. Ele não é tão bom quanto a “internet”. A latência sobe periodicamente, a conexão cai de vez em quando, e o MagicDNS literalmente para como mágica ou entra em conflito com o sistema
Como há muitos usuários, já enfrentamos praticamente todos os problemas possíveis, e amanhã pode aparecer outro novo
Mesmo assim, acredito no Tailscale e na visão dele. É uma abordagem completamente nova, que dá controle do hardware, reduz custos e aumenta a segurança
Nosso primeiro grande servidor de produção foi um notebook Linux de 4 núcleos
Eu também uso bem o Tailscale para auto-hospedagem interna, mas nunca pensei em usá-lo para um serviço público de produção, então tenho curiosidade sobre a configuração
Gosto do Tailscale, mas este texto é assustador
A internet deu certo porque foi construída sobre padrões e era completamente livre
No Tailscale, o WireGuard é open source e existem coisas como o Headscale, mas a estrutura de “todo mundo tem um IP” não depende de o Tailscale possuir um enorme espaço de endereços IP?
Se precisamos esperar pela adoção completa de IPv6 ou depender de IPv4 centralizado, servidores e coisas proprietárias, isso parece um pouco hipócrita
Ele não tem paridade total de recursos com o Tailscale, mas já oferece suporte à maior parte das funcionalidades atuais e melhora todos os dias
Se não me falha a memória, um dos principais desenvolvedores trabalha nisso sendo remunerado pela Tailscale
Uso na minha infraestrutura pessoal auto-hospedada e funciona muito bem. Configurar uma URL de servidor de controle personalizada também foi relativamente fácil no Windows e no Android
Uso o taildrop, exponho contêineres Docker à tailnet etc.; o Headscale funciona bem o suficiente e vale a pena experimentar
O espaço IP necessário só precisa ser do tamanho do maior fosso, e você só pode se conectar a um fosso por vez
Gosto do Tailscale, mas este texto soa autocongratulatório demais
É um produto de VPN mesh com serviços adicionais por cima e, por si só, é ótimo, mas não é uma ideia nova nem única
Por que essa solução deveria ser uma nova internet, e não outra alternativa qualquer?
De qualquer forma, não quero depender de uma única empresa para toda a infraestrutura da internet. Por isso, mesmo sendo mais complexa, vou continuar usando a internet tradicional
Os grandes problemas são mais sociais do que técnicos, e uma nova tecnologia não vai resolvê-los
Tomando redes sociais como exemplo, dá para imaginar um mundo em que Facebook/Twitter/TikTok/YouTube/Reddit/HN funcionem de forma tão fluida quanto o BitTorrent
O app no meu computador participa da rede “Facebook”, meus amigos veem que estou online por meio de suas próprias instâncias do app, e meu feed e mural são servidos diretamente do meu dispositivo
É uma estrutura em que 2 pessoas, 1.000 pessoas ou milhões de pessoas se comunicam diretamente, sem servidor central
BitTorrent, Soulseek, Bitcoin e várias outras redes peer-to-peer já mostraram essa possibilidade
Mas, para tornar isso tão fluido quanto acessar facebook.com, surgem problemas técnicos por todos os lados. O primeiro grande obstáculo é uma conexão peer-to-peer fluida que não exija encaminhamento de portas, DNS dinâmico nem conhecimentos avançados de rede, segurança e administração de sistemas
O que fazer quando um nó está offline, como ficam latência e carga ao precisar se conectar a milhares, dezenas de milhares ou milhões de máquinas para buscar um feed, como lidar com cache, como enviar atualizações e notificações, como nós muito antigos se comunicam entre si, onde os dados são armazenados, como lidar com descoberta e segurança: tudo isso são problemas técnicos
A maioria pode ser resolvida, mas chegar a uma experiência tão absurdamente simples quanto a de um serviço centralizado exige um esforço enorme para resolver problema por problema
O Fediverse também vem resolvendo uma pequena parte disso há mais de 10 anos, mas ainda exige um administrador de sistemas bastante competente para oferecer uma experiência parecida com, ou um pouco pior que, twitter.com
O Yggdrasil não era quem tentava virar a nova internet? https://yggdrasil-network.github.io
Se não, por que justamente o Tailscale, e não Netbird, Nebula, Netmaker ou algum outro concorrente?
O texto é muito bem escrito, mas dá uma sensação estranha de que algo como aquisição, transição, spin-off ou encerramento está se aproximando. A frase “isto é só o começo” também soa como aquelas famosas últimas palavras
Para equilibrar, como usuário do Tailscale, estou satisfeito e fiquei impressionado com o fato de simplesmente funcionar sem eu precisar me preocupar muito
Ainda assim, mesmo funcionando bem, é preciso levar em conta que ele ainda é um projeto de pesquisa
Eu realmente gosto do serviço da Tailscale e o uso com gratidão, mas este texto não me convenceu.
Também gosto de discursos inspiradores de CEOs para unir a equipe, e concordo que há uma quantidade absurda de atrito e complexidade para desenvolvedores em computação, mas a Tailscale também tem seus próprios atritos e não está indo na direção de resolver os problemas do quadro geral.
Algumas semanas atrás, convidei meu pai para a minha tailnet para tentar consertar um problema no computador dele via desktop remoto. Ele aceitou o convite e o dispositivo aparecia na interface web do domínio TS, mas não respondia a ping.
Agora meu pai odeia a Tailscale e, como eu tinha dito que ela era ótima, minha credibilidade também caiu. Aos olhos dele, foi uma perda de tempo e uma coisa que “não funciona direito”.
É bem contraintuitivo. O recurso de organizações não é para esse uso; em vez disso, cada pessoa deve criar sua própria tailnet e conectá-las entre si.
Referência: https://github.com/tailscale/tailscale/issues/10731
Para esse tipo de uso, ferramentas como TeamViewer e AnyDesk são mais adequadas.
Acho que o autor diagnosticou o problema de forma errada, e a solução proposta apenas esconde a centralização, em vez de removê-la.
A AWS é cara não por causa de IPv4 ou de data centers, mas principalmente por causa do software, dos serviços gerenciados e da capacidade de adicionar servidores rapidamente.
Se uma “empresa séria” não quiser pagar à AWS ou a uma empresa parecida, ela pode alugar um rack e fazer colocation dos próprios servidores; muitas empresas de fato fazem isso.
Não concordo que certificados tenham criado centralização. Certificados não dividem o mundo entre quem tem e quem não tem, nem são comparáveis a ter ou não um mainframe.
O fato de HTTPS ter se tornado praticamente obrigatório não fez com que as pessoas passassem a ter seus próprios domínios ou subdomínios; isso já tinha acontecido por conveniência.
Outro ponto de centralização é o DNS, mas a Tailscale não evita DNS de forma alguma. O MagicDNS também depende da raiz da ICANN, assim como o plano de controle da Tailscale.
Se tudo de que você precisa é um subdomínio gratuito, há muitos lugares que oferecem isso.
Se você está atrás de CGNAT, uma tailnet também não é exatamente menos centralizada, porque o tráfego precisa passar por servidores DERP.
Quando o volume de tráfego passar de Gbps para Tbps, tenho dúvidas se a Tailscale conseguirá continuar oferecendo isso de graça.
Concordo que uma solução semelhante à Tailscale ajuda no último caso restante de acessar computadores atrás de NAT, e acho que poderia chegar a dezenas de milhões de usuários.
Mas só isso não basta para reivindicar o título de nova internet.
O próprio texto aponta que essa suposição está errada.
Ideias desse tipo obviamente não são novas.
O IPv6 foi criado para dar conectividade fim a fim a todos, e originalmente o IPsec deveria ser um componente obrigatório do IPv6, dando uma identidade criptográfica a cada host da internet.
Usando IPv6 e WireGuard juntos, dá para obter privacidade, segurança e desempenho. A desvantagem é a complexidade de configuração.
A Tailscale está sobre os ombros de gigantes. IPv4, WireGuard, NAT punching de Samy Kamkar, OpenSSH e provavelmente muitos outros.
A vantagem é que ela combina tudo isso e oferece uma interface de administração em geral fácil.
Dito isso, o que foi dito sobre autoridades certificadoras também se aplica à Tailscale. Ambas usam software livre e de código aberto para, no fim, oferecer um serviço proprietário.
Ainda assim, como quase tudo está sobre software livre e de código aberto, existe o Headscale, e a Tailscale parece ver isso com bons olhos, não é um grande problema.
É uma desvantagem, mas não é a principal; na prática, quase não há lock-in de fornecedor. Do ponto de vista de negócios e suporte, isso talvez seja até uma vantagem.
A premissa do texto era realmente boa até o último parágrafo, onde precisei reler.
É verdade que a Tailscale torna a internet fácil de novo, mas ainda é preciso depender de um locador.
Na internet, isso não era necessário e ainda hoje não é necessariamente. Mesmo que muita coisa tenha se centralizado, ainda hoje basta um link para acessar qualquer servidor do mundo.
A resposta contrária é a auto-hospedagem do Headscale, mencionada também em outros lugares: https://github.com/juanfont/headscale
Com apenas algumas alterações de configuração, ele funciona com o cliente padrão da Tailscale, e eu mesmo o uso.