Pular para o conteúdo principal

Computação de borda versus computação em nuvem: Um guia para desenvolvedores modernos

Explore a mudança da nuvem para a computação de borda e descubra como essa evolução redefine o desempenho, a latência e o dimensionamento global dos aplicativos!
Actualizado 17 de dez. de 2024  · 20 min de leitura

O que é a computação de borda?

Há muitas maneiras de definir a computação de borda, mas o conceito central é bastante simples. A computação de borda move a computação e o armazenamento de dados para mais perto do usuário para reduzir a latência em comparação com os data centers centralizados.

Isso leva a diferentes designs de arquitetura com base no tipo de aplicativo que você está criando. De fato, a computação de borda é um termo amplo que abrange muitas áreas tecnológicas.

Por exemplo, em casos de uso industrial ou de fabricação, a computação é enviada para dispositivos de IoT e gateways de borda para agregar ou pré-processar dados antes de enviá-los para a nuvem. Em outros setores, como saúde, varejo ou automotivo, você encontrará aplicativos semelhantes que levam a lógica de computação essencial para os negócios a dispositivos vestíveis, câmeras inteligentes ou veículos autônomos. Em todos esses casos de uso, a computação deve ocorrer rapidamente na borda, evitando atrasos nas viagens de ida e volta da rede para data centers distantes.

Dispositivo cliente <-> Rede de borda <-> Nuvem

Um pouco da história da Web e da computação em nuvem

Neste artigo, vamos nos concentrar na computação de borda baseada em CDN, que é o tipo de borda com a qual você se preocupa se usa serviços da Web e de nuvem diariamente para criar aplicativos da Web.

Para entender a computação de borda baseada em CDN e sua finalidade, precisamos explorar a evolução da Web e da nuvem ao longo dos anos. Esse contexto é essencial porque a computação de borda é fundamental para essa evolução.

Vamos dar uma olhada rápida em como a Web nasceu e como ela levou à nuvem:

  • 1960s: É lançada a primeira rede da Web (ARPANET) entre quatro computadores nos EUA, principalmente para fins de pesquisa entre universidades.
  • 1970s: Há cerca de 200 nós na rede, incluindo novos nós no Reino Unido e na Europa. A Rainha Elizabeth II envia seu primeiro e-mail em 26 de março de 1976.
  • 1980s: A rede cresce rapidamente para quase 100.000 nós, também graças aos primeiros computadores pessoais, formando a base da Internet moderna.
  • Década de 1990: Nasce a World Wide Web (www), incluindo o primeiro navegador gráfico da Web (Mosaic) e as primeiras empresas de comércio eletrônico e da Web, como Amazon, Google e eBay - quase 250 milhões de usuários em 1999.
  • Anos 2000: Conexões de banda larga mais rápidas permitem um conteúdo mais rico, especialmente nos primeiros smartphones com redes 3G e 4G. Surgem as primeiras plataformas de mídia social (MySpace, LinkedIn, Facebook, YouTube, Twitter).

O início dos anos 2000 também foi quando a nuvem nasceu. Vamos analisar alguns marcos específicos dos últimos 20 anos:

  • 2006: O Amazon Web Services(AWS) élançado, tornando-se a primeira plataforma de nuvem pública com serviços como SQS, S3 e EC2.
  • 2008: O Google Cloud foi lançado com a prévia do Google App Engine (depois Google Cloud Storage e BigQuery em 2010).
  • 2010: É lançado o Windows Azure (depois renomeado para Microsoft Azure em 2014).
  • 2013: O Docker é lançado, dando início à computação baseada em contêineres.
  • 2014: O Kubernetes é anunciado (depois chega à versão 1.0 e entra para o CNCF em 2015).
  • 2015: O AWS Lambda é anunciado, e a computação sem servidor nasce (rapidamente acompanhada pelo Azure Functions, Google Cloud Functions e muitos outros, alguns anos depois).

Então, como é a nuvem hoje?

Em menos de uma década, a tecnologia de aplicativos da Web passou da virtualização de hardware brutopara máquinas virtuais acessíveis em minutos via API. Em seguida, você pode optar pela orquestração de contêineres e funções sem servidor que são ativadas em segundos (ou até dezenas de milissegundos), com opções de faturamento por segundo (ou até por milissegundo) e uma quantidade incrível de automação integrada.

