Crédito da imagem: gorodenkoff / iStock / GettyImages
Os sistemas distribuídos são sistemas de computador onde vários sistemas de computador estão trabalhando juntos de forma eficaz como uma única unidade. Exemplos de sistemas distribuídos incluem redes de distribuição de conteúdo usadas para servir sites e vídeos online, supercomputadores construídos a partir de vários processadores matemáticos poderosos e bancos de dados distribuídos usados em muitos online sistemas. Os sistemas distribuídos podem ser mais resilientes, mais poderosos e mais rápidos do que os sistemas de um único computador, mas eles também podem exigir mais manutenção e reflexão cuidadosa sobre a organização e os problemas que podem ir errado.
Vantagens de um sistema distribuído
Existem várias vantagens potenciais em usar um sistema distribuído. Uma das mais fáceis de entender é a redundância e a resiliência. Se uma empresa está servindo seu site a partir de um conjunto distribuído de servidores, em vez de um único servidor, pode ser capaz de permanecer ativo mesmo se um servidor falhar fisicamente. Se os dados forem distribuídos entre vários servidores ou discos, uma ocorrência comum em sistemas distribuídos modernos, pode não haver nenhuma perda de dados, mesmo que um dispositivo de armazenamento pare de funcionar.
Vídeo do dia
Velocidade e distribuição de conteúdo
Os sistemas distribuídos também podem ser mais rápidos do que os sistemas de um único computador. Uma das vantagens de um banco de dados distribuído é que as consultas podem ser encaminhadas para um servidor com um informações específicas do usuário, ao invés de todas as solicitações terem que ir para uma única máquina que pode ser sobrecarregado.
As solicitações também podem ser encaminhadas para servidores fisicamente próximos ou em uma conexão de rede rápida para quem quiser os dados, o que pode significar menos tempo e outros recursos alocados para lidar com o tráfego de rede e gargalos. Essa é uma ocorrência comum em redes de distribuição de conteúdo usadas para mídia online.
Escala e paralelismo
Depois que os sistemas distribuídos são configurados para distribuir dados entre os servidores envolvidos, eles também podem ser facilmente escalonáveis. Se eles forem bem projetados, pode ser tão simples quanto adicionar um novo hardware e dizer à rede para adicioná-lo ao sistema distribuído.
Os sistemas distribuídos também podem ser projetados para paralelismo. Isso é comum em operações matemáticas para coisas como modelagem climática e computação científica, onde múltiplas processadores podem dividir partes independentes de simulações complexas e obter a resposta mais rápido do que fariam em Series.
Desafios de computação distribuída
Um grande desafio da computação distribuída é que pode ser difícil para os programadores raciocinarem. Pode haver desafios em como distribuir dados para garantir que os requisitos de resiliência sejam atendidos em várias condições inesperadas.
Se os dispositivos precisarem ser sincronizados, pode haver bugs difíceis de detectar que fazem com que esperem um pelo outro para transmitir dados ou tentar acidentalmente ler ou gravar os mesmos dados ao mesmo tempo, causando erros.
Segurança e privacidade também podem se tornar um problema com sistemas distribuídos, uma vez que os dados das pessoas são armazenados em vários computadores, às vezes em vários locais físicos. Os sistemas distribuídos também podem ser um exagero para algumas tarefas, usando mais recursos físicos e tempo de engenharia do que o necessário.