Serverless

Levando a computação para o Edge com Serverless Compute

Mar 12, 202111 min read

Written by Rachel Kempf (Editor-in-Chief)

Become an expert in edge computing

Nos últimos anos, serverless e edge computing tornaram-se rapidamente símbolo de inovação no meio tecnológico devido à ampla adoção de microsserviços, ao surgimento do 5G e à demanda cada vez maior por melhores experiências do usuário. No entanto, apesar de todo o entusiasmo e interesse em torno de serverless e edge computing, o conceito ainda não está claro para muitos novatos e até mesmo para os profissionais de TI.

Com o objetivo de ajudar a desmistificar esse componente crucial da computação moderna, este post apresenta uma visão aprofundada sobre edge computing, sua relação com serverless e como o Azion Edge Application se compara a outros serviços de serverless compute do mercado.

O que é Edge Computing?

Uma brincadeira comum entre os profissionais de TI é que se você perguntar a uma dúzia de engenheiros o que significa edge computing, você obterá uma dúzia de respostas diferentes. Essa é uma das razões pelas quais a Linux Foundation criou o LFE State of the Edge, um projeto para facilitar o consenso e a colaboração entre setores em torno de edge computing. O seu Open Glossary of Edge Computing define o termo como “a entrega de recursos computacionais aos extremos lógicos de uma rede a fim de melhorar o desempenho, o custo operacional e a confiabilidade de aplicações e serviços”.

Drivers de Mercado para Edge Computing

O relatório 2020 State of the Edge Report da LFE postula edge computing como "o terceiro ato da internet", que se baseia nas tendências de regionalização que começaram durante a década de 1990, quando CDNs e data centers regionais surgiram como um meio de aumentar a velocidade de entrega e reduzir o custo de transporte de dados. A necessidade de mais largura de banda e menor latência só tem crescido desde então, devido:

  • à nossa vida digital, incluindo trabalho, comunicação, streaming de vídeo e jogos;
  • a uma explosão de dispositivos conectados à internet;
  • ao uso generalizado de infraestrutura em cloud e SaaS.

Além disso, a recente conclusão dos padrões comerciais 5G, que utilizam edge computing para a entrega de latência ultrabaixa e processamento de dados em tempo real, permitiu o lançamento de redes 5G comerciais e privadas, acelerando a adoção de edge computing.

Como resultado dessas forças motrizes, edge computing está rapidamente se tornando um imenso mercado global. De acordo com o Worldwide Edge Spending Guide, publicado pela IDC no ano passado, os gastos mundiais com edge computing deverão atingir US$ 250 bilhões em 2024.

Como Edge Computing transformará as aplicações?

Para explorar plenamente o poder de edge computing, as aplicações edge-native devem ser capazes de executar a lógica de serverless compute quando e onde for necessário. Com serverless compute, os clientes não precisam operar ou gerenciar a infraestrutura subjacente, o que em uma arquitetura de rede altamente distribuída – como edge computing – seria quase impossível. Combinar edge computing e serverless é a única forma de permitir que os clientes façam uso de recursos de edge computing de uma maneira muito fácil, com a mesma tecnologia altamente inovadora, colocando líderes de mercado e novos entrantes lado a lado.

Com serverless e edge computing, os clientes podem criar e executar microsserviços ou funções orientadas a eventos, que são mais rápidas, mais baratas, mais confiáveis e ainda atendem às regulamentações locais. Cada função é projetada para fazer bem uma coisa e escalar, independentemente de outros processos, em resposta a triggers de eventos. Essas funções podem ser stateful ou stateless e permitir escalabilidade on-demand para workloads irregulares. Além disso, a execução de código em um runtime propositalmente edge-native permite aplicações de latência ultrabaixa e um amplo número de casos de uso inovadores que possibilitam imensas melhorias na transformação digital.

Com serverless, as empresas podem construir e executar funções com edge computing, pagando apenas pelos recursos usados. Isso significa que os desenvolvedores só precisam se concentrar em escrever códigos, o que acelera o lançamento de novas aplicações e funcionalidades. Quando workloads de edge computing forem necessários na infraestrutura de dispositivos remotos ou on-premise, a orquestração zero-touch passa a ser um componente-chave para simplificar como os clientes implementam e gerenciam workloads do edge em escala, o que torna esses edge nodes altamente distribuídos totalmente gerenciados por um painel de controle centralizado ou APIs.

História da computação baseada em Serverless

A chegada de serverless compute, tal como é geralmente entendida hoje, é um conceito bastante antigo, datado de mais de 20 anos atrás, e se tornou popular com a introdução do AWS Lambda em 2014. Mas embora serverless compute ainda seja relativamente novo em popularidade, seu surgimento pode ser entendido como o auge de outros desenvolvimentos tecnológicos, incluindo o aparecimento de novos modelos de serviço, como IaaS e PaaS, e arquiteturas de microsserviços cloud-native.

De IaaS para PaaS para Serverless Compute

A popularização de cloud computing ocorreu em meados dos anos 2000 com o advento do modelo Infrastructure-as-a-Service (IaaS) – Infraestrutura como Serviço. O IaaS fornece recursos de computação virtualizados on-demand através da internet. Esse modelo de negócio rapidamente ganhou popularidade devido à sua maior elasticidade, mas mesmo assim deixou alguns recursos subutilizados. Conforme observado em um artigo do periódico Communications of the ACM, “infelizmente, o fardo de escalar foi deixado para os desenvolvedores e os designers de sistema, que normalmente usavam técnicas de superprovisionamento para lidar com picos repentinos das requisições de serviço”.

Platform-as-a-Service (PaaS), surgiu logo depois como um meio de abstrair ainda mais as complexidades, fornecendo o OS, o runtime de execução, e o middleware. Essa combinação permitiu aos engenheiros gerenciar suas aplicações e seus dados – nada mais.

O PaaS possibilitou a configuração de autoescalabilidade, mas, de acordo com o InfoQ, “mesmo se você configurar sua aplicação PaaS para autoescalabilidade, você não o fará em nível de requisições individuais”. Em contrapartida, serverless compute permite que o código seja executado como funções efêmeras leves em resposta a triggers de eventos, eliminando a necessidade de provisionar servidores dedicados.

Como resultado, serverless compute pode ser visto como a evolução natural da tendência em direção à menor complexidade, ao uso de recursos mais eficiente e a serviços pay-as-you-go.

Do monolítico a microsserviços

Cloud computing trouxe mais escalabilidade às aplicações, mas o pleno aproveitamento de seu custo e a eficiência de recursos exigiram um novo tipo de arquitetura de aplicações: microsserviços. As aplicações monolíticas tradicionais são construídas como uma única unidade e devem ser escaladas e implementadas como tal, cada uma hospedada com seu próprio sistema operacional. Dessa forma, a aplicação inteira deve ser escalada para reduzir gargalos, resultando em desperdício de custos e recursos.

Para obter um controle mais granular sobre a escalabilidade, as aplicações devem ser atomizadas em componentes menores, que podem ser implementados e escalados independentemente. O lançamento do Docker em 2013 facilitou esse processo ao fornecer uma maneira de empacotar módulos de aplicações independentes, ou microsserviços, com suas dependências em unidades fracamente acopladas que compartilham o mesmo kernel do sistema operacional.

Serverless compute leva essa tendência ainda mais longe com a criação de funções orientadas a eventos, que podem ser muito mais leves e mais fáceis de implementar e escalar. Serverless é a evolução natural da computação porque não há como alguém gerenciar uma rede altamente distribuída de computadores, como edge computing, manualmente ou com ferramentas tradicionais. Serverless fornece a camada de abstração completa, de modo que as aplicações podem ser implementadas em qualquer lugar onde você precise que sejam executadas, sem a necessidade de se preocupar com a infraestrutura subjacente.

Como o Azion Edge Application se compara às soluções de Serverless Compute padrão?

O Edge Application é o serviço de serverless compute da Azion que oferece a eficiência, a economia e a escalabilidade do serverless com o desempenho e a confiabilidade de edge computing. Combinado ao Edge Functions, permite que os desenvolvedores executem seu próprio código em todos os nossos edge nodes disponíveis globalmente ou em sua própria infraestrutura de dispositivo remoto, on-premise ou multi-cloud quando usado com nosso Edge Orchestrator.

Devido ao nosso runtime se basear propositadamente em edge computing bem como à proximidade de edge nodes com usuários finais, as Edge Functions são mais rápidas e mais eficientes em termos de recursos do que os serviços de serverless compute, como seus equivalentes tradicionais AWS Lambda, Microsoft Azure e Google Cloud Platform.

