Você sabe o que é cluster? ⠀
Palavra em inglês que significa “aglomerar”, “agrupar”, dentro da Tecnologia da Informação (TI), cluster significa integrar dois ou mais computadores para que trabalhem simultaneamente no processamento de uma determinada tarefa.⠀
⠀
Saber o que é cluster consiste em entender que se trata da conexão entre dois ou mais computadores com o propósito de melhorar o desempenho dos sistemas na execução de diferentes tarefas.⠀
⠀
Em quais situações essa solução é útil?
Os nodos costumam ser computadores simples de desempenho mediano, portanto, os Clusters se mostram uma alternativa de poder usufruir mais dessas máquinas.
Com a junção desses computadores, configura-se um sistema de processamento capaz de realizar funções que seriam muito mais custosas se fossem feitas por computadores mais rebuscados.
Além disso, os Clusters são utilizados quando os conteúdos são críticos ou os serviços precisam de disponibilidade e processamento imediatos, como por exemplo provedores de internet ou sites e-commerce, que demandam alta disponibilidade e balanceamento de carga de forma escalável.
Certamente você já assistiu Titanic. O filme campeão de diversas premiações teve os gráficos renderizados numa plataforma de Cluster Paralelo nos laboratórios da Digital Domain.
Diversas organizações, pesquisadores e empresas dos mais variados segmentos utilizam clusters para aumentar seus níveis de operações.
Quais são os modelos de Cluster?
O Cluster se apresenta como uma alternativa para atividades ininterruptas, como sistema bancário, em que não pode haver perda de dados.
Cada modelo pode ser mais especificamente uma solução melhor do que outro dependendo da atividade. Os principais modelos são:
- High Performance Computing Cluster(Cluster de Alto Desempenho);
- High Availability Computing Cluster(Cluster de Alta Disponibilidade);
- Load Balancing Cluster(Cluster de Balanceamento de Carga);
- Combinação High Availabilty e Load Balancing;
- Processo Distribuído/Processo Paralelo.
1 – High Performance Computing Cluster(Alto Desempenho):
Esse modelo é usado para aplicações quando o assunto é processamento, pois é capaz de analisar dados e realizar cálculos complexos num curto período de tempo.
Portanto, o Cluster de Alto Desempenho permite processamentos tenham bons resultados num curto período de tempo mesmo que haja milhões de instruções numa só tarefa.
2 – High Availability Computing Cluster(Alta Disponibilidade):
O Cluster de Alta Disponibilidade tem como objetivo manter o funcionamento das aplicações. Por exemplo: Conforme dito acima, um dos motivos do Cluster ser escolhido é não poder ter pausa nas atividades, correto? Portanto, o Cluster de Alta Disponibilidade faz com que a paralisação seja a menor possível caso o sistema pare de funcionar.
Para atender esta demanda, este modelo trabalha com ferramentas de monitoramento, replicação de sistemas e computadores para substituição das máquinas que tiverem algum tipo de problema, além de, evidentemente, geradores de energia.
3 – Load Balancing Cluster(Balanceamento de Carga):
Todos os nodos se responsabilizam pelas tarefas que estão sendo executadas, sendo o tráfego de requisições entrante ou de recursos, estes são distribuídos para os nodos desse sistema.
Toda a força desse tipo de arquitetura é realizada através do resultado da união de todos os recursos unidos. Além disso, o modelo Load Balancing prioriza a performance, ou seja, caso algum nodo falhe, ele é retirado do sistema e a tarefa é distribuída entre os demais.
Empresas que atendem alta demanda em sites, que usam torres de servidores (webfarm) usam o modelo Load Balancing.
4 – Combinação High Availabilty e Load Balancing:
Não é necessário usar apenas um dos modelos citados. Usa-se conforme a necessidade da demanda, por isso, é possível combinar as características desses dois modelos.
Como por exemplo, servidores web, FTD ou e-mails precisam de ambas funcionalidades para funcionar.
5 – Processo Distribuído/Processo Paralelo:
O Processo Paralelo aumenta a disponibilidade e desempenho para as aplicações, que costumam ser de grandes tarefas. Essas grandes tarefas podem ser divididas em pequenas tarefas distribuídas ao redor dos nodos como se fossem um supercomputador paralelo. Por isso, esse modelo é bastante associado ao Beowulf da NASA e são usados para computação científica e análise financeiras, tarefas que demandam muito poder de processamento.
Nós fizemos um vídeo também no youtube falando sobre o tema, fique a vontade para conferir por lá.