Edge Computing e Cloudflare Workers - Full Cycle FullCycle

Voltar

Wesley Willians

Edge Computing e Cloudflare Workers

10 min de leitura

Diante das inovações mesmo as tecnologias mais consolidadas ainda podem se diluir em meio aos avanços que surgem nessa esfera. E nesse panorama também é possível estimar que até mesmo a Cloud Computing também vai deixar de ser sustentável em algum momento.

Servidor, Infraestrutura e Processamento

Partindo desse princípio, pense no seu servidor na AWS, GCP, Azure, Digital Ocean ou qualquer outro desses serviços. Independente de qual seja, todas as requisições feitas no seu sistema ainda batem no seu servidor, que pode estar na região US-East-1 ou talvez em São Paulo, por exemplo.

Nesse cenário típico, toda a carga recebida pela sua aplicação sempre bate no exato local onde está toda a sua infraestrutura. Mas dessa forma, todo o seu recurso computacional voltado para executar tarefas importantes acaba se misturando a outras tarefas irrelevantes a nível de processamento.

E quando você se dá conta, existem diversas tarefas que poderiam ser executadas no seu servidor, tais como: acessar uma página estática; verificar dispositivos mobile; SSL; testes A/B; consultas simples para verificação de rota; acessar assets ou imagens; gerar QR Code, certificados ou qualquer coisa desse tipo.

Quando você tem uma aplicação com poucas requisições, não importa se esse tipo de coisa vai bater no seu servidor ou não, já que são pouquíssimas requisições. Mas pensando numa escala maior, como uma empresa de grande porte com milhões de visitas, essa já é uma questão mais preocupante.

Mesmo com grande infraestrutura e Load Balancer, você deve reconhecer que se todas as requisições batessem nesses servidores, ainda assim o seu Cloud Provider e a largura de banda não seriam infinitos. E, quanto mais você poupa esses recursos computacionais, melhor. Além disso, na intenção de obter respostas mais rápidas, seria muito mais prático executar determinadas tarefas numa aplicação antes mesmo das requisições chegarem aos servidores.

Pense na facilidade de acessar a sua SPA, que é repleta de HTML, CSS, Javascript, etc, mas de uma forma totalmente elástica. Ao invés de fazer isso na localidade US-East-1, você utiliza uma central de telefonia do seu próprio bairro.

Então a grande vantagem disso é justamente evitar que todas as requisições batam na sua máquina, além de te ajudar a levar as suas provisões o mais próximo possível da localidade do seu usuário final.

Por trás da Edge Computing

Esse é o conceito geral de Edge Computing – sendo que “Edge” significa borda – seguindo o conceito de que as suas requisições batem na borda antes de caírem na sua aplicação. Ou seja, você tem infraestrutura e empresas especializadas em processar algumas coisas antes mesmo que a requisição chegue ao seu computador. No fim isso gera um alto ganho tanto para você, que economiza em cloud, quanto para o usuário final, que vai ter menos latência ao lidar com esses recursos.

É de conhecimento popular que a Netflix tem a prática de pegar os vídeos mais visualizados e colocar nas empresas de telefonia mais próximas dos usuários, evitando toda uma circulação de terabytes pela internet que podem deixar tudo mais lento. E, de forma geral, isso também é Edge Computing.

Na Full Cycle nós também temos uma plataforma para trabalhar com os nossos vídeos, os quais nós mesmos transpilamos (??) e mantemos na S3 da AWS. Mas como esses vídeos ficavam muito distantes dos usuários, nós queríamos oferecer uma performance melhor aos nossos alunos.

Para evitar situações de travamento, nós contratamos uma empresa especializada em Edge Computing, que utiliza uma CDN (Content Delivery Network) para deixar os vídeos cada vez mais próximos dos usuários, sem a necessidade de bater naquele bucket da S3. E o mais interessante é que já houveram casos de vídeos da Full Cycle que foram baixados nas máquinas dos nossos usuários do próprio bairro onde eles estavam.

Como você pode perceber, esse recurso não é algo reservado para o futuro; atualmente esse já é um meio bastante viável de se trabalhar. E ainda existem outros detalhes muito interessantes que funcionam em conjunto a isso.

Cloudflare Workers

Entre outros planos disponíveis, a Cloudflare é uma empresa que fornece serviços de DNS, sendo mais centralizada na infraestrutura das nossas aplicações, em como elas se comunicam e a parte de cache.

Pensando nesse grande movimento de Edge Computing, a Cloudflare não ficou de fora e criou um serviço relativamente novo chamado Workers. Vejamos os seus benefícios.

