O que é computação distribuída?

Computação distribuída corresponde ao método de fazer vários computadores trabalharem juntos para resolver um problema comum. Isso faz com que uma rede de computadores pareça um único computador poderoso que fornece recursos em grande escala para lidar com desafios complexos.

Por exemplo, a computação distribuída pode criptografar grandes volumes de dados, resolver equações físicas e químicas com muitas variáveis e renderizar animações de vídeo tridimensionais de alta qualidade. Sistemas distribuídos, programação distribuída e algoritmos distribuídos são alguns outros termos, todos eles se referindo à computação distribuída. 

Quais são as vantagens da computação distribuída?

Os sistemas distribuídos trazem muitas vantagens quando comparados a um sistema único de computação. Veja algumas delas a seguir.

Escalabilidade

Os sistemas distribuídos podem crescer com suas workloads e requisitos. Você pode adicionar novos nós, ou seja, mais dispositivos de computação, à rede de computação distribuída quando for necessário.

Disponibilidade

O sistema de computação distribuído não sofrerá impacto se um dos computadores falhar. O projeto apresenta tolerância a falhas porque pode continuar funcionando mesmo se computadores individuais falharem.

Consistência

Os computadores em um sistema distribuído compartilham informações e duplicam dados entre eles, mas o sistema gerencia automaticamente a consistência de dados em todos os computadores. Assim, você recebe o benefício da tolerância a falhas sem que haja comprometimento da consistência de dados.

Transparência

Os sistemas de computação distribuída fornecem separação lógica entre o usuário e os dispositivos físicos. Você pode interagir com o sistema como se fosse um único computador, sem se preocupar com o ajuste e a configuração de máquinas individuais. Você pode ter diferentes hardwares, middlewares, softwares e sistemas operacionais que trabalham em conjunto para que seu sistema funcione sem problemas.

Eficiência

Os sistemas distribuídos oferecem uma performance mais rápida com uso otimizado dos recursos do hardware subjacente. Como resultado, você pode gerenciar quaisquer workloads sem se preocupar com falhas do sistema devido a picos de volume ou a subutilização de um hardware dispendioso.

Quais são alguns casos de uso de computação distribuída?

Atualmente, a computação distribuída está em toda parte. As aplicações móveis e Web são exemplos do uso da computação distribuída, pois diversas máquinas trabalham juntas no back-end para que a aplicação forneça as informações adequadas. No entanto, quando se aumenta a escala vertical dos sistemas distribuídos, eles podem resolver desafios mais complexos. Vamos explorar algumas maneiras pelas quais diferentes setores usam aplicações distribuídas de alta performance.

Saúde e ciências biológicas

O setor de saúde e ciências biológicas usa a computação distribuída para criar modelos e simulações de dados complexos das ciências biológicas. Análises de imagens, pesquisas de medicamentos e análises de estruturas genéticas tornaram-se mais rápidas com os sistemas distribuídos. Há alguns exemplos:

  • Agilização do desenvolvimento de medicamentos baseados em estruturas com a visualização de modelos moleculares em três dimensões.
  • Redução dos tempos de processamento de dados genômicos para a obtenção de informações iniciais sobre câncer, fibrose cística e mal de Alzheimer.
  • Desenvolvimento de sistemas inteligentes que auxiliam os médicos no diagnóstico de pacientes ao processar um grande volume de imagens complexas, como ressonâncias magnéticas, raios-X e tomografias computadorizadas.

 

Pesquisas no setor de engenharia

Os engenheiros podem simular conceitos complexos de física e mecânica em sistemas distribuídos. Eles usam essas pesquisas para melhorar o projeto do produto, construir estruturas complexas e projetar veículos mais rápidos. Veja alguns exemplos:

  • As pesquisas sobre a dinâmica de fluidos computacional estudam o comportamento de líquidos e implementam esses conceitos no projeto de aeronaves e carros de corrida.
  • A engenharia auxiliada por computador requer ferramentas de simulação de computação intensiva para realizar testes de novas instalações industriais, eletrônicos e bens de consumo. 

Serviços financeiros 

As empresas de serviços financeiros usam sistemas distribuídos para realizar simulações econômicas de forma rápida, as quais avaliam os riscos do portfólio, predizem os movimentos do mercado e apoiam a tomada de decisões financeiras. Elas podem criar aplicações Web que usam o potencial dos sistemas distribuídos para realizar o seguinte:

  • Fornecimento de contribuições personalizadas e de baixo custo
  • Use bancos de dados distribuídos para oferecer suporte com segurança para um alto volume de transações financeiras.
  • Autenticação de usuários e proteção dos clientes contra fraudes 

Energia e meio ambiente 

As empresas de energia precisam analisar grandes volumes de dados a fim de melhorar as operações e realizar a transição para soluções sustentáveis e ecológicas. Elas usam sistemas distribuídos para analisar fluxos de dados de alto volume de uma vasta rede de sensores e de outros dispositivos inteligentes. Veja algumas das tarefas que podem ser realizadas:

  • Transmissão e consolidação de dados sísmicos para projetos estruturais de usinas de energia
  • Monitoramento em tempo real de poços de petróleo para gerenciamento de riscos proativo

Quais são os tipos de arquitetura de computação distribuída?

Na computação distribuída, você desenvolve aplicações que podem funcionar em diversos computadores em vez de em um único. Você consegue isso ao desenvolver um software para que computadores diferentes executem funções diferentes e se comuniquem para elaborar a solução final. Existem quatro tipos principais de arquitetura distribuída.

Arquitetura cliente-servidor

O método cliente-servidor é o mais comum para a organização de software em um sistema distribuído. As funções são separadas em duas categorias: clientes e servidores.

