O WebAssembly é viável fora do navegador?

Ecossistema F5 | 26 de novembro de 2024

Resumindo, sim.

O WebAssembly (Wasm) surgiu como uma tecnologia dominante que revolucionou o desenvolvimento web. Desde as primeiras demonstrações técnicas, como o popular jogo Doom rodando inteiramente no navegador, até grandes aplicativos legados, como o Photoshop, que oferecem uma experiência completa semelhante à de um aplicativo para desktop em uma página da web comum, o WebAssembly proporciona experiências totalmente novas em um programa conhecido que já está instalado em todos os computadores pessoais do mundo.

O Wasm foi projetado para ser compatível com praticamente qualquer linguagem de programação, independentemente do tipo de processador do computador do usuário, e conta com diversas propriedades de segurança vantajosas que o navegador utiliza para impedir o acesso não autorizado aos dados ou aos recursos do sistema do usuário. Essas propriedades também são extremamente úteis fora do navegador, especialmente quando se deseja executar código de forma isolada ou com altíssima portabilidade.

A história do POSIX no Unix

Por padrão, o WebAssembly não tem acesso a nenhum recurso do sistema em que está sendo executado. Tudo se resume à pura manipulação de zeros e uns, e é por isso que o Wasm tem sido usado principalmente em tarefas que exigem muito processamento, como decodificação de vídeos ou manipulação de imagens, em vez do desenvolvimento de aplicativos completos. É relativamente fácil permitir que seu sandbox do WebAssembly acesse funcionalidades externas, como informações sobre a hora atual ou dados armazenados em um arquivo, mas as APIs utilizadas costumam variar de um aplicativo para outro.

Os sistemas Unix passaram por algo semelhante ao que está acontecendo com o WebAssembly fora do navegador. Muitos aplicativos precisavam acessar recursos comuns do sistema, como redes e sistemas de arquivos, mas cada sistema operacional fazia isso de uma maneira um pouco diferente. Por esse motivo, o POSIX surgiu como um padrão de interface portátil para sistemas operacionais — todos os sistemas semelhantes ao Unix poderiam adotar essa interface para padronizar a comunicação dos programas com o sistema operacional. Isso também permitiu que programas desenvolvidos para funcionar em um sistema semelhante ao Unix fossem facilmente adaptados para funcionar em outro.

Conheça a WASI, a interface de sistema do WebAssembly

Para oferecer uma maneira padronizada de os programas WebAssembly se comunicarem com um sistema operacional, surgiu a WASI, a WebAssembly System Interface. A WASI foi amplamente inspirada em um projeto chamado CloudABI, que, por sua vez, foi inspirado no POSIX. Isso abriu um mundo de oportunidades para o WebAssembly se destacar fora do navegador — os usuários passaram a contar com todas as propriedades de segurança e isolamento do WebAssembly, combinadas com APIs cuidadosamente projetadas para acessar recursos comuns do sistema sem abrir mão por completo do isolamento. Naturalmente, uma tecnologia semelhante vem à mente: os contêineres. Nenhuma discussão sobre esse assunto estaria completa sem mencionar uma das publicações mais marcantes e compartilhadas sobre a WASI, escrita por Solomon Hykes, cofundador da Docker:

Tweet de Solomon Hykes

Essa é uma afirmação e tanto. O WebAssembly oferece uma maneira portátil de empacotar código que pode ser executado com segurança em qualquer plataforma, a velocidades próximas às nativas, com a vantagem adicional em relação aos contêineres de não exigir a presença de nenhum sistema operacional. A maioria dos contêineres criados pelos desenvolvedores inclui algum tipo de sistema operacional Linux no qual os programas são executados, o que frequentemente resulta em contêineres com centenas de megabytes ou vários gigabytes. Os binários do WebAssembly são código puro e costumam ter apenas alguns quilobytes ou poucos megabytes. Parece loucura imaginar um mundo em que, em vez de implantar contêineres em todos os lugares, os desenvolvedores implantem WebAssembly, mas essa realidade já está se concretizando, com vários projetos em desenvolvimento ativo para executar Wasm no Kubernetes.