Hoje em dia o Javascript tem diversas finalidades, sendo que nesse nós já podemos contar com a possibilidade de adicionar uma série de sistemas Javascripts. E a vantagem é que eles podem ser processados na borda antes mesmo de baterem na nossa infraestrutura Além disso, você ainda pode utilizar Lambda Functions e trabalhar com Serverless, mas na borda. E, ao publicar o seu script, ele fica disponível em mais de 300 localidades no mundo inteiro.

Isso significa que esse processo é feito muito mais próximo do usuário e de uma forma muito mais inteligente, evitando que o usuário final acesse diretamente o seu provedor de nuvem, gastando menos recursos do seu servidor.

Os Workers da Cloudflare funcionam exatamente assim, agindo como funções executáveis na borda, mas no momento em que o usuário acessa o seu site, sistema, etc.

Possibilidades

Com isso você consegue adicionar regras assim que o usuário acessa, além de fazer scripts, coops, combinações, adicionar dados na requisição, verificações e criar regras de negócio para evitar ainda mais que as coisas sejam processadas no seu computador.

No geral isso é muito interessante porque toda essa infraestrutura e projeção foram feitas de uma forma bastante inovadora.

Containers

Com a alta dos containers e o proveito de subi-los rapidamente, mesmo que em aplicações muito leves rodando no seu sistema operacional, a própria AWS utiliza esse recurso para trabalhar com Lambda Functions, Serverless, etc.

E, enquanto a sua Lambda Function fica num bucket da S3, ao solicitar essa função ela faz o download do bucket sob um container, que inicializa e depois fica à sua disposição. Mas vale salientar que a primeira inicialização causa um cold start, que é uma demora um pouco mais prolongada.

Como os Workers resolvem o Cold Start?

Essa é justamente a função dos Workers na Cloudflare, que pegam todo o poder do V8 responsável por fazer o parsing do Javascript e disponibilizar esse recurso na borda. E ao fazer o deploy da sua aplicação, seja em Javascript ou HTML, independente de qual for, assim que começarem a acessar, isso vai rodar num container de isolamento do V8 de uma forma muito mais rápida, com alta performance e sem cold start.

Então imagine trabalhar com Serverless sem cold start, de uma forma muito mais rápida e próxima ao usuário, sem ter que escolher regiões. Além de ser mais barato – por um terço do valor se comparado a uma função comum que vai rodar em qualquer provedor de nuvem.

Edge x Cloud

Entre todas essas vantagens, a Cloudflare e outras empresas que aplicam esse serviço são bastante reconhecidas no mercado hoje em dia. Obviamente nada é perfeito, já que trabalhar com Serverless e Lambda Functions na AWS também traz a vantagem de se trabalhar com Cloud Watch, assim como ativar e gerar eventos para outros serviços da Amazon.

Mas mesmo não abordando esses pontos, é muito mais barato trabalhar com Edge Computing e oferecer uma experiência fantástica ao usuário.

KV – Chave-Valor

Um outro detalhe importante é que muitas vezes no Javascript nós precisamos de um banco de dados ou alguma forma de guardar os nossos dados para utilizá-los, fazer cálculos ou algo do tipo. E como nós nem sempre podemos contar com páginas estáticas; às vezes é preciso fazer operações ou guardar dados.

Se você está fazendo um teste A/B, por exemplo, observando quantas pessoas acessaram as páginas A e B, para saber quem ganhou ou qualquer coisa desse tipo, é preciso registrar esses dados em algum lugar.

É por conta disso que existe a KV, ou chave-valor, que também disponibiliza um banco de dados do tipo chave-valor na borda. Ou seja, você tem um banco de dados acessível por Javascript para armazenar as suas coisas e recuperar esses valores.

No fim você consegue criar aplicações completas, gravar os seus dados e ainda manter todos esses benefícios.

Custo-Benefício

A grande vantagem de tudo isso é contar com toda essa flexibilidade de colocar o Javascript na frente, pegando tudo o que é possível para segurar bem a sua infraestrutura e enfim processar o que realmente importa.

Essa sem dúvidas é uma ótima iniciativa da Cloudflare, que mantém tudo gratuito até você utilizar requisições que sejam processadas até 10 milissegundos e 100 mil solicitações por dia. Depois disso você começa a pagar a partir de 5 dólares por mês e passa a entender como funcionam esses planos.

O fato é que o mundo está andando novamente e a Cloud Computing já é uma tecnologia consolidada. A Edge Computing também é, mas essa tendência vem aumentando cada vez mais no mundo do desenvolvimento.

Veja também: Gerenciando a autenticação em aplicações distribuídas.

Curtiu esse artigo? Se você quiser saber mais sobre Edge Computing e Cloudflare Workers, basta clicar aqui e solicitar um contato. Nós estamos prontos para te ajudar.

E você já conferiu o conteúdo do nosso canal do youtube?