A evolução da computação. Virtualização de hardware bruto -> VMs acessíveis em minutos -> Orquestração de contêineres -> Funções sem servidor.

E isso é apenas para o lado da computação. Há literalmente centenas de serviços gerenciados quando você analisa o armazenamento, a rede, os bancos de dados, a análise e assim por diante. Os bancos de dados gerenciados são especialmente interessantes porque você pode encontrar muitas opções (inclusive seus mecanismos de código aberto favoritos) e, muitas vezes, eles automatizam as partes mais tediosas da operação de um banco de dados em produção.

Alguns argumentam que os serviços em nuvem tornaram a criação de aplicativos da Web mais fácil e rápida do que nunca, enquanto outros acham que isso era mais simples e direto há 10 ou 20 anos. A realidade é bastante subjetiva e depende do que você está construindo e de quais são suas metas e prioridades comerciais.

O que mais mudou nos últimos 10 anos?

Voltando à nossa rápida análise histórica, algo mais aconteceu - quase silenciosamente - na última década. As redes de fornecimento de conteúdo passaram por uma evolução semelhante, levando ao que chamei anteriormente de "computação de borda baseada em CDN".

Uma rede de distribuição de conteúdo (CDN) é uma rede global de servidores proxy distribuídos em todo o mundo para melhorar o desempenho do site. Em termos simples, uma CDN ajuda os proprietários de conteúdo a fornecer conteúdo aos usuários da Internet, acelerando a transferência e armazenando em cache o conteúdo em centenas de servidores de borda. Posicionada na frente do seu site, uma CDN também pode proteger a origem contra ataques DDoS e outras vulnerabilidades.

Mas esse não é mais o quadro completo. Vamos dar uma olhada em como eles também evoluíram nos últimos 10 anos.

A evolução das redes de distribuição de conteúdo (CDNs)

Inicialmente focadas no armazenamento em cache e na proteção de servidores de origem, as CDNs começaram a evoluir com o aumento da computação sem servidor. Uma nova ideia se popularizou rapidamente: os desenvolvedores poderiam definir uma "função" atômica que fosse executada sob demanda em resposta a um evento, como o upload de uma nova imagem ou um novo registro de banco de dados, sem precisar possuir e manter a infraestrutura física ou virtual subjacente.

O AWS Lambda foi o primeiro exemplo desse novo paradigma em 2015. O AWS Lambda@Edge veio em seguida, em 2016, permitindo que você adote a mesma abordagem com funções executadas sobre o Amazon CloudFront, o serviço de CDN da AWS.

As CDNs populares seguiram o exemplo, introduzindo serviços como o CloudFlare Workers em 2017, o Fastly Compute@Edge em 2019 e o Akamai EdgeWorkers em 2019.

E eles não pararam por aí! Como dissemos no início deste artigo, a computação de borda não se trata apenas de trazer recursos de computação para a borda. Na maioria dos casos, você também precisa de algum tipo de armazenamento de dados. Assim, as CDNs continuaram evoluindo e enviaram novos serviços de ponta, como armazenamentos de valores-chave, armazenamento de objetos, bancos de dados SQL, redimensionamento de imagens, inferência de IA e muito mais!

Por exemplo:

  • A plataforma de desenvolvimento da CloudFlareinclui serviçosde borda, como Workers KV para armazenamento de valores-chave, D1 para bancos de dados SQL relacionais com recuperação pontual, R2 para armazenamento de objetos sem taxa de saída e Queues para execução de tarefas assíncronas. 
  • Da mesma forma, na Fastly você encontra o KV Store para armazenar pares de valores-chave, segredos e dados de configuração, e o Fanout para pub/sub assíncrono bidirecional na borda.
  • E você adivinhou, a Akamai oferece o EdgeKV.
  • O Amazon CloudFront apresentou o CloudFront KeyValueStore em 2023.

A evolução das redes de distribuição de conteúdo.

