![Desbloqueie todo o potencial do MongoDB: garantindo o sucesso pós-atualização](https://optimuscloud.com.br/wp-content/uploads/2024/02/Desbloqueie-todo-o-potencial-do-MongoDB-garantindo-o-sucesso-pos-atualizacao-150x150.jpg)
Desbloqueie todo o potencial do MongoDB: garantindo o sucesso pós-atualização
22 de fevereiro de 2024![Como usar loops em Python](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708647421_Como-usar-loops-em-Python-150x150.png)
Como usar loops em Python
22 de fevereiro de 2024WebAssembly está passando por uma aceleração de seu uso e de aplicações para o navegador. No entanto, isso não significa que as implantações de servidores e o chamado modelo de componentes não atingirão todo o seu potencial para o Wasm.
Na verdade, vários desenvolvimentos promissores estão surgindo, tanto para o modelo de componentes, com o estabelecimento da prévia do WASI 2, quanto no espaço de servidores, com ofertas intrigantes do Fermyon para aplicativos de desenvolvimento sem servidor que o WebAssembly sustenta.
Uma vez finalizado, um modelo de componente que permitirá ao WebAssembly não apenas ver seu uso em expansão além de navegadores e servidores da Web – mas também permitirá que os usuários implantem diferentes aplicativos executados em vários módulos leves em velocidades muito altas em milhares de terminais simultaneamente por meio de um interface do componente sem alterar um pingo de código.
Enquanto isso, um notável efeito de bola de neve está ocorrendo no WebAssembly para o espaço do navegador. Muitos desses desenvolvimentos, embora anedóticos, são bastante interessantes.
Neste artigo, exploramos alguns dos projetos interessantes que encontramos para WebAssembly no navegador e os descrevemos. Em seguida, nos aprofundamos no que precisa acontecer para que o WebAssembly atinja todo o seu potencial. Muito disso tem a ver com a comunidade de código aberto.
Torça J 3.0
Lançado recentemente, o CheerpJ 3.0 apresenta uma manifestação interessante do WebAssembly para o navegador, demonstrando seu potencial para implantar e operar aplicações complexas e tempos de execução escritos em Java. Os desenvolvedores podem criar aplicativos em qualquer linguagem e implantá-los com apenas um clique, empacotados e distribuídos para disponibilidade em testes e uso pelos usuários finais.
Embora o desenvolvimento do CheerpJ 3.0 continue em andamento, é claro que ele representa um avanço significativo na implantação de aplicativos no navegador com WebAssembly, especialmente com Java. Isso complementa outros projetos focados em criptografia e na capacidade de implantar aplicativos escritos em C++ para uso em navegadores.
Com o CheerpJ 3.0 – marcando seu lançamento geralmente disponível – aplicativos cliente Java, como Java Applets, aplicativos Java Web Start e aplicativos Java independentes, podem ser executados sem modificações em navegadores modernos, sem uma instalação Java local, diz Fermyon. A ideia é tornar os tempos de execução — neste caso Java — mais capazes de rodar como se o usuário tivesse os recursos do servidor endpoint à sua disposição — no navegador.
“Da mesma forma que o Docker permite executar contêineres de binários em sua máquina, você precisa ter tecnologia e ele possui tecnologia que permite fazer o mesmo para executar cargas de trabalho binárias no navegador da mesma maneira que você pode fazer normalmente em um sistema operacional de plataforma normal”, disse Stefano Marco Maria De Rossi, CEO e fundador da Leaning Technologies, que criou o CheerpJ, ao The New Stack.
A configuração do CheerpJ 3.0 é razoavelmente simples, com etapas claramente descritas na documentação e é compatível com praticamente qualquer navegador. No aspecto de playground, mesclar arquivos PDF é extremamente simples: os usuários inserem seus arquivos PDF na API e, com alguns cliques, os arquivos são mesclados.
No entanto, esta simplicidade é semelhante a uma aplicação Hello World, representando apenas o começo. Para aplicações mais complexas, Java pode ser escrito e implementado no módulo WebAssembly do CheerpJ 3.0 para distribuição e execução em navegadores. Esses exemplos ilustram a versatilidade e o potencial do WebAssembly para aplicativos baseados em navegador.
Execução do navegador do Falco
Jason Dellaluce, engenheiro sênior de código aberto do provedor de segurança de contêineres Sysdig e mantenedor principal da Falco, disse durante sua palestra na KubeCon + CloudNativeCon North America. Em sua palestra “The Falco Playground: A Cocktail of WebAssembly and Runtime Security” ele explicou como a plataforma de segurança que integra fortemente o eBPF precisava “preencher uma lacuna histórica”. A lacuna originou-se de como Falco é responsável por validar conjuntos de regras e fornecer indicações “caso algo esteja errado” e, em seguida, configurar esses conjuntos de regras para serem comparados com eventos de segurança em tempo de execução, testando se “tudo funciona como esperado”, disse Dellaluce. .
Ele imaginou que o Falco exigiria um servidor back-end para executar o Falco e, em seguida, uma plataforma web para nossos usuários usarem para experimentar o Falco em um ambiente sandbox. “Essa é uma solução, mas também é cara para desenvolver, manter e implantar porque precisamos de servidores em nossa infraestrutura aberta… E então me dei conta: o WebAssembly permite compilar programas na maioria das linguagens em algo que roda nativamente em do lado do cliente do seu navegador.”
O Falco Playground foi então criado para seu projeto para o Google Summer of Code. “É a nova plataforma que acabamos de iniciar para permitir que as pessoas joguem e aprendam sobre as regras e testes do Falco”, disse Dellaluce. “Tudo isso é feito do lado do cliente, sem a necessidade de back-end, graças ao poder do WebAssembly.”
E roda no navegador.
Durante a palestra KubeCon + CloudNativeCon “Executando contêineres baseados em Linux no Wasm e no navegador com o Container2wasm Converter”, Kohei Tokunaga, um engenheiro de software da Japan NTT que é mantenedor do BuildKit e revisor do CNCF Containerd, descreveu como o Container2wasm Converter pode ser usado para executar aplicativos baseados em Linux no Wasm e no navegador sem modificações nos aplicativos do aplicativo. Como ele descreveu, portar aplicativos para o Wasm custa tempo para recompilação e reimplementação.
O Container2wasm Converter permite que contêineres modificados no Wasm sejam executados enquanto aproveita os emuladores de CPU. Sua equipe também criou uma extensão para VS Code para o navegador, a fim de executar contêineres no navegador. Ele descreveu planos de projetos adicionais para desenvolver análises de desempenho e outras melhorias no Container2wasm.
Adobe Touch
Mais uma vez, o Wasm continua a ver utilidade em sua capacidade de tirar vantagem de sua estrutura binária direcionada de várias maneiras. Isso inclui como ele funciona no nível da CPU e remove muitos dos riscos associados ao código vulnerável em imagens de contêiner, entre outras vantagens elogiadas. No caso da Adobe, o aplicativo Photoshop, que consome muitos recursos, quando executado em um PC, agora está disponível no navegador. O usuário acessa os comandos e funcionalidades do Photoshop sem precisar baixar o software (novamente, graças ao Wasm). Este desenvolvimento segue como Wasm e WASI já permitiam aos usuários assinar um documento no Adobe Sign ou editar uma imagem no Lightroom da Adobe.
A disponibilidade do Photoshop para rodar no navegador se deve em grande parte ao uso de scripts de código aberto pela Adobe. Emscripten é um conjunto de ferramentas de compilador para módulos Wasm para C ou C++. Isso significa que você pode usar emscripten para compilar código escrito em C ou C++ ou outras linguagens que usam LLVM no WebAssembly que pode ser executado não apenas no navegador, mas em Node.js ou outros tempos de execução do WebAssembly.
Futuro do navegador Wasm
Para o futuro, especialmente os desenvolvedores exigem mais maturidade e estabilidade, disse De Rossi. Particularmente nos últimos dois anos, o maior investimento em Java tem sido em termos de usabilidade e experiência do desenvolvedor, disse De Rossi. “Realmente, uma das maiores motivações foi re-arquitetar completamente. Ok, isso é trivial de usar para o desenvolvedor Java padrão, que foi a nossa motivação”, disse De Rossi. “Portanto, acho que isso é muito importante se você deseja que essas ferramentas para esse problema tenham realmente sucesso em grande escala.”
O software normal usa muitas dependências de terceiros, das quais o usuário ou desenvolvedor não possui o código-fonte, enquanto muitos desenvolvedores de software corporativo usam bibliotecas proprietárias, disse De Rossi. “Como você habilita o navegador para um uso mais inteligente nesses tipos de aplicativos, que compreendem 99% deles? Componentes proprietários – como você lida com isso? Como você resolve isso?”, disse De Rossi. “A solução é a virtualização – ser capaz de executar conteúdo binário no navegador, ser capaz de executar conteúdo binário x86 ou Arm. Isso é o que você precisa ser capaz de fazer porque, caso contrário, você nunca será capaz de executar software que tenha componentes proprietários e estará sempre limitado ao seu próprio código-fonte ou a componentes de código aberto.”
O post WebAssembly no navegador amadurece e coisas legais acontecem apareceu pela primeira vez em The New Stack.