Melhores maneiras de descobrir servidores em uma nuvem pública? [fechadas]

1

Eu quero fazer uma imagem do servidor Ubuntu para rodar em uma nuvem pública que descobre quando outros servidores da mesma imagem ficam online. Eu criei esta lista de soluções, mas não tenho certeza do que é melhor?

Soluções possíveis:

  • Multicast de camada 2 com protocolo de descoberta de camada de link (LLDP) muito parecido com o CDP
  • Atribuir um endereço de link local para si próprio e enviar uma transmissão
  • Avahi (uma implementação do zeroconf no linux, muito parecida com o Bonjour da Apple)
  • Use servidores de rastreamento do servidor DHCP

Mais possíveis soluções: (os servidores já devem ter um endereço IP)

  • Difusão / multicast SNMP
  • Mensagens multicast SSDP (Simple Service Discovery Protocol) (usadas no UPnP)
  • Não tenho certeza, mas talvez m (ulticast) DNS ou DNS-SD (descoberta de serviço)

Existe mais alguma maneira de descobrir nós? O que é comumente feito em grandes clusters de nuvem?

    
por dan 08.10.2014 / 22:32

2 respostas

6

Os provedores de nuvem pública geralmente não oferecem suporte a métodos de transmissão / difusão seletiva, portanto, qualquer solução que se baseie neles não será "melhor". Pelo menos para valores de 'melhor' que incluam componentes significativos de independência de plataforma.

No unicast-land, você tem várias opções e depende muito do que você deseja fazer com essas imagens e de qual serviço está realmente realizando a descoberta.

Se você estiver totalmente em um único provedor de infraestrutura em nuvem, a maneira mais comum é perguntar à infraestrutura sobre o que está lá . Você obterá uma lista de servidores, com endereço IP, que você poderá usar para criar seu cluster dinâmico.

Se você não puder fazer isso por algum motivo, talvez esteja em vários provedores ou precise de uma lista de hosts conhecidos, você terá que usar algum método específico de construção de aplicativos. um cluster dinâmico. Os métodos para isso são vários, mas eu vi:

  • Forneça algumas dicas para os nós verificarem quando eles ficarem online, e o aplicativo manterá uma lista de checkins e fará pulsação para garantir que apenas os nós ativos estejam na lista. Pense nisso como semeadores bit-torrent.
  • Registros de serviço com um serviço de registro de serviço real, dos quais você listou alguns.
  • Registros de serviço com serviço de registro próprio, como algo separado do Redis.

O que é melhor para você depende do que você está fazendo. Mas vá para as pesquisas de API primeiro e só fique chique se elas não funcionarem para você.

    
por 08.10.2014 / 23:09
3

Pelo que entendi, a maneira correta de fazer isso é usando a API que seu provedor de nuvem oferece a você. Tentando fazer isso dos anfitriões é um pouco território de "pedra-machado". Use a infraestrutura agradável da era espacial que você está pagando.

    
por 08.10.2014 / 23:06