Atualmente, as CDNs oferecem serviços que você normalmente esperaria que fossem executados apenas em uma região de nuvem (ou data center), desde funções sem servidor até armazenamentos de valores-chave, armazenamento de objetos, filas e bancos de dados relacionais. Coincidentemente, as filas, o armazenamento de objetos e a capacidade de computação foram os primeiros serviços de nuvem anunciados em 2006, agora estreando na borda de forma globalmente distribuída.

Por baixo do capô, essas novas plataformas de computação de ponta usam tecnologias diferentes e suportam linguagens de programação diferentes. Por exemplo, o CloudFlare usa o mecanismo Chrome V8, que inicialmente suportava apenas JavaScript, mas começou a incorporar o WebAssembly em 2018. Por outro lado, a Fastly decidiu usar o WebAssembly desde o início em seu ambiente de sandboxing para evitar algumas das limitações de latência de inicialização do V8. Isso permite que a Fastly ofereça suporte a muitas linguagens de programação, como TypeScript, Rust, Go, .NET, Ruby e Swift.

Vamos abrir um breve parêntese sobre o WebAssembly.

WebAssembly na borda

O WebAssembly (ou Wasm, na sigla em inglês) pode ser o desenvolvimento mais interessante nesse espaço. Desde que foi anunciado em 2017 e depois se tornou uma recomendação do W3C em 2019, muitas pessoas falam sobre isso para a execução de binários Wasm no navegador, mas também há muito potencial para a execução no lado do servidor, incluindo a borda.

O Wasm permite que você escreva a lógica comercial em várias linguagens compatíveis e a compile em um arquivo binário que é executado em tempos de execução do Wasm, como o wasmtime da Bytecode Alliance.

Juntamente com a WASI (WebAssembly System Interface), ele permite que você componha software escrito em diferentes linguagens com uma interface padronizada pela W3C.

Se isso soa familiar a algo muito popular no mundo da nuvem, confira este tweet de 2019 do fundador do Docker:

Se o WASM+WASI existisse em 2008, não teríamos precisado criar o Docker. Isso é muito importante. O WebAssembly no servidor é o futuro da computação. Uma interface de sistema padronizada era o elo que faltava. Esperamos que a WASI esteja à altura da tarefa!

Portanto, as expectativas para o Wasm + WASIsão muito altas. Recomendo enfaticamente que você fique de olho na Bytecode Alliance e em seus esforços para criar compiladores, tempos de execução e ferramentas seguros e abertos para o WebAssembly. A organização sem fins lucrativos foi fundada em 2019 pela Mozilla, Fastly, Intel e Red Hat. Atualmente, seus membros incluem outros participantes da nuvem e da borda, como Amazon, Arm, Cisco, Docker, Fermyon, Microsoft, Nginx, Shopify, Siemens e VMware.

Comparação entre computação de borda e em nuvem

Agora, voltemos à nossa exploração da computação de borda.

Uma das diferenças mais interessantes e notáveis em relação à computação em nuvem é que a borda é distribuída globalmente por design. Seu código e armazenamento de dados são executados nativamente em centenas de servidores de borda. Essa é uma grande diferença em comparação com as arquiteturas de nuvem que normalmente começam como aplicativos centralizados executados em um único data center (ou em 2 ou 3 zonas de disponibilidade em uma região de nuvem).

Embora muitos aplicativos possam ser facilmente executados de forma centralizada, se você estiver criando um site ou produto com um público global, sua arquitetura certamente envolverá algum tipo de armazenamento em cache e distribuição de conteúdo. E com a computação de borda que acontece automaticamente, seu aplicativo de borda é distribuído globalmente com um clique (ou comando CLI) e é executado o mais próximo possível de seus usuários para otimizar a latência.

Então, aí vem a pergunta retórica.

Você ainda precisa da nuvem?

Em outras palavras, a nuvem ainda é a melhor opção para projetar e criar aplicativos bem arquitetados e dimensionáveis em 2024?

Bem, sim!

A realidade é que, na maioria dos casos de uso, a borda ainda precisa de algum tipo de origem para depender dela. A origem é onde a lógica comercial do código é executada, seja no backend do seu site ou em outras cargas de trabalho complexas que precisam permanecer centralizadas (por conveniência, limitações técnicas ou custo).

