Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Sistemas Distribuídos/Balanceamento de Carga e Segurança em Sistemas Distribuídos

De Wikiversidade

Conceitos de Balanceamento de Carga

[editar | editar código]

O balanceamento de carga é o processo de distribuir tarefas ou solicitações de forma uniforme entre diferentes nós ou servidores em um sistema distribuído. Isso melhora a utilização de recursos, reduz a latência e previne sobrecarga em alguns servidores enquanto outros permanecem subutilizados.

  • Objetivos:
    1. Desempenho: Minimizar o tempo de resposta ao balancear a carga entre os servidores disponíveis.
    2. Escalabilidade: Permitir que sistemas aumentem sua capacidade ao adicionar novos servidores.
    3. Disponibilidade: Garantir que o sistema continue funcionando mesmo em caso de falhas de alguns nós.
Exemplo: Em uma plataforma de streaming, o balanceamento de carga direciona os usuários para servidores diferentes dependendo da localização ou capacidade de cada servidor.

Técnicas de Balanceamento de Carga

[editar | editar código]
  • DNS Round-Robin:
    • Como funciona:
      • Usa o sistema de nomes de domínio (DNS) para distribuir solicitações entre múltiplos servidores. Cada vez que uma solicitação é feita, o DNS retorna o endereço IP de um servidor diferente de forma circular.
    • Vantagens:
      • Simplicidade e baixo custo.
    • Desvantagens:
      • Não considera o estado atual dos servidores (ex.: sobrecarga ou falha).
Exemplo: Um site com múltiplos servidores que compartilham o mesmo nome de domínio, como www.exemplo.com.
  • Load Balancers:
    • Como funciona:
      • Dispositivos ou serviços que monitoram os servidores e distribuem a carga com base em regras específicas, como capacidade ou latência.
    • Tipos:
      • Balanceador Local: Para sistemas internos com múltiplos servidores.
      • Balanceador Global: Para distribuições geográficas de sistemas (ex.: CDNs).
    • Vantagens:
      • Consideram o estado dos servidores e implementam políticas avançadas de distribuição.
Exemplo: O AWS Elastic Load Balancer distribui tráfego entre instâncias na nuvem.

Desafios de Segurança em Sistemas Distribuídos

[editar | editar código]
  • Superfície de Ataque Expandida:
    • Com múltiplos nós distribuídos, há mais pontos vulneráveis para invasões e ataques.
Exemplo: Um nó comprometido pode ser usado como ponto de entrada para acessar outros nós no sistema.
  • Comunicação Segura:
    • Mensagens trocadas entre nós podem ser interceptadas ou modificadas.
Exemplo: Ataques de "man-in-the-middle" podem comprometer dados sensíveis transmitidos entre servidores.
  • Gestão de Identidade:
    • A autenticação entre nós e usuários deve ser robusta para evitar acessos indevidos.
Exemplo: Um atacante pode tentar forjar credenciais para se passar por um nó legítimo.
  • Falhas Bizantinas:
    • Nós podem exibir comportamentos maliciosos ou arbitrários.
Exemplo: Ataques internos onde um nó compromete deliberadamente as operações do sistema.

Mecanismos de Segurança

[editar | editar código]
  • Autenticação:
    • Como funciona: Verifica a identidade de usuários ou processos antes de conceder acesso.
    • Tipos:
      • Autenticação Baseada em Senha: Usuários fornecem credenciais (ex.: login/senha).
      • Autenticação com Certificados: Usa chaves digitais para autenticar servidores ou clientes.
Exemplo: Protocolos como OAuth para autenticação de usuários em APIs.
  • Criptografia:
    • Como funciona: Protege dados durante a transmissão ou armazenamento para evitar acessos não autorizados.
    • Tipos:
      • Criptografia Simétrica: Usa a mesma chave para encriptar e desencriptar dados.
      • Criptografia Assimétrica: Usa chaves públicas e privadas.
Exemplo: HTTPS (TLS/SSL) para criptografar dados entre o cliente e o servidor.
  • Autorização:
    • Como funciona: Define quais ações ou recursos estão disponíveis para usuários ou processos autenticados.
Exemplo: Um sistema de armazenamento em nuvem permite que usuários acessem apenas os arquivos que têm permissão.

Referências

[editar | editar código]
  1. https://www.cloudflare.com/pt-br/learning/performance/what-is-load-balancing/
  2. https://somosagility.com.br/balanceamento-de-carga-baseado-no-metodo-round-robin/
  3. https://itshow.com.br/sistema-distribuido-introducao-aos-desafios-da-cyber-security/
  4. https://www.inf.puc-rio.br/~noemi/sd-10/seguranca.pdf