Clientes

Os clientes têm informações e capacidade de processamento limitadas. Como alternativa, eles fazem solicitações aos servidores, os quais gerenciam a maioria dos dados e outros recursos. Você pode fazer solicitações ao cliente e ele se comunicará com o servidor em seu nome.

Servidores

Os computadores servidores sincronizam e gerenciam o acesso aos recursos. Eles respondem às solicitações do cliente com dados ou informações de estado. Normalmente, um servidor pode lidar com solicitações de várias máquinas.

Benefícios e limitações

A arquitetura cliente-servidor oferece os benefícios de segurança e de facilidade de gerenciamento contínuo. Você só precisa se concentrar em assegurar a proteção dos computadores servidores. De modo semelhante, quaisquer alterações nos sistemas de banco de dados requerem alterações apenas no servidor.

A limitação da arquitetura cliente-servidor é que os servidores podem causar gargalos na comunicação, principalmente quando diversas máquinas fazem solicitações simultaneamente.

Arquitetura de três camadas

Em sistemas distribuídos de três camadas, as máquinas clientes continuam a ser a primeira camada que você acessa. As máquinas servidoras, por outro lado, são divididas em duas categorias:

Servidores de aplicações

Os servidores de aplicações atuam como a camada intermediária para a comunicação. Eles contêm a lógica da aplicação ou as funções principais para as quais você desenvolveu o sistema distribuído.

Servidores de banco de dados

Os servidores de banco de dados atuam como a terceira camada para o armazenamento e o gerenciamento dos dados. Eles são responsáveis pela recuperação e pela consistência de dados.

Ao dividir a responsabilidade do servidor, os sistemas distribuídos de três camadas reduzem os gargalos de comunicação e melhoram a performance da computação distribuída.

Arquitetura de multicamadas

Os modelos de multicamadas incluem diversos sistemas cliente-servidor diferentes que se comunicam entre si para resolver o mesmo problema. A maioria dos sistemas distribuídos modernos usa uma arquitetura de multicamadas com diferentes aplicações empresariais trabalhando em conjunto como um sistema em segundo plano.

Arquitetura ponto a ponto

Os sistemas distribuídos ponto a ponto atribuem responsabilidades semelhantes a todos os computadores em rede. Não há distinção entre os computadores cliente e servidor, e qualquer computador pode executar todas as responsabilidades. A arquitetura ponto a ponto tornou-se popular para compartilhamento de conteúdo, transmissão de arquivos e redes blockchain.

Como funciona a computação distribuída?

A computação distribuída funciona por computadores que transmitem mensagens entre si dentro da arquitetura dos sistemas distribuídos. Os protocolos ou regras de comunicação criam uma dependência entre os componentes do sistema distribuído. Essa interdependência é chamada de acoplamento e existem dois tipos principais de acoplamentos.

Acoplamento fraco

No acoplamento fraco, os componentes são parcialmente conectados para que as alterações em um componente não afetem outros.  Por exemplo, os computadores cliente e servidor podem ter um acoplamento fraco pela ação do tempo. As mensagens do cliente são adicionadas a uma fila do servidor e o cliente pode continuar a executar outras funções até que o servidor responda à sua mensagem.

Acoplamento forte

Sistemas distribuídos de alta performance geralmente usam acoplamento forte. As redes locais rápidas normalmente conectam vários computadores, o que cria um cluster. Na computação em cluster, cada computador é configurado para executar a mesma tarefa. Os sistemas de controle central, chamados de middleware de cluster, controlam e agendam as tarefas, bem como coordenam a comunicação entre os diferentes computadores.

O que é computação paralela?

A computação paralela corresponde a um tipo de computação em que um ou vários computadores em uma rede realizam diversos cálculos ou processos simultaneamente. Embora os termos computação paralela e computação distribuída sejam frequentemente usados de forma intercambiável, eles têm algumas diferenças.

Computação paralela versus computação distribuída

A computação paralela é uma forma particular e fortemente acoplada de computação distribuída. No processamento paralelo, todos os processadores têm acesso à memória compartilhada para trocas de informações entre eles. Por outro lado, no processamento distribuído, cada processador possui um memória particular (memória distribuída). Os processadores usam transmissões de mensagens para trocas de informações.

O que é computação em grade?

Na computação em grade, redes de computadores distribuídas geograficamente trabalham juntas para realizar tarefas comuns. Um recurso das grades distribuídas é que você pode formá-las utilizando recursos de computação que pertencem a diversos indivíduos ou organizações.

Computação em grade versus computação distribuída

A computação em grade é uma computação distribuída com alta escalabilidade que enfatiza a performance e a coordenação entre diversas redes. No nível interno, cada grade atua como um sistema de computação fortemente acoplado. No entanto, no nível externo, as grades tem um acoplamento mais fraco. Cada rede em grade executa funções individuais e comunica os resultados para as outras grades.

O que é computação de alta performance da AWS?

Com a computação de alta performance (HPC) da AWS, você pode acelerar a inovação com rede rápida e infraestrutura de computação distribuída praticamente ilimitada. Por exemplo, você pode usar esses produtos:

  • O Amazon Elastic Cloud Compute (EC2) para oferecer suporte a praticamente qualquer workload com capacidade de computação segura e redimensionável.
  • O AWS Batch para realizar a escalabilidade de centenas de milhares de trabalhos de computação nos produtos de computação da AWS.
  • O AWS ParallelCluster para criar ambientes de computação HPC e clusters HPC rapidamente.

Comece a usar a computação distribuída na AWS criando uma conta gratuita hoje mesmo.

Próximas etapas da computação distribuída da AWS

Confira outros recursos relacionados a produtos
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS. 

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login