WebAssembly no lado do servidor em produção

Várias empresas já estão se beneficiando do Wasm no lado do servidor em produção. Tanto a Cloudflare quanto a Fastly têm enormes redes de computação de borda que permitem aos clientes implantar código no mundo todo, o mais próximo possível dos usuários. Ambas escolheram estrategicamente o WebAssembly para contar com binários pequenos e ultraportáteis, inicialização rápida e multitenancy robusta. A Cosmonic, uma empresa emergente, usa soluções de rede inteligentes para permitir que componentes WebAssembly se comuniquem perfeitamente entre si, independentemente de onde estejam sendo executados — seja em um dispositivo minúsculo na palma da sua mão ou em uma máquina do outro lado do mundo. Outra empresa emergente, a Fermyon, usa o WebAssembly para aumentar consideravelmente a densidade das cargas de trabalho dos servidores. O resultado é uma redução drástica nos custos com servidores e uma computação mais sustentável para o planeta.

Crescimento fora do navegador

Em resumo, embora o WebAssembly tenha sido desenvolvido inicialmente para computação no navegador, ele continua demonstrando grande viabilidade fora desse ambiente. Seu design, que oferece suporte a diversas linguagens de programação e prioriza a segurança, faz dele uma excelente opção para executar código de forma isolada e garantir portabilidade. A introdução do WASI permitiu que o WebAssembly no lado do servidor prosperasse, possibilitando que as organizações aproveitem o Wasm para oferecer produtos melhores com uma relação custo-benefício significativamente maior. O potencial do WebAssembly fora do navegador não é apenas uma ideia, mas uma realidade cada vez mais presente no setor.

Para saber mais, confira nosso post anterior no blog, “Por que você deveria se importar com o WebAssembly”.

Além disso, assista ou ouça ao nosso podcast “WebAssembly Unleashed”.

Compartilhar

Publicações relacionadas no blog

O estado da maturidade digital empresarial: a transformação digital ainda não terminou
Ecossistema F5 | 31/07/2024

O estado da maturidade digital empresarial: a transformação digital ainda não terminou

Explore como a IA impacta as empresas, as aplicações da IA generativa, as estratégias para modernizar as operações de TI e os benefícios da maturidade digital com a F5.

Como a IA generativa acelera a transformação digital
Ecossistema F5 | 26/03/2024

Como a IA generativa acelera a transformação digital

Veja como a IA generativa impulsiona a transformação digital nas empresas, acelerando tendências como a integração de APIs, os desafios dos modelos operacionais de TI híbrida e a adoção de AIOps.

Seis capacidades técnicas para acelerar a transformação digital
Ecossistema F5 | 05/01/2023

Seis capacidades técnicas para acelerar a transformação digital

As arquiteturas empresariais atuais carecem dos fatores necessários de agilidade, escalabilidade, segurança e observabilidade, essenciais para impulsionar a mudança tecnológica. No entanto, estas seis capacidades fundamentais ajudarão as empresas a gerenciar riscos e desafios ao longo de sua transformação digital.

Inverter a API é a transformação digital de que as empresas precisam para participar e competir em uma economia de APIs
Ecossistema F5 | 18/10/2022

Inverter a API é a transformação digital de que as empresas precisam para participar e competir em uma economia de APIs

As organizações detêm um valor latente — na forma de APIs internas — que precisam explorar para competir em uma economia de APIs. Embora os desafios técnicos e de segurança possam desestimular algumas delas, as empresas precisam reconhecer que inverter suas APIs permitirá liberar o valor da organização como plataforma.

A modernização da TI começa pela infraestrutura
Ecossistema F5 | 08/09/2022

A modernização da TI começa pela infraestrutura

O hardware e o software evoluíram rapidamente desde os primórdios da internet, mas, para aproveitar ao máximo os benefícios resultantes dessa evolução, as organizações precisam avaliar e modernizar sua infraestrutura e a entrega de aplicativos. Acelere os esforços de modernização com a nova F5 rSeries.