Articles

O que é um Sistema Distribuído?

Posted on

Definição

Um sistema distribuído, também conhecido como computação distribuída, é um sistema com múltiplos componentes localizados em máquinas diferentes que comunicam e coordenam acções de modo a aparecer como um único sistema coerente para o utilizador final.

Overvisão

As máquinas que fazem parte de um sistema distribuído podem ser computadores, servidores físicos, máquinas virtuais, contentores, ou qualquer outro nó que se possa ligar à rede, ter memória local, e comunicar passando mensagens.

Existem duas formas gerais de funcionamento dos sistemas distribuídos:

  1. Cada máquina trabalha para um objectivo comum e o utilizador final vê os resultados como uma unidade coesa.
  2. Cada máquina tem o seu próprio utilizador final e o sistema distribuído facilita a partilha de recursos ou serviços de comunicação.

Embora os sistemas distribuídos possam por vezes ser obscuros, têm geralmente três características principais: todos os componentes funcionam simultaneamente, não há relógio global, e todos os componentes falham independentemente uns dos outros.

Benefícios e desafios dos sistemas distribuídos

Existem três razões pelas quais as equipas geralmente decidem implementar sistemas distribuídos:

  • Escalabilidade Horizontal – uma vez que a computação acontece independentemente em cada nó, é fácil e geralmente barato adicionar nós e funcionalidades adicionais conforme necessário.
  • Fiabilidade – a maioria dos sistemas distribuídos são tolerantes a falhas, uma vez que podem ser compostos por centenas de nós que trabalham em conjunto. O sistema geralmente não sofre quaisquer perturbações se uma única máquina falhar.
  • Desempenho – os sistemas distribuídos são extremamente eficientes porque as cargas de trabalho podem ser quebradas e enviadas para várias máquinas.

No entanto, os sistemas distribuídos não estão isentos de desafios. Concepção arquitectónica complexa, construção, e processos de depuração que são necessários para criar um sistema distribuído eficaz podem ser esmagadores.

Três outros desafios que pode encontrar incluem:

  • Agendamento – um sistema distribuído tem de decidir que trabalhos precisam de ser executados, quando devem ser executados, e onde devem ser executados. Os agendadores acabam por ter limitações, levando a hardware subutilizado e a tempos de execução imprevisíveis.
  • Latência – Quanto mais amplamente o seu sistema for distribuído, mais latência pode experimentar com as comunicações. Isto leva frequentemente a que as equipas façam trocas entre disponibilidade, consistência, e latência.
  • Absorção, processamento, apresentação, e monitorização de métricas de utilização de hardware para grandes clusters é um desafio significativo.

Como funciona um sistema distribuído

Ardware e arquitecturas de software são utilizadas para manter um sistema distribuído. Tudo deve estar interligado -CPUs através da rede e processos através do sistema de comunicação.

Tipos de sistemas distribuídos

Sistemas distribuídos caem geralmente num de quatro modelos diferentes de arquitectura básica:

  1. Cliente-servidor-Clientes contactam o servidor para obter dados, depois formatam-nos e exibem-nos ao utilizador final. O utilizador final pode também fazer uma alteração do lado do cliente e voltar a enviá-la ao servidor para a tornar permanente.
  2. A informação de três níveis sobre o cliente é armazenada num nível intermédio em vez de no cliente para simplificar a implementação da aplicação. Este modelo de arquitectura é mais comum para aplicações web.
  3. n-tier-Geralmente utilizado quando uma aplicação ou servidor necessita de encaminhar pedidos para serviços empresariais adicionais na rede.
  4. Peer-to-peer-Não há máquinas adicionais utilizadas para fornecer serviços ou gerir recursos. As responsabilidades são uniformemente distribuídas entre as máquinas do sistema, conhecidas como pares, que podem servir como cliente ou servidor.

Exemplo de um Sistema Distribuído

Sistemas distribuídos têm casos de utilização infinita, sendo alguns deles sistemas bancários electrónicos, jogos multiplayer em linha massivos, e redes de sensores.

StackPath utiliza um sistema distribuído particularmente grande para alimentar o seu serviço de rede de entrega de conteúdos. Cada um dos nossos pontos de presença (PoPs) tem nós que formam um sistema distribuído a nível mundial. E para fornecer a entrega de conteúdo de topo, o StackPath armazena o conteúdo mais recente e frequentemente solicitado nos locais mais próximos do local onde está a ser utilizado.

Sistemas distribuídos no bordo

Com os serviços de computação de bordo do StackPath, máquinas virtuais, e contentores, os utilizadores podem criar os seus próprios sistemas distribuídos. Ao interligar VMs e contentores, ao mesmo tempo que alavanca a velocidade e agilidade que vem com computação de borda, o seu sistema pode lidar com milhares de pedidos simultâneos à velocidade da luz.

Key Takeaways

  • Sistemas distribuídos podem ser constituídos por qualquer máquina capaz de se ligar a uma rede, ter memória local, e comunicar através da passagem de mensagens.
  • Ao espalhar pedidos e cargas de trabalho, os sistemas distribuídos podem suportar muito mais pedidos e trabalhos de computação do que um sistema único padrão.
  • Você pode criar o seu próprio sistema distribuído com rapidez relâmpago interligando os contentores de computação de bordo do StackPath e as máquinas virtuais.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *