Cloud edge computing: Além do data center
Lenildo Morais – Mestre em ciência da computação pelo Centro de Informática da UFPE – Universidade Federal de Pernambuco
Por mais de uma década, a computação em nuvem centralizada foi considerada uma plataforma padrão de entrega de TI. Embora a computação em nuvem seja onipresente, os requisitos emergentes e as cargas de trabalho estão começando a expor as suas limitações. Com a sua forte visão centrada no data center, onde os recursos de computação e armazenamento são relativamente abundantes e centralizados, pouco ou nenhum pensamento foi dado à otimização do hipervisor de suporte e da pegada da plataforma de gerenciamento.
Poucos desenvolvedores de nuvem consideraram seriamente os requisitos necessários para suportar nós com recursos restritos acessíveis apenas em conexões de rede não confiáveis ou com largura de banda limitada; ou pensavam nas necessidades de aplicativos que exigem alta largura de banda, baixa latência e capacidade de computação em vários sites.
Novos aplicativos, serviços e cargas de trabalho exigem cada vez mais um tipo diferente de arquitetura, construído para suportar diretamente uma infraestrutura distribuída. Novos requisitos de disponibilidade e capacidade de nuvem em sites remotos são necessários para as exigências atuais (análise de dados de varejo, serviços de rede) e as inovações de amanhã (cidades inteligentes). A maturidade, robustez, flexibilidade e simplicidade da nuvem agora precisam ser estendidas em vários sites e redes para lidar com as demandas em evolução.
Recentemente, as empresas começaram a aplicar a administração simplificada e a flexibilidade das arquiteturas de computação em nuvem a infraestruturas distribuídas que abrangem vários sites e redes. As organizações têm uma necessidade emergente de usar os recursos de nuvem nas WAN e em implantações cada vez menores na borda da rede. Embora essa abordagem esteja em seus primórdios, está ficando claro que muitos casos e cenários de uso emergentes se beneficiariam de arquiteturas distribuídas.
O que é a computação cloud edge?
Existem muitas definições sobrepostas e às vezes conflitantes de computação de borda. Mas, para os nossos propósitos, a visão mais madura da computação de ponta é que ela oferece aos desenvolvedores de aplicativos e provedores de serviços recursos de computação em nuvem, bem como um ambiente de serviços de TI na borda de uma rede.
O objetivo é fornecer computação, armazenamento e largura de banda muito mais próximos das entradas de dados e/ou usuários finais. Um ambiente de computação de borda é caracterizado por latência potencialmente alta entre todos os sites e largura de banda baixa e não confiável – juntamente com recursos de entrega de serviços distintos e funcionalidades de aplicativos que não podem ser atendidas com um pool de recursos centralizados em data centers distantes.
Ao mover algumas ou todas as funções de processamento para mais perto do usuário final ou ponto de coleta de dados, a computação em nuvem pode atenuar os efeitos de sites amplamente distribuídos, minimizando o efeito da latência nos aplicativos.
A computação de borda surgiu pela virtualização de serviços de rede em WANs, afastando-se do data center. Os casos de uso iniciais foram motivados pelo desejo de promover uma plataforma flexível e ferramentas simples.
À medida que surgem novos recursos de computação de borda, vemos um paradigma em mutação para a computação – que não é mais necessariamente limitado pela necessidade de construir centros de dados centralizados. Em vez disso, para determinados aplicativos, a computação em nuvem leva as lições da virtualização e da cloud e cria a capacidade de ter potencialmente milhares de nós distribuídos massivamente que podem ser aplicados a diversos casos de uso, como IoT industrial ou até mesmo redes de monitoramento distantes para rastrear o uso de recursos hídricos em tempo real em milhares ou milhões de locais.
Muitas capacidades proprietárias e de código aberto de computação de borda já existem sem depender da nuvem distribuída – alguns fornecedores se referem a isso como “borda do dispositivo”. Componentes dessa abordagem incluem elementos como gateways IoT ou dispositivos NFV. Porém, cada vez mais, os aplicativos precisam da versatilidade da nuvem no limite, embora as ferramentas e arquiteturas necessárias para a construção de infraestruturas de borda distribuída ainda estejam engatinhando. Nossa visão é que o mercado continuará a exigir melhores recursos para a computação em nuvem. Os recursos de computação de borda incluem, mas não estão limitados a:
- Um paradigma operacional consistente em diversas infraestruturas.
- A capacidade de executar em um ambiente massivamente distribuído (pense em milhares de locais globais).
- A necessidade de fornecer serviços de rede para clientes localizados em locais remotos distribuídos globalmente.
- Requisitos de integração de aplicativos, orquestração e entrega de serviços.
- Limitações de hardware e restrições de custo.
- Conexões de rede limitadas ou intermitentes.
- Métodos para endereçar aplicativos com requisitos rígidos de baixa latência (realidade aumentada/realidade virtual, voz e assim por diante).
- Geofencing e requisitos para manter dados confidenciais locais.
Uma exploração mais profunda das considerações sobre a cloud edge
A “borda” da computação de borda se refere à periferia de um domínio administrativo, o mais próximo possível de fontes de dados ou usuários finais. Este conceito se aplica a redes de telecomunicações, a grandes empresas com pontos de presença distribuídos, como o retalho, ou a outras aplicações, em particular no contexto da IoT.
Uma das características da computação de borda é que o aplicativo é fortemente associado à localização da borda. Para as telecomunicações, “a borda” se referiria a um ponto próximo ao usuário final, mas controlado pelo provedor, potencialmente tendo alguns elementos de cargas de trabalho em execução nos dispositivos do usuário final. Para grandes empresas, “o limite” é o ponto em que o aplicativo, serviço ou carga de trabalho é usado (por exemplo, uma loja de varejo ou uma fábrica). Para os propósitos desta definição, a borda não é um dispositivo final com capacidade extremamente limitada para suportar até mesmo uma arquitetura de nuvem mínima, como um dispositivo IoT ou de sensor. Esta é uma consideração importante, porque muitas discussões sobre computação de borda não fazem essa distinção.
A computação de borda é semelhante à computação de data center onde:
- Inclui recursos de computação, armazenamento e rede.
- Seus recursos podem ser compartilhados por muitos usuários e muitos aplicativos.
- Beneficia da virtualização e abstração do pool de recursos.
- Beneficia da capacidade de alavancar hardware de commodity.
- Utiliza APIs para suportar a interoperabilidade.
A computação de borda difere da computação em grandes data centers onde:
- Os sites de borda são o mais próximo possível dos usuários finais. Eles melhoram a experiência em alta latência e conexões não confiáveis.
- Pode exigir hardware especializado, como plataformas GPU / FPGA para funcionalidades de realidade aumentada/realidade virtual.
- O edge pode ser dimensionado para um grande número de sites, distribuídos em locais distintos.
- A localização de um site de borda e a identidade dos links de acesso que ele encerra são significativas. Um aplicativo que precisa ser executado perto de seus usuários precisa estar na parte certa da borda. É comum que o local do aplicativo seja importante na computação de borda.
- Todo o pool de sites pode ser considerado dinâmico. Devido a sua separação física, os sites de borda serão, em alguns casos, conectados entre si e o núcleo com conexões WAN. Os sites de borda ingressarão e sairão do pool de infraestrutura ao longo do tempo.
- Os sites de borda são remotos e potencialmente não-tripulados e, portanto, devem ser administrados remotamente. As ferramentas precisam suportar o acesso intermitente da rede ao site.
- O edge suporta grandes diferenças no tamanho e na escala do site, desde a escala do data center até um único dispositivo.
- Sites de borda podem ter recursos limitado. A adição de capacidade a um site existente é restrita devido a requisitos de espaço ou energia.
- Multi-tenancy em escala maciça é necessária para alguns dos casos de uso.
- O isolamento da computação de borda das nuvens do data center pode ser necessário para garantir que os comprometimentos no domínio “nuvem externa” não afetem os serviços.
O conceito de computação de borda deve cobrir o site de borda (por exemplo, a infraestrutura de computação, rede e armazenamento), mas também os aplicativos (cargas de trabalho) executados nele. Vale notar que qualquer aplicativo em um ambiente de computação de borda pode potencializar qualquer um ou todos os recursos fornecidos por uma nuvem – computação, armazenamento em bloco, armazenamento de objetos, rede virtual, bare metal ou contêineres.
Características
O que define a computação de borda de nuvem é a necessidade de a entrega de serviços estar mais próxima dos usuários ou das fontes de dados de terminal. Os ambientes de computação de borda funcionarão em conjunto com a capacidade principal, mas terão como objetivo oferecer uma experiência de usuário final aprimorada, sem impor demandas irracionais à conectividade com o núcleo. As melhorias são:
- Redução da latência – A latência para o usuário final pode ser menor do que se o computador estiver longe – tornando, por exemplo, desktops remotos mais responsivos ou realidade aumentada e jogos bem-sucedidos.
- Atenuação dos limites de largura de banda – A capacidade de mover cargas de trabalho para mais perto dos usuários finais ou pontos de coleta de dados reduz o efeito da largura de banda limitada em um site. Isso é especialmente útil se o serviço no nó de borda reduzir a transmissão de grandes quantidades de dados para o núcleo para processamento, como costuma ser o caso das cargas de trabalho de IoT e NFV. A redução de dados e o processamento local podem ser traduzidos em aplicativos mais responsivos e reduzem o custo do transporte de Terabytes de dados por longas distâncias.
- Mas há trade-offs – Para fornecer computação de ponta, é necessário aumentar muito o número de implantações. Isso institui um desafio significativo para implantações de ponta amplamente difundidas. Se gerenciar uma única nuvem leva uma equipe de dez, como uma organização pode lidar com centenas ou mesmo milhares de pequenas nuvens? Alguns requisitos incluem:
1) A padronização e a consistência da infraestrutura. Cada local tem que ser semelhante; uma quantidade conhecida.
2) A capacidade de gerenciamento automatizada. A implantação, substituição e qualquer falha recuperável devem ser simples e diretas.
3) Planos simples e econômicos, em caso de falha no hardware.
4) Projetos locais tolerantes a falhas podem ser importantes, particularmente em ambientes remotos ou inacessíveis – a infraestrutura de toque zero é desejável. Essa é uma pergunta que equilibra o custo de comprar e executar hardware redundante contra o custo de interrupções e reparos de emergência.
Casos de uso
Existem muitas maneiras de caracterizar casos de uso e este artigo é muito curto para fornecer uma lista exaustiva. Mas aqui estão alguns exemplos para ajudar a esclarecer o pensamento e destacar oportunidades de colaboração.
Coleta de dados e análise
IoT, onde os dados são frequentemente coletados de uma grande rede de microssites, é um exemplo de um aplicativo que se beneficia do modelo de computação de borda. Enviar massas de dados em conexões de rede geralmente limitadas a um mecanismo de análise localizado em um data center centralizado é contraproducente; pode não ser responsivo o suficiente, contribuir para latência excessiva e desperdiçar largura de banda preciosa.
Como os dispositivos edge também podem produzir Terabytes de dados, a análise mais próxima da fonte dos dados na borda pode ser mais econômica, analisando os dados próximos à fonte e enviando apenas pequenos lotes de informações condensadas de volta aos sistemas centralizados. Há uma compensação aqui – equilibrar o custo de transportar dados para o núcleo contra a perda de algumas informações.
Segurança
Infelizmente, à medida que os dispositivos de borda se proliferam – incluindo telefones celulares e sensores IoT – novos vetores de ataque estão surgindo, aproveitando a proliferação de endpoints. A computação de borda oferece a capacidade de mover os elementos de segurança para mais perto da origem de ataque, permite aplicativos de segurança de desempenho mais alto e aumenta o número de camadas que ajudam a defender o núcleo contra violações e riscos.
Requisitos de conformidade
Conformidade abrange uma ampla gama de requisitos, passando por soberania de dados e aplicação de direitos autorais. Restringir o acesso a dados com base em limites geográficos e políticos, limitar fluxos de dados, dependendo das limitações de direitos autorais, e armazenar dados em locais com regulamentações específicas é possível e executável com infraestrutura de computação de ponta.
NFV – Virtualização da função de rede
A NFV é a essência do aplicativo de computação de borda, pois fornece funcionalidade de infraestrutura. As operadoras de telecomunicações buscam transformar os seus modelos de entrega de serviços executando funções de rede virtual, como parte ou em camadas de uma infraestrutura de computação de ponta. Para maximizar a eficiência e minimizar o custo/complexidade, a execução de NFV na infraestrutura de computação de ponta faz sentido.
Tempo real
Aplicativos em tempo real, carros conectados, telemedicina, Internet tátil indústria 4.0 e cidades inteligentes são incapazes de tolerar mais que alguns milissegundos de latência e podem ser extremamente sensíveis a jitter ou variação de latência. Como exemplo, os carros conectados precisarão de baixa latência e alta largura de banda e dependerão de computação e cache de conteúdo perto do usuário, tornando a capacidade de borda uma necessidade. Em muitos cenários, particularmente quando a automação de circuito fechado, ela é usada para manter a alta disponibilidade. Os tempos de resposta em dezenas de milissegundos são necessários e não podem ser atendidos sem a infraestrutura de computação de borda.
Imersivo
A computação de borda expande os recursos de largura de banda, desbloqueando o potencial de novos aplicativos imersivos. Alguns deles incluem imagens em 360° para verticais como cuidados de saúde. Colocar em cache e otimizar o conteúdo na borda já está se tornando uma necessidade, já que protocolos como o TCP não respondem bem a mudanças repentinas no tráfego da rede de rádio. A infraestrutura de computação de ponta, vinculada ao acesso em tempo real a informações de rádio/rede, pode reduzir os atrasos em vídeo em até 20% durante as horas de pico e também variar a taxa de transmissão de vídeo com base nas condições de rádio.
Eficiência de rede
Muitos aplicativos não são sensíveis à latência e não exigem grandes volumes de computação ou capacidade de armazenamento, para, teoricamente, rodar em uma nuvem centralizada, mas os requisitos de largura de banda e/ou computação ainda podem tornar a computação de borda mais eficiente. Algumas dessas cargas de trabalho são comuns, incluindo vigilância por vídeo e gateways de IoT, enquanto outras, como reconhecimento facial e reconhecimento de matrículas de veículos, são recursos emergentes. Com muitos deles, a infraestrutura de computação de borda não apenas reduz os requisitos de largura de banda, mas também fornece uma plataforma para funções que permitem o valor do aplicativo – por exemplo, detecção de movimento de vigilância por vídeo e reconhecimento de ameaças.
Em muitos desses aplicativos, 90% dos dados são rotineiros e irrelevantes, portanto, enviá-los para uma nuvem centralizada é proibitivamente caro e desperdiça a largura de banda da rede, que costuma ser escassa. Faz mais sentido classificar os dados na borda para anomalias e alterações e apenas relatar os dados acionáveis.
Desafios
Embora existam muitos exemplos de implementações de borda já em andamento em todo o mundo, a adoção generalizada exigirá novas formas de pensar para resolver desafios e limitações emergentes e já existentes.
Estabelecemos que a plataforma de computação de borda deve ser, por design, muito mais tolerante a falhas e robusta do que uma nuvem tradicional centrada em data center, tanto em termos de hardware quanto de serviços de plataforma que suportam o ciclo de vida da aplicação. Não podemos presumir que tais casos de uso de borda terão as instalações de manutenção e suporte que a infraestrutura de data center padrão faz. O provisionamento de toque zero, a automação e a orquestração autônoma em todas as plataformas de infraestrutura são requisitos cruciais nesses cenários. Mas há outros desafios que precisam ser levados em consideração.
Por um lado, os sistemas de gerenciamento de recursos de borda devem fornecer um conjunto de mecanismos de alto nível, cuja montagem resulta em um sistema capaz de operar e usar uma infraestrutura de IaaS distribuída geograficamente baseada em interconexões de WAN. Em outras palavras, o desafio é revisar (e estender quando necessário) os principais serviços da IaaS para lidar com as especificidades de borda mencionadas anteriormente – desconexões de rede/largura de banda, capacidades limitadas em termos de computação e armazenamento, implantações não tripuladas e assim por diante. Algumas necessidades previsíveis incluem:
- Um gerenciador de máquina virtual/contêiner/ bare-metal encarregado de gerenciar o ciclo de vida da máquina/contêiner (configuração, programação, implementação, suspensão/retomada e encerramento).
- Um gerenciador de imagem responsável por arquivos de modelo (também com imagens de máquina virtual/contêiner).
- Um gerente de rede encarregado para fornecer conectividade à infraestrutura: redes virtuais e acesso externo para usuários.
- Um gerenciador de armazenamento, fornecendo serviços de armazenamento para aplicativos de borda.
- Ferramentas administrativas, fornecendo interfaces de usuário para operar e usar a infraestrutura dispersa.
Mestre em ciência da computação e gerente de projetos na Ustore/Claro. Morais é docente no Centro Universitário Maurício de Nassau e pesquisador na Assert – Advanced System and Software Engineering Research Technologies.