Tech Insights

Edge Cluster: deixe sua solução de IoT mais confiável

Saiba como aumentar a confiabilidade de aplicações na edge usando clusters. Ganhe eficiência e reduza o tempo de inatividade.

TagoIO Team ·
Edge Cluster: deixe sua solução de IoT mais confiável

Você provavelmente já assistiu Vida de Inseto ou qualquer outro desenho que mostra como a união de pequenas partes pode criar algo extraordinário. Esse conceito também vale para o mundo dos negócios e da tecnologia. Um edge cluster é um ótimo exemplo de como reunir CPU, servidores e edge computers para criar um ambiente de computação mais rápido e confiável.

Como as aplicações de IoT costumam exigir computadores de baixo custo que processam milhares, ou até milhões, de requisições e informações diárias de muitos dispositivos, implementar um IoT edge cluster pode resolver vários dos desafios que sua aplicação encontra pelo caminho.

Apesar de ser possível implementar clusters na nuvem, existem vários motivos para que eles sejam uma excelente opção para edge computing. Entre eles, escalar e processar mais dados sem armazená-los na nuvem ajuda bastante a manter a conformidade regulatória e a residência de dados.

Outro fator importante é que os edge clusters podem ter alta disponibilidade graças às opções de redundância, além da possibilidade de adicionar e substituir nós.

O que é um cluster?

Clusters são grupos de nós independentes que trabalham juntos para alcançar um objetivo comum. Os nós são computadores ou servidores, e você pode montar um cluster usando qualquer computador, do hardware mais simples ao mais avançado.

Vale destacar que seus clusters tendem a ser mais resilientes e a funcionar melhor se todos os computadores tiverem a mesma configuração.

Como funciona?

Um sistema de cluster divide as requisições ou tarefas entre os diferentes nós, evitando que o sistema sobrecarregue um único computador, já que ele equilibra a carga de trabalho.

O sistema de cluster ideal manteria todos os computadores trabalhando com a mesma capacidade.

Em clusters que hospedam software com arquitetura cliente-servidor, como HTTP, TCP, UDP, MQTT e Socket, normalmente deve haver um sistema de balanceamento de carga na frente dos nós para orquestrar as requisições e distribuir a carga entre todos os nós usando algoritmos, além de verificar a disponibilidade de cada nó.

Alguns algoritmos de clustering têm um mecanismo de eleição para escolher um nó líder (head node); esse nó então compartilha parâmetros e configurações com os outros membros do cluster. Ele é a “fonte da verdade” para todos os membros, o que significa que, quando alguma configuração muda, todos os membros precisam mudar junto.

Diferenciando clusters

Existem muitos pontos de vista que você pode usar para diferenciar um cluster de computadores de outro. Vamos falar apenas da topologia, e as duas topologias de cluster mais comuns no mercado hoje são estrela e malha.

Uma topologia em malha é composta por vários nós que se interconectam uns com os outros. Esse tipo de cluster é usado quando você quer que todos os nós tenham a mesma disponibilidade, ou seja, se um deles falhar, o outro assume.

Já uma topologia em estrela é composta por um nó líder central que conecta todos os outros. Esse tipo de cluster é usado quando você quer ter um ponto de controle para a sua rede, ou quando não quer que todos os nós sejam afetados quando um deles falha.

Topologia de cluster em malha e em estrela

O que as pessoas buscam ao usar um edge cluster?

Como já dito, os clusters oferecem vários recursos que as pessoas procuram em edge computing. Selecionamos cinco para comentar: balanceamento de carga, alta disponibilidade, alta performance, redundância e escalabilidade.

Balanceamento de carga do cluster

O balanceamento de carga é uma tecnologia que distribui a carga de trabalho de forma uniforme entre todos os nós de um sistema; ele garante que nenhum nó fique sobrecarregado, o que é fundamental.

Existem muitos algoritmos e técnicas de balanceamento de carga no mercado. Alguns exemplos:

  • Round-robin: o mais básico; as requisições são distribuídas sequencialmente entre o grupo de servidores.

  • Baseado em recursos: usa um software especializado em cada nó para verificar a CPU e a memória disponíveis e escolher o melhor.

  • Tempo de resposta ponderado: esse algoritmo escolhe o nó que responde mais rápido a uma verificação de integridade.

  • Menos conexões: como o nome sugere, o sistema envia as requisições para o nó com a menor quantidade de conexões.

  • Aleatório: de novo, o nome já diz tudo. Esse algoritmo distribui as requisições de forma aleatória, mas equilibrada, entre os nós.

