Um dos tópicos mais interessantes no desenvolvimento de front-end recentemente é a computação de ponta. Ser capaz de executar código na borda é um novo recurso que mudará radicalmente a forma como escrevemos aplicativos. Este artigo tem como objetivo fornecer uma breve visão geral da computação de borda sem servidor, por que ela é benéfica e como você pode usá-la.
Até recentemente, quando falávamos sobre o edge, geralmente pensávamos em redes de entrega de conteúdo (CDNs), que armazenam ativos estáticos como HTML, arquivos CSS, imagens, vídeos etc. em centenas de servidores em todo o mundo. Como os conteúdos estão próximos dos usuários, o acesso é muito rápido. A computação de borda sem servidor estende essa ideia, permitindo que os desenvolvedores executem código na borda sem precisar gerenciar nenhum servidor. A computação de borda oferece aos desenvolvedores um novo local para seu código junto com as duas opções tradicionais, ou seja, no back-end e no dispositivo.
As duas plataformas mais comentadas atualmente são Cloudflare Workers e Deno Deploy . No alto nível, eles têm muitas semelhanças:
Por outro lado, a diferença mais aparente entre as duas plataformas é que o Deno Deploy não oferece nenhuma solução de armazenamento, enquanto o Cloudflare Workers possui Durable Objects para armazenamento consistente e o Workers KV para armazenamento de baixa latência com consistência eventual.
A computação de borda é usada com mais frequência para implementar middleware, que são scripts simples que reescrevem URLs, redirecionam solicitações ou manipulam cookies e cabeçalhos. Por exemplo, você pode realizar testes A/B exibindo diferentes versões de uma página, dependendo do valor de um cookie. Você pode oferecer suporte à localização, o que significa que usuários de diferentes países podem ver conteúdos diferentes. Você também pode conceder ou bloquear o acesso a determinadas páginas com base no status de autenticação do usuário.
Embora os casos de uso acima possam ser tratados pelo back-end e/ou pelo cliente, o uso da computação de borda é muito mais ideal em termos de desempenho e simplicidade. Se você implementar testes A/B ou localização no cliente, poderá ter um pacote grande e uma interface do usuário oscilante. Por outro lado, a implementação dessa funcionalidade no back-end geralmente requer configuração do servidor e resulta em respostas lentas.
A computação de borda é muito mais do que middleware. Na verdade, você pode até usar a computação de borda para substituir completamente o back-end. Muitas estruturas full-stack, por exemplo, Remix e Fresh, agora permitem que você escreva funções que acessam bancos de dados diretamente e renderizam HTML na borda. Ao fazer isso, você provavelmente não precisará desenvolver uma API como costumava fazer no passado. (Mas se você quiser servir uma API RESTful ou mesmo uma API GraphQL na borda, você também pode fazer isso.)
Mas por que você deveria considerar substituir seu back-end por computação de borda sem servidor? Há várias razões para isso. Em primeiro lugar, por ser sem servidor, não há necessidade de se preocupar com a manutenção do servidor nem com o escalonamento automático. Em segundo lugar, é muito mais rápido do que os back-ends tradicionais porque é executado muito próximo aos usuários e, em comparação com as plataformas normais de função como serviço, a computação de ponta tem pouco ou nenhum arranque a frio . E terceiro, é mais barato do que as opções sem servidor convencionais porque as plataformas de computação de ponta usam tecnologias mais leves, como isolados V8 (em oposição a máquinas virtuais ou contêineres) para multilocação, o que lhes permite utilizar recursos com mais eficiência e lidar com muitos mais pedidos.
Se você estiver usando uma plataforma como Netlify ou Vercel para implantar aplicativos da Web, é muito simples optar pela computação de borda. Por exemplo, você pode usar o Edge Functions da Netlify (que é criado no Deno Deploy) ou o Edge Middleware da Vercel (que provavelmente é executado no Cloudflare Workers). Ao implantar um aplicativo Next.js (desde a versão 12.2) para Vercel ou Netlify, você pode configurar algumas ou todas as páginas para usar o edge runtime para renderização do servidor (esse recurso é chamado de Edge SSR ).
Se você não implantar no Netlify, Vercel ou plataforma semelhante, é recomendável usar uma estrutura de pilha completa nativa de borda e implantar seu aplicativo diretamente no serviço de computação de ponta de sua escolha. Por exemplo, você pode desenvolver seu aplicativo com a estrutura Fresh e publicá-lo no Deno Deploy. Outro exemplo é a estrutura Remix, que fornece adaptadores para Cloudflare Workers e Deno Deploy (juntamente com muitos outros destinos de implantação).
Se você não quiser usar uma estrutura de pilha completa, poderá desenvolver seu front-end e back-end separadamente. Com Cloudflare, você pode servir seu front-end e recursos estáticos com páginas ou sites de trabalho. Com o Deno Deploy, você pode servir ativos estáticos do sistema de arquivos . Quanto ao back-end, você provavelmente deseja usar uma estrutura HTTP como Sunder (se tiver como alvo Cloudflare Workers), oak , Router ou Sift (se tiver como alvo Deno Deploy).
Embora a computação de borda seja perfeita para implementar scripts de middleware, se você deseja implementar todo o back-end com ela, deve estar ciente dos limites da plataforma de destino em tempo de execução da CPU, memória, tamanho do pacote e assim por diante. Você pode encontrar informações detalhadas sobre os limites do Cloudflare Workers aqui e Deno Deploy aqui .
Em resumo, com plataformas de computação de ponta, como Cloudflare Workers e Deno Deploy, os desenvolvedores podem escrever middleware e back-ends que são rápidos e baratos. A computação de borda é uma virada de jogo que permitiu uma nova geração de estruturas de pilha completa, como Remix e Fresh. Você pode usar essas estruturas para desenvolver e implantar aplicativos diretamente na borda. Além disso, a computação de borda pode ser usada indiretamente por meio de plataformas como Netlify e Vercel.
É apenas o começo. Em um futuro próximo, podemos esperar que muito mais frameworks, bibliotecas e ferramentas sejam desenvolvidas para o edge. Felizmente, este artigo despertou seu interesse e forneceu algumas informações de alto nível sobre computação de ponta para que você possa começar a explorar seu potencial.