Vamos dar uma olhada em quais cargas de trabalho provavelmente permanecerão na nuvem (por enquanto):

  • APIs de back-end + RDMS - Normalmente, o núcleo dos seus bancos de dados de origem e de produção (há pelo menos 10 serviços de banco de dados diferentes somente no AWS).
  • Armazenamento em massa - A nuvem oferece maneiras de reduzir os custos por meio do armazenamento a frio.
  • Análise de dados - Seu data warehouse, data lake e pipelines de dados típicos precisam de um repositório de dados centralizado para executar consultas e criar relatórios.
  • IA/ML - O treinamento eficiente e econômico requer conjuntos de dados enormes (enquanto a inferência já pode ser executada na borda).
  • HPC/Simulações - A computação de alto desempenho é distribuída por design, mas geralmente dentro do mesmo data center ou região para reduzir a sobrecarga da rede.
  • Pipelines de CI/CD - Eles podem ser executados em qualquer lugar, mas provavelmente é mais conveniente e mais barato usar a nuvem (incluindo os pipelines para implantar seus serviços de borda).

Em resumo, a nuvem é excelente em serviços de uso geral, oferecendo suporte a quase todos os tipos de carga de trabalho possíveis, com armazenamento praticamente infinito e escalabilidade horizontal (em uma região ou em um pequeno número de regiões para resiliência e recuperação de desastres).

Por outro lado, a borda simplifica as implementações globais, aprimora a segurança e permite o armazenamento em cache para origens na nuvem, além de oferecer suporte a recursos otimizados para latência sem adicionar complexidade ao seu aplicativo principal.

Em outras palavras, a computação em nuvem e a computação de borda se complementam. Elas continuarão a coexistir e a resolver problemas técnicos diferentes.

Arquiteturas que levam em conta os custos

Outro ângulo interessante a ser considerado é o custo. Como acontece com frequência com os serviços gerenciados, a escolha é entre usar uma solução pronta para uso e projetar, criar e manter sua própria solução distribuída globalmente.

Como a borda é otimizada para a distribuição global de conteúdo, ela geralmente reduz os custos das taxas de saída. No entanto, o armazenamento de dados de borda deve ser distribuído em centenas de servidores de borda, o que faz com que as operações de armazenamento e dados pareçam mais caras do que os serviços de nuvem regionais, que normalmente replicam os dados apenas em 2 a 3 zonas de disponibilidade.

Vejamos alguns números, com foco no armazenamento de valores-chave para 3 serviços de borda (CloudFlare Workers KV, Fastly KV, CloudFront KeyValueStore) e 2 serviços de nuvem (Redis sem servidor no AWS e DynamoDB sob demanda no AWS):

 

CloudFlare KV

Rapidamente KV

CloudFront KeyValueStore

Redis sem servidor no AWS

DynamoDB sob demanda no AWS

1 milhão de gravações

$5

$6.25

$1000

$0.0038 *

$0.76

1 milhão de leituras

$0.50

$0.50

$0.03

$0.0038 *

$0.15

1GB/mês

$0.50

$0.50

$0

$100

$0.3 **

* para cada KB 

** os primeiros 25 GB são gratuitos

Algumas diferenças e observações interessantes:

  1. O CloudFlare não cobra pela transferência de dados, mas as operações de exclusão custam o mesmo que as operações de gravação.
  2. A Fastly não cobra pelas operações de exclusão, mas você está limitado a 250 mil gravações e 5 milhões de leituras por mês (a menos que você pague por um complemento).
  3. O KeyValueStore do CloudFront parece muito otimizado para leituras, mas as gravações são incrivelmente caras em comparação com as outras opções.
  4. O Redis parece bem barato, mas você deve ter em mente que custa US$ 0,0038 por KB, portanto, se você estiver lendo ou gravando 5 KB, será 5 vezes mais caro (o que ainda é bem barato).
  5. O DynamoDB não é apenas um armazenamento de valores-chave, mas definitivamente pode ser usado dessa forma, e ainda parece ser uma ordem de magnitude mais barata do que os serviços de borda.

