WASM vai substituir os contêineres
(creston.blog)"WebAssembly é o verdadeiro Write-Once-Run-Anywhere"
"Em 2030, ninguém mais vai se lembrar do Kubernetes"
Portabilidade
- Os contêineres resolveram muitos problemas do desenvolvimento de software e eram mais fáceis de usar do que VMs
- Mas hoje os contêineres se tornaram trabalhosos de lidar por causa de ferramentas complexas e do forte acoplamento entre programa-contêiner-Linux
- Os desenvolvedores querem se concentrar em escrever código e fazer deploy de funcionalidades, e aprender Docker acaba sendo uma distração
- WebAssembly (WASM) já está substituindo contêineres em algumas áreas e oferece uma experiência de "escreva uma vez, execute em qualquer lugar"
- Várias linguagens podem ser compiladas para WASM, e a falta de interfaces de sistema ainda impede uma adoção mais ampla, mas isso deve ser resolvido em breve
- A principal limitação atual do WASM é a falta de interfaces de sistema, como acesso a arquivos e rede, mas isso é algo que deve ser resolvido com o tempo
Comparação com a JVM
- O WASM oferece um conceito de "escreva uma vez, execute em qualquer lugar" semelhante ao da JVM, mas a JVM não roda em navegadores web
- Os navegadores web são um alvo importante para a distribuição de aplicações, e isso faz com que muitos desenvolvedores evitem a JVM
- Recentemente, compiladores de binários estáticos como GraalVM, Kotlin Native e Scala Native vêm surgindo como alternativas à JVM
Microsserviços
- Em uma arquitetura de microsserviços, os serviços são conectados usando HTTP, RPC ou message brokers
- O custo e os problemas de confiabilidade da comunicação em rede são as principais desvantagens, mas a maioria das empresas entende que as vantagens são maiores
- Com o surgimento de plataformas serverless como AWS Lambda, os microsserviços passaram a poder ser implantados em unidades de funções individuais
- Cloudflare Workers roda dentro de sandboxes do V8, permitindo chamadas de função no mesmo runtime sem requisições de rede
- Isso oferece ao mesmo tempo as vantagens de desenvolvimento dos microsserviços e o desempenho em runtime de uma arquitetura monolítica
- Outras empresas, como a Wasmer, também estão desenvolvendo soluções baseadas em WASM
Adoção do WASM
- O WASM ainda é uma tecnologia inicial, mas está evoluindo rapidamente e seu suporte também está aumentando
- No momento ele ainda não funciona perfeitamente em todos os ambientes, mas já é possível experimentar o futuro por meio de plataformas como a Cloudflare
- Se você usa linguagens dinâmicas como Python, Ruby ou PHP, vale a pena esperar a evolução do WASM enquanto aprende também uma linguagem compilada como Go ou Rust
8 comentários
O K8s é uma ferramenta para orquestrar contêineres; será que, por causa do wasm, ele vai perder efetividade? No caso do Docker, até pode haver alguma canibalização, mas....
WASM parece uma nova impressora 3D. Dizem que "um novo mundo está chegando", mas na prática quase ninguém usa...
Há uma coletânea de casos de implementação aqui.
(Pessoalmente,) me parece que áreas como CAD ou processamento de imagens são as mais promissoras.
Isso me faz lembrar da equipe de desenvolvimento de soluções que, há algum tempo, estava quebrando a cabeça para implementar imagens médicas em alta resolução na web.
Vou acompanhar e tentar fazer.
Mesmo em 2030, o k8s provavelmente continuará firme.
No fim das contas, vamos ter que entender tanto de Docker quanto de WASM? haha Mas, como o Docker também ficou mais fácil de adotar à medida que a tecnologia amadureceu, acho que o WASM deve seguir por um caminho parecido, ficando mais acessível também.
No fim das contas, parece que isso acaba ficando apoiado no desempenho do runtime de wasm; será que o V8 não vai acabar se tornando uma camada equivalente à JVM?
Fico preocupado que estejamos caminhando para um futuro em que o comportamento do WASM varie conforme a versão do V8, e aí teremos que depurar isso.
Comentários no Hacker News