Nanite é a nova adição da Ezra Zygmuntowicz à estratégia do Engine Yard cloud computing: um "cluster de montagem automática para processos ruby " para formar backends altamente escaláveis para aplicações web (veja o anuncio do Ezra).
O Nanite consiste em duas partes: agents e mappers. Agents implementam a funcionalidade da sua aplicação e são gerenciados pelos mappers, os nós de controle do seu sistema. Os agents periodicamente anunciam seu status e (por padrão) suas médias de carregamento para os mappers, então os mappers podem distribuir o trabalho para carregar menos agents. Para mais informações e exemplos, de uma olhada no arquivo Readme do Nanite.
Nanite é desenvolvido baseado no RabbitMQ, " um completo e altamente confiável System Enterprise Messaging" desenvolvido com Erlang. De acordo com um comentário no seu blog, ele também deve trabalhar com qualquer outro AMQP compatível com o middleware messaging.
InfoQ: Ezra, você está utilizando o Nanite Yard Engine?
Sim, Nanite é utilizado como um backend para nosso novo Yard Engine como uma plataforma de serviço. São utilizadas instâncias EC2 auto escaláveis conforme nosso tráfego cresce assim como sendo uma parte principal dos nossos serviços expostos para usuários para que eles possam usar agents Nanite como parte das suas aplicações sem nenhuma problema.
InfoQ: Você vê outras aplicações para o Nanite fora da web?
Nanite tem muitas aplicações fora da web, eu acho. Sempre que você precisa controlar um conjunto de recursos através de uma série de serviços Ruby Nanite é boa escolha.
InfoQ: Nós conversamos sobre Vertebra — a próxima geração da plataforma cloud computing — há alguns meses atrás, qual é a relação entre Nanite e Vertebra?
Nanite e Vertebra vão finalmente ser capaz de trabalhar juntos via conexão rabbitmq/xmpp. Nanite é mais para escalar aplicações individuais num ambiente cloud. Vertebra é mais para conectar sistemas múltiplos juntos onde cada agent do sistema poderia ser diferentes servidores clientes.
Rabbitmq é um modelo de segurança baseado em vhosts, então qualquer coisa em um vhost pode conversar com qualquer outra coisa no mesmo vhost. Isto funciona bem para ter um espaço de aplicação vhost e escalando aplicações dessa forma. Nanite é também tem mais desempenho de messaging para carregamento de aplicações onde usuários esperam pelos resultados. Vertebra acaba coordenando várias máquinas enquanto mantendo-as seguras umas para com as outras.
Nanite está disponível no GitHub, e Vertebra poderá ter sua versão open source antes do natal, perto do dia 15 de Dezembro.