Embora os serviços em nuvem possam parecer mais baratos, é fundamental observar que eles não operam em escala global por padrão. Você pode ativar o DynamoDB Global Tables ou o Amazon ElastiCache Global Datastore (embora não seja compatível com o ElastiCache serverless, portanto, você também precisará gerenciar vários clusters).

Por exemplo, se você habilitar as tabelas globais do DynamoDB em 10 regiões, o custo de gravação e armazenamento será multiplicado por 10, de modo que se tornará US$ 7,60 por 1 milhão de gravações e US$ 3 por 1 GB/mês. Isso já é mais caro do que as alternativas de borda e apenas para 10 regiões (em comparação com as centenas de servidores de borda).

Casos de uso do mundo real para a computação de borda

Então, o que realmente pode ser feito na borda? Há muitos casos de uso interessantes, e espero que este artigo ajude você a determinar qual deles faz sentido para o seu produto.

Alguns exemplos:

  • Autenticação: A implementação do CAPTCHA baseado na borda, da autenticação sem senha ou da validação JWT pode reduzir a carga da origem ao executar operações sem estado na borda que não exigem acesso ao banco de dados ou a outros recursos da origem.
  • Coleta de dados: Integre-se a fontes de dados externas ou destinos de dados, transferindo o rastreamento do lado do cliente e do servidor para a borda para evitar SDKs pesados nos navegadores ou gargalos de desempenho no servidor.
  • Enriquecimento com base geográfica: Aprimore seu site com conteúdo "próximo a você" armazenado na borda, implemente redirecionamentos localizados (/en -> /fr ), delimitação geográfica ou limitação por país usando APIs de geolocalização.
  • Personalização de conteúdo: Armazene e exiba artigos vistos recentemente ou produtos recomendados na borda, implemente paywalls para conteúdo premium ou use testes A/B para fornecer conteúdo personalizado e contextualizado, minimizando a complexidade na origem.
  • Otimizações de SEO: Manipule os cabeçalhos HTTP e as respostas HTML diretamente na borda para implementar políticas de cache personalizadas, agrupamento de conteúdo ou algoritmos de compactação ad-hoc.
  • Segurança: Integre WAFs (Web Application Firewalls) personalizados ou implemente cabeçalhos secretos e lógica de controle de acesso personalizada.

Ou você pode projetar um produto inteiro ou um conjunto de produtos que opere quase inteiramente na borda - exatamenteo que estamos fazendo na Edgee.

Conclusões

Espero que este artigo tenha esclarecido que as CDNs não estão mais limitadas ao armazenamento em cache e à proteção contra DDoS - elas agora oferecem uma grande variedade de serviços valiosos para os desenvolvedores. A borda é uma nova maneira de criar aplicativos ou integrar novos recursos, mantendo a origem rápida e direta.

O WebAssembly tem muito potencial, não apenas para o navegador, mas também para a execução de binários no lado do servidor e na borda. 

A nuvem chegou para ficar, e a borda complementa suas limitações, permitindo a criação de aplicativos distribuídos globalmente com latência e custo otimizados. Minha recomendação pessoal é que você projete e crie arquiteturas conscientes dos custos, pois essa é uma habilidade fundamental para se tornar um desenvolvedor ou arquiteto mais eficiente.

Perguntas frequentes

A computação de borda pode funcionar sem uma conexão com a Internet?

Sim, a computação de borda pode funcionar sem uma conexão constante com a Internet para tarefas específicas. Ao processar dados localmente em dispositivos de borda, os aplicativos podem realizar operações em tempo real, como análise ou tomada de decisões. No entanto, as tarefas que exigem sincronização em nuvem, análise de dados em grande escala ou coordenação centralizada precisariam de conectividade.

Como a computação de borda afeta a eficiência energética?

A computação de borda pode melhorar a eficiência energética, reduzindo a necessidade de transmitir grandes quantidades de dados de e para servidores de nuvem centralizados. O processamento local minimiza o tráfego de rede e reduz o consumo de energia. No entanto, a execução de vários dispositivos de borda globalmente também pode levar a um maior uso cumulativo de energia, dependendo da escala e da eficiência dos dispositivos.

