CCT-UFCA/Ciência da Computação/Sistemas Distribuídos/Balanceamento de Carga e Segurança em Sistemas Distribuídos
Aparência
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:
- Desempenho: Minimizar o tempo de resposta ao balancear a carga entre os servidores disponíveis.
- Escalabilidade: Permitir que sistemas aumentem sua capacidade ao adicionar novos servidores.
- 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).
- Como funciona:
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.
- Como funciona:
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.