Alta disponibilidade

Um dos objetivos dos clusters é oferecer alta disponibilidade dos serviços. Se algum nó ou servidor falhar, os outros continuam trabalhando para manter o serviço no ar. Essa característica costuma ser essencial em aplicações de missão crítica.

Alta performance

Um resultado lógico de usar cinco computadores para fazer o trabalho de um é aumentar a performance. Ambientes de edge se beneficiam disso, já que o hardware costuma ser mais fraco e, em alguns casos, não dá para processar os dados na nuvem.

Redundância

Essa é curiosa, porque mesmo que seu sistema não precise de todos os outros recursos apresentados, ele pode precisar deste. Quando parte da sua aplicação é vital ou não pode parar por nenhum motivo, ter um sistema de cluster pode ser uma solução viável. Se um dos nós falhar, o sistema de balanceamento de carga direciona a requisição, ou os dados, para outro computador.

Escalabilidade

Escalabilidade é a capacidade de um sistema aumentar ou reduzir sua capacidade conforme a demanda exige. É provavelmente um dos principais motivos para as pessoas usarem clusters, já que eles são compostos por vários nós que podem ser adicionados ou removidos sem afetar a disponibilidade do serviço.

Implementando um IoT edge cluster

Escalabilidade, alta redundância, alta performance e alta disponibilidade são todos ótimos motivos para implementar um cluster dentro da sua aplicação de IoT, mas como fazer isso?

O primeiro passo é entender quais são seus requisitos específicos. Neste caso, precisamos de um sistema em que qualquer nó possa processar dados e requisições de forma independente. Também precisamos de uma forma de continuar adicionando nós conforme a aplicação cresce, sem afetar sua disponibilidade.

Implementamos um cluster dentro dos labs da TagoIO. A imagem abaixo mostra nosso cluster com três ROCK PI 4 funcionando como nós rodando TagoCore e um Raspberry Pi rodando um balanceador de carga (Nginx), que também é um LoRa gateway.

Cluster de ROCK PI 4 no escritório da TagoIO

O modo cluster do TagoCore usa a TagoIO como “head node”. Nenhuma requisição de dispositivo é enviada para a nuvem, e o cluster só usa o serviço da TagoIO para sincronizar configurações e como ponte de mensagens entre os nós. É muito fácil implantar um cluster na edge; veja o diagrama abaixo:

Diagrama de cluster usando TagoCore

Como a TagoIO pode ajudar?

Quando você roda o TagoCore como cluster, todas as instâncias ficam sincronizadas, o que significa que, ao instalar um plugin em uma instância, todas as outras também o instalam. Se você mudar qualquer configuração, ela será replicada em todos os nós do seu cluster.

IoT edge cluster com TagoCore

Com o recurso de cluster do TagoCore, o serviço de nuvem da TagoIO é responsável por gerenciar e sincronizar cada instância do seu cluster. Isso torna fácil implantar um cluster em qualquer lugar, sem a dor de cabeça de configurar e manter a infraestrutura do cluster. Cada nova instância que você inicia usando o recurso de cluster vai sincronizar e ficar pronta para começar a receber requisições.

Além disso, a instância não precisa estar na mesma infraestrutura, ou seja, você pode distribuir as instâncias do seu cluster entre regiões e diferentes máquinas na nuvem ou on-premise.

Como nenhuma requisição de dispositivo é encaminhada para a nuvem da TagoIO, você mesmo precisará configurar um balanceador de carga. Para isso, dá para usar o serviço Apache, o Nginx, o AWS ELB e outros.

Quer saber mais?

Para mais informações sobre o TagoCore, confira nosso webinar “Installing and Configuring TagoCore on edge devices” e visite a página do TagoCore.

Usuários do TagoCore conseguem implementar um cluster dentro do seu ambiente de IoT on-premise sem complicação, então aproveite os recursos de cluster da nossa plataforma open source! Quer ir além? Mostre os dados coletados pelas suas instâncias de TagoCore em dashboards usando a plataforma de nuvem da TagoIO, ou distribua esses dados para seus clientes com o TagoRUN, nossa plataforma whitelabel, sem armazenar dados de dispositivos na nuvem.

Só com o TagoCore você tem controle dos dados, segurança, privacidade, confiabilidade e facilidade de uso. E o melhor: é Open Source!