A maior diferença entre as plataformas tradicionais e as plataformas baseadas em edge é a distribuição da rede. Lambda, Azure e GCP estão concentrados dentro de enormes data centers espalhados por longas distâncias geográficas. Embora esses data centers sejam grandes e concebidos para um alto volume de tráfego e uma torrente de workloads, eles não têm a vantagem da proximidade e da cobertura. Você deve escolher um data center onde deseja executar as funções, e todos os usuários irão se conectar àquele local exato, não importando de onde os usuários o estejam acessando.

Além disso, essas plataformas tradicionais têm a desvantagem de executar funções em contêineres. Os contêineres são uma tecnologia cloud-native pesada. Eles consomem mais memória, usam mais ciclos de CPU e exigem complexidade adicional para serem executados em escala. E, claro, você está pagando por essa falta de eficiência.

Ao contrário do serverless compute baseado em contêineres, o Azion Edge Functions utiliza o Azion Cells, nosso runtime proprietário desenvolvido com base nas funcionalidades de sandboxing do V8, para manter cada função segura em um ambiente multitenant. Isso permite não apenas o uso de recursos mais eficiente do que as soluções baseadas em contêineres, mas também significa que os desenvolvedores não precisam provisionar memória para cada função com antecedência.

Além do mais, a execução de funções serverless em contêineres resulta em desempenho menos confiável. Já que os contêineres exigem servidores dedicados, sua elasticidade provém da aceleração e desaceleração. Quando uma função não é acionada há algum tempo, os provedores de serviços de serverless compute diminuem a velocidade do contêiner para poupar recursos, sendo necessário acelerar o contêiner novamente na próxima vez em que for invocado. Durante os horários de pico, isso poderia facilmente prejudicar a experiência do usuário.

Esse processo de aceleração e desaceleração irá acrescentar milissegundos significativos para fornecer respostas, resultando em um aumento de latência conhecido como cold start. Se as Edge Functions ainda não foram executadas e também não estão na memória, elas só precisam ser carregadas de um disco NVME moderno quando requisitadas, o que permite alto desempenho e confiabilidade consistentes, mesmo para workloads irregulares e durante os períodos de picos de uso.

Edge Functions têm desempenho superior, maior facilidade de uso e excelente eficiência de recursos. Além disso, o Edge Functions mitiga o risco de lock-in frequentemente enfrentado por clientes de serverless. É baseado em tecnologia de padrões abertos, como o padrão JavaScript da ECMA, Fetch API com padrões MDN e também WebAssembly, proporcionando total interoperabilidade entre diferentes plataformas e software de código aberto.

Conclusão

Edge Computing habilita recursos fundamentais, tais como aplicações de latência ultrabaixa e processamento de dados em tempo real, necessários para aplicações e serviços de próxima geração. De modo geral, edge computing é mais rápido, mais econômico e mais confiável do que outros serviços de serverless compute, além de oferecer a capacidade de atender às regulamentações locais, independentemente de onde você esteja.

Na Azion, tornamos mais fácil construir melhores aplicações com maior rapidez, e você pode executar seus workloads espalhados pela rede edge globalmente distribuída da Azion, ou onde você precisar: incluindo infraestrutura de dispositivo remoto, on-premise e multi-cloud.

Conforme observado pela Forbes, “implementar edge computing reduz significativamente os custos de largura de banda da internet, armazenamento de dados e poder computacional dos servidores, pois faz a maior parte do trabalho on-board sem a necessidade de enviar e receber dados dos servidores”.

Esses benefícios-chave, juntamente com a automação, a elasticidade e o custo-benefício proporcionados pelas aplicações edge-native, se refletem na lista do International Banker sobre as quatro razões pelas quais edge computing será cada vez mais crucial no futuro:

  • impulsionar a próxima revolução industrial em manufatura e serviços;
  • otimizar a captura e análise de dados para fornecer inteligência de negócios acionável;
  • tornar os processos e sistemas de negócios mais flexíveis, escaláveis, seguros e automatizados;
  • promover um ecossistema de negócios mais eficiente, mais rápido, econômico e fácil de gerenciar.

Com o Azion Edge Functions, os clientes obtêm todos os benefícios de construir e executar aplicações serverless no edge:

  • facilidade de uso;
  • escalabilidade;
  • baixa latência;
  • confiabilidade;
  • economia;
  • eficiência de recursos.

Edge Functions está disponível para todos os usuários Azion. Crie hoje uma conta de teste gratuita e coloque o Edge Functions para trabalhar para você.

Was this article helpful?