![MultiVersus retorna hoje.](https://optimuscloud.com.br/wp-content/uploads/2024/05/1716898924_MultiVersus-retorna-como-um-lutador-de-plataforma-free-to-play-na-Warner-150x150.jpg)
MultiVersus retorna como um lutador de plataforma free-to-play na Warner Bros. universo
28 de maio de 2024![Processamento de eventos com tecnologia de IA: a chave para vencer em tempo real](https://optimuscloud.com.br/wp-content/uploads/2024/05/1716922805_Processamento-de-eventos-com-tecnologia-de-IA-a-chave-para-150x150.jpg)
Processamento de eventos com tecnologia de IA: a chave para vencer em tempo real
28 de maio de 2024A edge computing permite que as organizações distribuam cargas de trabalho, aproximem-nas dos seus utilizadores e personalizem os resultados de forma mais delicada para uma experiência de utilizador personalizada. No entanto, a implantação de contêineres — e muito menos de máquinas virtuais (VMs), com toda a sobrecarga do sistema operacional — é inviável na borda devido às limitações de recursos.
WebAssembly (Wasm), um formato binário aberto para executáveis, promete uma alternativa leve e segura, mais adequada para ambientes restritos na borda. Neste artigo, explicarei por que nós da Gcore escolhemos Wasm como tempo de execução para nossa mais recente solução de computação de ponta, FastEdge. Também compartilharei o que nos inspirou a construir o FastEdge.
FastEdge: Satisfazendo a demanda por Edge Computing
Rotear o tráfego de entrada e saída dos data centers consome tempo e dinheiro. Juntamente com a crescente demanda por experiências web cada vez mais personalizadas, precisávamos explorar uma nova abordagem para a computação em nuvem. Felizmente, já havíamos construído uma rede de nós de borda com nossa rede de entrega de conteúdo (CDN). Adicionar recursos de computação aos nossos nós CDN foi o próximo passo lógico.
Para construir o FastEdge, primeiro adicionamos um tempo de execução Wasm aos nossos nós CDN e construímos aplicativos de borda para tarefas comuns de aplicativos da web, como redimensionamento de imagens, uploads de arquivos ou conversão de conteúdo. Esses aplicativos estão intimamente relacionados às tarefas que nosso CDN executa. Eles oferecem aos nossos clientes os benefícios da computação de ponta sem a necessidade de codificação e nos permitem testar e aperfeiçoar nossa plataforma de ponta com casos de uso reais antes de abri-la para aplicativos personalizados.
Lançamos o FastEdge ao público no início deste ano, permitindo que nossos clientes construíssem seus próprios aplicativos de ponta com nossos kits de desenvolvimento de software (SDKs).
Por que Wasm?
Wasm é a tecnologia que alimenta o FastEdge. É um padrão aberto para executáveis e tempos de execução semelhantes ao Java. No entanto, como o aspecto de “montagem” de seu nome indica, Wasm é de nível mais baixo, pois é codificado em binário, não inclui coleta de lixo e permite um desempenho quase nativo. Wasm oferece três benefícios que o tornam particularmente adequado para nosso objetivo de fornecer computação de ponta segura e de alto desempenho com FastEdge: módulos inerentemente isolados, início rápido de módulo e facilidade de distribuição e implantação.
Módulos inerentemente isolados
Wasm permite que os navegadores executem aplicativos com demandas de alto desempenho, como jogos 3D. No entanto, executar software escrito em linguagens de programação de baixo nível – como Rust ou C/C++ – em todos os smartphones e PCs na web tem sérias implicações de segurança, já que essas linguagens geralmente têm acesso direto aos recursos do sistema.
É por isso que o Wasm possui módulos em sandbox, que precisam definir suas chamadas de função no tempo de carregamento para que não seja possível injetar novas chamadas dinamicamente. Além disso, cada módulo obtém sua própria memória heap que vem com proteção contra buffer overflow.
Acontece que módulos isolados não são bons apenas para software cliente. Os provedores de nuvem frequentemente executam aplicativos de terceiros em sua infraestrutura, portanto, os provedores também se beneficiam do isolamento que protege seus sistemas contra códigos maliciosos. Outras soluções baseadas diretamente em um tempo de execução JavaScript, como V8, exigem customização para atingir esse nível de isolamento.
Início rápido do módulo
Os módulos Wasm podem iniciar em menos de um milissegundo, tornando o Wasm um ótimo candidato para aplicar a abordagem moderna de computação sem servidor na borda. Novamente, a execução de aplicativos exigentes em um navegador tem requisitos semelhantes aos de executá-los em ambientes de nuvem. Os usuários não querem esperar vários segundos para que um site seja renderizado, e os aplicativos sem servidor também sofrem com longos tempos de inicialização a frio. Em comparação com soluções baseadas em contêiner ou VM, a inicialização a frio de um módulo Wasm é significativamente mais curta.
Fácil de distribuir e implantar
Wasm é carregado e executado por navegadores sem exigir a reinicialização do cliente ou de toda a máquina. Os criadores de aplicativos podem hospedar um arquivo Wasm em um servidor web e o navegador cuida do resto.
Como o Wasm já permite o carregamento de módulos de servidores remotos via HTTP, simplesmente reutilizamos esse modelo de implantação para FastEdge para simplificar a distribuição de módulos e aliviar os administradores de sistemas de borda.
Padrão aberto, tempo de execução aberto
Ao contrário de outros padrões de tempo de execução, como JVM e .NET, Wasm tem sido um padrão aberto criado e mantido por diversas organizações desde o seu início. Essa abordagem intrinsecamente aberta permite que qualquer indivíduo ou organização contribua com recursos e correções de bugs que melhorem a qualidade geral do projeto, tornando o Wasm uma escolha atraente para aplicativos em nuvem.
Como o Wasm é um padrão aberto, diversas organizações implementaram tempos de execução para ele. Para FastEdge, escolhemos Wasmtime como tempo de execução; seu criador, a Bytecode Alliance, é um esforço conjunto de várias organizações. Selecionar um tempo de execução para uma plataforma é um investimento comercial sério e de longo prazo, e esperamos que a abordagem colaborativa da Wasmtime produza software de qualidade. Várias organizações mantêm o projeto atualizado e mantêm padrões elevados — e isso fica protegido mesmo se um único contribuidor ou organização contribuinte sair, tornando o Wasmtime uma solução sólida de longo prazo.
Por fim, a abordagem de código aberto também traz o benefício de múltiplas linguagens de programação para o navegador e para a borda. É possível compilar Rust, C/C++, Go, Zig e outras linguagens para Wasm, portanto, no longo prazo, FastEdge tem potencial para suportar inúmeras linguagens. Atualmente oferecemos um SDK Rust e planejamos lançar um SDK JavaScript/TypeScript em breve.
Integrando Wasm em nossa rede de borda existente
Escolher o Wasmtime como nosso tempo de execução do Wasm nos permitiu entregar uma prova de conceito do FastEdge em apenas três meses, já que o Wasmtime já oferecia recursos como isolamento e comunicação de host. Ainda assim, o Wasmtime é apenas um tempo de execução, então precisávamos fazer algumas adições para fazê-lo funcionar com nossos nós CDN existentes.
Implementamos funções de host para solicitar dados como cabeçalhos e corpo para permitir que aplicativos FastEdge acessem dados fora do tempo de execução. Planejamos adicionar mais funções de host para bancos de dados SQL e NoSQL, armazenamentos de valores-chave como Redis, filas e serviços de streaming.
A opção por software de código aberto acelerou a criação de nossa pilha de observabilidade. Projetos como Prometheus, Grafana e OpenSearch potencializam os sistemas de monitoramento que fornecemos aos desenvolvedores para que eles possam inspecionar os logs na borda. Além disso, estamos criando uma ferramenta para permitir testes locais de aplicativos de ponta.
Por fim, garantimos uma forte integração do FastEdge com nosso CDN, para que os aplicativos de ponta se conectem a cada etapa do ciclo de vida do CDN. Dessa forma, você pode verificar a autorização para downloads, fornecer autenticação para uploads ou modificar o corpo e os cabeçalhos dependendo de atributos como tamanho da imagem ou localização geográfica.
FastEdge em ação
Oferecemos duas abordagens para construir e implementar aplicações com FastEdge:
- Uma abordagem tradicional com SDKs e ferramentas que permitem aos desenvolvedores criar aplicativos.
- Uma abordagem de modelo que permite que pessoas não técnicas implantem aplicativos comuns a partir de modelos.
Para a abordagem de modelo, criamos aplicativos que resolvem tarefas comuns de sites, como um conversor Markdown para HTML e um uploader S3.
Também experimentamos IA na borda e construímos um site demonstrando os recursos do FastEdge usando a classificação de imagens como caso de uso. A imagem a seguir mostra um classificador de imagens em execução no FastEdge. Nosso white paper explica mais sobre nossa visão de IA no limite.
![Classificação de imagens na borda](https://optimuscloud.com.br/wp-content/uploads/2024/05/Por-que-escolhemos-WebAssembly-Wasm-para-nosso-Edge-Runtime.png)
Classificação de imagens na borda.
Também implantamos um mecanismo de previsão de palavras de baixa latência no FastEdge.
![Previsão de palavras na borda](https://optimuscloud.com.br/wp-content/uploads/2024/05/1716916923_905_Por-que-escolhemos-WebAssembly-Wasm-para-nosso-Edge-Runtime.png)
Previsão de palavras na borda.
Voltando à abordagem tradicional, incentivamos os desenvolvedores a criar seus próprios aplicativos no FastEdge com nosso Rust SDK. O código a seguir define um proxy anônimo simples que extrai um parâmetro de URL na borda e busca um site.
Este exemplo ilustra como você pode usar nossas funções de host personalizadas para acessar dados de solicitação do cliente e enviar suas próprias solicitações para qualquer API na Web sem revelar as informações do cliente para essa API. Encontre o exemplo completo no GitHub.
Resumo
Embora não tenham sido originalmente criados para aplicativos de back-end, muitos recursos do Wasm são perfeitamente adequados para uso na borda. Eles permitem a entrega de aplicativos menores e mais rápidos do que soluções baseadas em contêineres e não estão vinculados a uma linguagem de programação. O uso do Wasm como tecnologia central para nossa plataforma de computação de ponta tornou possível entregar o FastEdge rapidamente com uma equipe pequena, ao mesmo tempo que nos permitiu permanecer flexíveis e adaptáveis em relação ao futuro do FastEdge.
Com forte integração de CDN e modelos de aplicativos, o FastEdge faz as coisas de maneira diferente de outras soluções de computação de ponta. Se você deseja personalizar seu conteúdo para uma base de clientes distribuída globalmente ou capacitar suas equipes não técnicas, experimente o FastEdge.
A postagem Por que escolhemos WebAssembly (Wasm) para nosso Edge Runtime apareceu pela primeira vez em The New Stack.