Edge computing (em português, computação de borda) é um modelo de computação distribuída que aproxima a computação e o armazenamento de dados das fontes de dados. De forma mais ampla, refere-se a qualquer design que empurre a computação fisicamente para mais perto de um usuário, a fim de reduzir a latência em comparação a quando uma aplicação é executada em um data center centralizado. O termo começou a ser usado na década de 1990 para descrever redes de entrega de conteúdo (CDNs) — estas eram usadas para entregar conteúdo de sites e vídeos a partir de servidores localizados próximos aos usuários. No início dos anos 2000, esses sistemas expandiram seu escopo para hospedar outras aplicações, levando aos primeiros serviços de computação de borda. Esses serviços podiam realizar tarefas como localizar revendedores, gerenciar carrinhos de compras, coletar dados em tempo real e inserir anúncios. A Internet das coisas (IoT), onde dispositivos estão conectados à Internet, é frequentemente associada à computação de borda.
Definição A computação de borda envolve a execução de programas de computador que fornecem respostas rápidas próximas ao local onde as solicitações são feitas. Karim Arabi, durante uma palestra no IEEE DAC 2014 e posteriormente em um seminário no MIT MTL em 2015, descreveu a computação de borda como a computação que ocorre fora da nuvem, na borda da rede, particularmente para aplicações que necessitam de processamento imediato de dados. A computação de borda é frequentemente equiparada à computação em névoa (fog computing), particularmente em instalações menores. No entanto, em implantações maiores, como smart cities, a computação em névoa serve como uma camada distinta entre a computação de borda e a computação em nuvem, com cada camada tendo suas próprias responsabilidades. O relatório "The State of the Edge" explica que a computação de borda foca em servidores localizados perto dos usuários finais. Alex Reznik, presidente do comitê de padrões MEC ISG da ETSI, define 'borda' (edge) de forma ampla como qualquer coisa que não seja um data center tradicional. No jogo em nuvem, os nós de borda, conhecidos como "gamelets", estão tipicamente a um ou dois saltos de rede do cliente, garantindo tempos de resposta rápidos para jogos em tempo real. A computação de borda pode usar tecnologia de virtualização para simplificar a implantação e o gerenciamento de várias aplicações em servidores de borda.
Conceito Em 2018, esperava-se que os dados do mundo crescessem 61 por cento, atingindo 175 zettabytes até 2025. De acordo com a empresa de pesquisa Gartner, cerca de 10 por cento dos dados gerados por empresas são criados e processados fora de um data center centralizado tradicional ou nuvem. Até 2025, a empresa prevê que esse número chegará a 75 por cento. O aumento de dispositivos de IoT na borda da rede está produzindo uma quantidade massiva de dados — armazenar e usar todos esses dados em data centers em nuvem leva os requisitos de largura de banda da rede ao limite. Apesar das melhorias na tecnologia de redes, os data centers não conseguem garantir taxas de transferência e tempos de resposta aceitáveis, o que geralmente é um requisito crítico para muitas aplicações. Além disso, dispositivos na borda consomem constantemente dados provenientes da nuvem, forçando as empresas a descentralizar o armazenamento de dados e a prestação de serviços, aproveitando a proximidade física com o usuário final. De forma semelhante, o objetivo da computação de borda é mover a computação dos data centers em direção à borda da rede, explorando objetos inteligentes, telefones celulares ou gateways de rede para realizar tarefas e fornecer serviços em nome da nuvem. Ao mover serviços para a borda, é possível fornecer cache de conteúdo, entrega de serviços, armazenamento persistente de dados e gerenciamento de IoT, resultando em melhores tempos de resposta e taxas de transferência. Ao mesmo tempo, a distribuição da lógica para diferentes nós da rede introduz novos problemas e desafios.
Privacidade e segurança A natureza distribuída deste paradigma introduz uma mudança nos esquemas de segurança usados na computação em nuvem. Na computação de borda, os dados podem viajar entre diferentes nós distribuídos conectados via internet e, portanto, exigem mecanismos de criptografia especiais independentes da nuvem. Essa abordagem minimiza a latência, reduz o consumo de largura de banda e melhora a capacidade de resposta em tempo real para as aplicações. Os nós de borda também podem ser dispositivos com recursos limitados, restringindo a escolha em termos de métodos de segurança. Além disso, é necessária uma mudança da infraestrutura centralizada de cima para baixo para um modelo de confiança descentralizado. Por outro lado, ao manter e processar dados na borda, é possível aumentar a privacidade minimizando a transmissão de informações sensíveis para a nuvem. Além disso, a propriedade dos dados coletados muda dos provedores de serviços para os usuários finais.
Escalabilidade A escalabilidade em uma rede distribuída deve enfrentar diferentes problemas. Primeiro, deve levar em conta a heterogeneidade dos dispositivos, que possuem diferentes restrições de desempenho e energia, a condição altamente dinâmica e a confiabilidade das conexões em comparação com a infraestrutura mais robusta dos data centers em nuvem. Além disso, os requisitos de segurança podem introduzir latência adicional na comunicação entre os nós, o que pode retardar o processo de escalonamento. Técnicas avançadas de agendamento (scheduling) podem aumentar a utilização efetiva dos recursos de borda e escalonar o servidor de borda atribuindo recursos mínimos a cada tarefa transferida (offloaded).
Confiabilidade O gerenciamento de failovers é crucial para manter um serviço ativo. Se um único nó cair e ficar inacessível, os usuários ainda devem ser capazes de acessar um serviço sem interrupções. Além disso, os sistemas de computação de borda devem fornecer ações para se recuperar de uma falha e alertar o usuário sobre o incidente. Para esse fim, cada dispositivo deve manter a topologia da rede de todo o sistema distribuído, para que a detecção de erros e a recuperação se tornem facilmente aplicáveis. Outros fatores que podem influenciar este aspecto são as tecnologias de conexão em uso, que podem fornecer diferentes níveis de confiabilidade, e a precisão dos dados produzidos na borda, que podem ser não confiáveis devido a condições ambientais específicas. Como exemplo, um dispositivo de computação de borda, como um assistente de voz, pode continuar a fornecer serviço aos usuários locais mesmo durante interrupções no serviço de nuvem ou na internet.
Velocidade A computação de borda traz recursos computacionais analíticos para perto dos usuários finais e, portanto, pode aumentar a capacidade de resposta e a vazão das aplicações. Uma plataforma de borda bem projetada superaria significativamente um sistema tradicional baseado em nuvem. Algumas aplicações dependem de tempos de resposta curtos, tornando a computação de borda uma opção significativamente mais viável do que a computação em nuvem. Os exemplos variam de IoT a direção autônoma, qualquer coisa relevante para a saúde ou segurança humana/pública, ou que envolva percepção humana, como reconhecimento facial, que normalmente leva entre 370-620 ms para um humano realizar. A computação de borda tem mais probabilidade de imitar a mesma velocidade de percepção que os humanos, o que é útil em aplicações como realidade aumentada, onde o dispositivo deve preferencialmente reconhecer quem é uma pessoa ao mesmo tempo que o usuário.
Eficiência Devido à proximidade dos recursos analíticos com os usuários finais, ferramentas analíticas sofisticadas e ferramentas de inteligência artificial podem ser executadas na borda do sistema. Esse posicionamento na borda ajuda a aumentar a eficiência operacional e é responsável por muitas vantagens do sistema. Em sistemas de IA distribuídos na borda, a compressão de dados é cada vez mais reconhecida como uma camada de design fundamental para mitigar as restrições de largura de banda causadas pela troca de modelos grandes e fluxos de sensores de alta resolução. Adicionalmente, o uso da computação de borda como um estágio intermediário entre os dispositivos clientes e a internet resulta em economia de eficiência que pode ser demonstrada no seguinte exemplo: um dispositivo cliente requer processamento computacional intensivo em arquivos de vídeo a ser realizado em servidores externos. Ao usar servidores localizados em uma rede de borda local para realizar esses cálculos, os arquivos de vídeo só precisam ser transmitidos na rede local. Evitar a transmissão pela internet resulta em economia significativa de largura de banda e, portanto, aumenta a eficiência. Outro exemplo é o reconhecimento de voz. Se o reconhecimento for realizado localmente, é possível enviar o texto reconhecido para a nuvem em vez de gravações de áudio, reduzindo significativamente a quantidade de largura de banda necessária.
Aplicações Os serviços de aplicação de borda reduzem os volumes de dados que devem ser movidos, o tráfego consequente e a distância que os dados devem percorrer. Isso proporciona menor latência e reduz os custos de transmissão. A transferência de computação (computation offloading) para aplicações em tempo real, como algoritmos de reconhecimento facial, mostrou melhorias consideráveis nos tempos de resposta, conforme demonstrado em pesquisas iniciais. Pesquisas adicionais mostraram que o uso de máquinas ricas em recursos chamadas cloudlets ou micro data centers perto de usuários móveis, que oferecem serviços tipicamente encontrados na nuvem, proporcionou melhorias no tempo de execução quando algumas das tarefas são transferidas para o nó de borda. Por outro lado, transferir todas as tarefas pode resultar em lentidão devido aos tempos de transferência entre dispositivo e nós, portanto, dependendo da carga de trabalho, uma configuração ideal pode ser definida. Um sistema de rede elétrica baseado em IoT permite a comunicação de eletricidade e dados para monitorar e controlar a rede elétrica, o que torna o gerenciamento de energia mais eficiente. Outras aplicações notáveis incluem carros conectados, carros autônomos, cidades inteligentes, Indústria 4.0, automação residencial, mísseis, sistemas de satélites, bem como frameworks como MediaPipe. O campo crescente da inteligência artificial de borda (edge AI ou inteligência de borda, às vezes referida como "IA local" ou "IA no dispositivo") implementa inteligência artificial em um ambiente de computação de borda, no dispositivo ou próximo de onde os dados são coletados.
Ver também
Referências