0% acharam este documento útil (0 voto)
36 visualizações16 páginas

Comunicação em Sistemas Distribuídos

Enviado por

albanolopes3
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
36 visualizações16 páginas

Comunicação em Sistemas Distribuídos

Enviado por

albanolopes3
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd

Faculdade de Engenharia e Novas

Tecnologias

Sistemas Distribuídos e Paralelos

Comunicação em
Sistemas Distribuídos
Aula 5

Prof. Benadade Chipikita


Comunicação em Sistemas Distribuídos

A comunicação e a sincronização em sistemas


distribuídos são componentes fundamentais para
garantir que processos, que podem estar localizados em
diferentes máquinas e redes, possam interagir de
maneira eficiente e coordenada. Esses sistemas, por
natureza, lidam com desafios de latência, consistência de
dados e tolerância a falhas, o que torna esses processos
essenciais para manter o sistema em funcionamento e
oferecer a experiência desejada ao usuário final.
Principais Abordagens para a Implantação de
Processos Distribuídos

1. Implantação em Cloud (Nuvem)


2. Containers e Orquestração (Kubernetes, Docker
Swarm)
3. Implantação em Ambiente Híbrido (Multi-Cloud e On-
Premises)
4. Implantação Geograficamente Distribuída
5. Implantação de Processos de Edge Computing
Implantação em Cloud (Nuvem)

• Descrição: A maioria das arquiteturas distribuídas modernas


utiliza infraestrutura em nuvem (AWS, Google Cloud, Azure)
para aproveitar a escalabilidade e flexibilidade.
• Vantagens: Escalabilidade automática, custo variável (paga-
se pelo uso), flexibilidade para mover processos entre zonas
geográficas e fácil replicação.
• Desafios: Dependência do provedor de nuvem, latência em
inter-regiões e custos adicionais para armazenamento e
transferência de dados.
• Exemplo: Microsserviços em Kubernetes e Docker
distribuídos entre clusters em regiões diferentes, usando
balanceadores de carga para gerenciar solicitações.
Containers e Orquestração
(Kubernetes, Docker Swarm)
• Descrição: O uso de containers permite empacotar processos e suas
dependências, garantindo que eles rodem de forma consistente em
qualquer ambiente. Kubernetes e Docker Swarm são plataformas de
orquestração para gerenciar esses containers em clusters distribuídos.
• Vantagens: Portabilidade, escalabilidade horizontal e flexibilidade para
distribuir containers em diferentes nós. Facilidade de rollback e
atualização contínua dos processos.
• Desafios: Complexidade de configuração e necessidade de um sistema
robusto de monitoramento para garantir o bom funcionamento de
múltiplos containers distribuídos.
• Exemplo: Deploy de uma aplicação de e-commerce em vários
containers (ex. front-end, back-end, banco de dados) gerenciados pelo
Kubernetes, com balanceamento de carga e escalabilidade automática.
Implantação em Ambiente Híbrido (Multi-Cloud e
On-Premises)

• Descrição: Combina infraestrutura em nuvem com infraestrutura local


(on-premises), ou até múltiplos provedores de nuvem (multi-cloud),
distribuindo processos em diferentes ambientes.
• Vantagens: Flexibilidade para otimizar custos, possibilidade de utilizar
recursos já existentes e tolerância a falhas de um único provedor de
nuvem.
• Desafios: Integração e segurança entre ambientes heterogêneos e
complexidade na sincronização de dados e processos.
• Exemplo: Sistema de IoT onde dados sensíveis são processados on-
premises, e processos menos críticos são executados na nuvem.
Implantação Geograficamente Distribuída

• Descrição: Processos são implantados em data centers em


diversas localizações geográficas para atender usuários de
diferentes regiões com baixa latência.
• Vantagens: Melhor desempenho para usuários em locais
distintos, aumento da resiliência ao espalhar recursos em várias
regiões e tolerância a falhas em um data center específico.
• Desafios: Sincronização de dados e consistência entre regiões,
latência na replicação e maiores custos de comunicação entre
data centers.
• Exemplo: Plataforma de streaming com servidores de cache em
diferentes continentes, para melhorar a entrega de conteúdo aos
usuários locais.
Implantação de Processos de Edge
Computing

• Descrição: Processos são implantados em dispositivos na borda


da rede (edge), como dispositivos IoT e servidores próximos ao
local onde os dados são gerados, reduzindo a necessidade de
envio de todos os dados para o data center central.
• Vantagens: Redução de latência, economia de largura de banda
e processamento local dos dados sensíveis.
• Desafios: Limitações de hardware nos dispositivos edge e
desafios de segurança e consistência.
• Exemplo: Dispositivos IoT implantados em uma fábrica que
realizam análise de dados em tempo real, enviando apenas
informações essenciais para a nuvem.
Fases da Implantação de Processos
Distribuídos

1. Planeamento e Design
2. Configuração do Ambiente
3. Distribuição e Deploy
4. Monitoramento e Gerenciamento
5. Escalonamento e Replicação
6. Manutenção Contínua e Atualizações
Planeamento e Design

• Identificar as necessidades de desempenho,


segurança e escalabilidade.
• Definir as regiões, data centers e plataformas
onde cada processo será implantado.
• Planejar a arquitetura de comunicação e
protocolos (ex. RPC, REST, gRPC).
Configuração do Ambiente

• Preparar os servidores, containers ou


dispositivos (cloud, on-premises ou edge).
• Configurar redes, balanceadores de carga e
segurança para permitir comunicação segura e
eficiente entre processos.
• Estabelecer sistemas de armazenamento e
cache distribuído para otimizar o acesso a
dados.
Distribuição e Deploy

• Executar o deploy dos processos nos diferentes


nós, seja manualmente, usando scripts de
automação (como Ansible) ou plataformas de
CI/CD.
• Usar containers e orquestradores, como
Kubernetes, para gerenciar versões e garantir
consistência no ambiente de execução.
• Configurar balanceadores de carga para
distribuir o tráfego entre os processos.
Monitoramento e Gerenciamento

• Implementar sistemas de monitoramento (como


Prometheus, Grafana) para rastrear o
desempenho dos processos distribuídos.
• Configurar alertas para identificar e corrigir
rapidamente falhas ou problemas de
desempenho.
• Gerenciar logs centralizados para entender o
comportamento do sistema e detectar
problemas.
Escalonamento e Replicação

• Definir políticas de escalonamento automático


para adicionar ou remover recursos conforme a
demanda, garantindo que os processos possam
lidar com picos de carga.
• Replicar processos críticos para evitar pontos
únicos de falha e melhorar a disponibilidade.
• Sincronizar dados entre instâncias distribuídas
usando replicação de banco de dados ou cache
distribuído.
Manutenção Continua e Actualizações

• Executar atualizações de forma incremental ou


em blue-green deployments para minimizar
impacto e evitar tempo de inactividade.
• Realizar backups regulares e manutenção de
segurança (patching).
• Implementar ciclos de feedback para aprimorar
continuamente o desempenho e identificar
gargalos.
Conclusão

A implantação de processos distribuídos é um


processo estratégico e essencial para atender aos
requisitos modernos de escalabilidade, resiliência e
baixo tempo de resposta. Ela envolve diversas
tecnologias e práticas de engenharia de software
para garantir que os processos funcionem de forma
eficiente e integrada, independentemente de sua
localização. Com as abordagens, ferramentas e boas
práticas adequadas, a implantação distribuída pode
transformar a performance e a robustez dos sistemas.

Você também pode gostar