Quais setores estão adotando a computação de borda mais rapidamente e por quê?

Setores como manufatura, saúde, automotivo e varejo estão adotando rapidamente a computação de borda. A manufatura se beneficia do monitoramento em tempo real e da manutenção preditiva no chão de fábrica. O setor de saúde usa a borda para diagnósticos rápidos em dispositivos vestíveis. Os setores automotivos o utilizam para operações de veículos autônomos, e o varejo o aplica para experiências de compras personalizadas.

Como o WebAssembly (Wasm) aprimora a computação de borda?

O WebAssembly (Wasm) aprimora a computação de borda, permitindo que os desenvolvedores executem aplicativos leves, seguros e de alto desempenho em dispositivos de borda. Ele oferece suporte a várias linguagens de programação, permitindo flexibilidade no desenvolvimento. Seu rápido tempo de inicialização e a compatibilidade com plataformas de borda como Cloudflare Workers ou Fastly fazem do Wasm a opção ideal para aplicativos sensíveis à latência.

Quais são os desafios de segurança da computação de borda em comparação com a computação em nuvem?

A computação de borda apresenta desafios de segurança exclusivos porque os dados são processados mais perto dos usuários em dispositivos distribuídos, o que aumenta as possíveis superfícies de ataque. Garantir a criptografia dos dados, a autenticação segura do dispositivo e as atualizações regulares do software são essenciais para reduzir os riscos. Diferentemente dos sistemas em nuvem com controles de segurança centralizados, os ambientes de borda exigem medidas mais descentralizadas e adaptáveis.


Alex Casalboni's photo
Author
Alex Casalboni
LinkedIn
Twitter

Alex é um engenheiro de software apaixonado por tecnologias da Web e música. Ele começou a trabalhar em projetos da Web e a compartilhar suas experiências em 2011. Sua paixão por programação abrange diferentes linguagens, como Python e JavaScript, bem como o mundo do código aberto e as startups. Depois de passar seis anos ajudando desenvolvedores e empresas a adotar tecnologias de nuvem, Alex voltou à vida de startup para ajudar as empresas a adotar tecnologias e serviços de computação de ponta.

Temas

Saiba mais sobre a computação em nuvem com os cursos a seguir!

curso

Understanding Cloud Computing

2 hr
114.3K
A non-coding introduction to cloud computing, covering key concepts, terminology, and tools.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

O que é IA de borda? Como funciona, aplicativos e desafios

A Edge AI executa algoritmos de IA diretamente em dispositivos de borda, como smartphones ou sensores de IoT, permitindo o processamento em tempo real e a tomada de decisões sem depender da nuvem.
Bhavishya Pandit's photo

Bhavishya Pandit

9 min

blog

AWS Certified Cloud Practitioner: um guia completo

Saiba mais sobre a certificação e o exame AWS Certified Cloud Practitioner com nosso guia completo. Descubra dicas, recursos e estratégias para garantir que você tenha sucesso.
Srujana Maddula's photo

Srujana Maddula

27 min

blog

Contratos de dados desmistificados: Tudo o que você precisa saber

Obtendo escalabilidade em sistemas de dados distribuídos e reduzindo erros.
Mike Shakhomirov's photo

Mike Shakhomirov

24 min

blog

As 5 melhores certificações de nuvem para dar o pontapé inicial em sua carreira em 2024

Explore as melhores certificações de nuvem para 2024 em nosso guia abrangente. Descubra como certificações como AWS, Azure e CompTIA Cloud+ podem impulsionar sua carreira.
Matt Crabtree's photo

Matt Crabtree

9 min

blog

Os prós e contras de usar LLMs na nuvem versus executar LLMs localmente

Principais considerações para selecionar a estratégia de implementação ideal para LLMs.
Abid Ali Awan's photo

Abid Ali Awan

8 min

blog

O que é o Microsoft Fabric?

Descubra como o Microsoft Fabric revoluciona a análise de dados e saiba como seus principais recursos capacitam as empresas a tomar decisões orientadas por dados.
Kurtis Pykes 's photo

Kurtis Pykes

10 min

See MoreSee More