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

SISEMAS SISTRIBUIDOS

O relatório apresenta uma análise prática sobre sistemas distribuídos, abordando conceitos fundamentais, virtualização, orquestração de containers com Docker Swarm e análise de tráfego de rede com Wireshark. A prática incluiu a configuração do NTP em diferentes sistemas operacionais, a criação de máquinas virtuais e a implementação de um cluster de containers, destacando a importância da sincronização, segurança e escalabilidade. O trabalho visa consolidar o entendimento sobre a confiabilidade das infraestruturas distribuídas e os desafios enfrentados na sua manutenção.

Enviado por

Dayane Lopes
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 PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
0 visualizações18 páginas

SISEMAS SISTRIBUIDOS

O relatório apresenta uma análise prática sobre sistemas distribuídos, abordando conceitos fundamentais, virtualização, orquestração de containers com Docker Swarm e análise de tráfego de rede com Wireshark. A prática incluiu a configuração do NTP em diferentes sistemas operacionais, a criação de máquinas virtuais e a implementação de um cluster de containers, destacando a importância da sincronização, segurança e escalabilidade. O trabalho visa consolidar o entendimento sobre a confiabilidade das infraestruturas distribuídas e os desafios enfrentados na sua manutenção.

Enviado por

Dayane Lopes
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 PDF, TXT ou leia on-line no Scribd

FACULDADES INTEGRADAS NORTE DO PARANÁ

SUPERIOR EM TECNOLOGIA E DESENVOLVIMENTO DE SISTEMAS


SISTEMAS DISTRIBUIDOS

RAFAEL MONTEIRO DE MEDEIROS

RELATÓRIO DE AULA PRÁTICA: SISTEMA DISTRIBUIDOS

PAULO AFONSO

2026
RAFAEL MONTEIRO DE MEDEIROS

RELATÓRIO DE AULA PRÁTICA: SISTEMAS DISTRIBUIDOS

Trabalho textual apresentado como


requisito parcial para a obtenção de média
semestral.

Orientador: Prof. Mariana Karina Miglionari


de Souza

PAULO AFONSO

2026
SUMÁRIO

INTRODUÇÃO 4

MÉTODOS E RESULTADOS 5

Conceitos de Sistemas Distribuídos 5

Virtualização e Implementação de Ambientes Virtuais 7

Orquestração de Containers com Docker Swarm 12

Análise de Tráfego de Rede com Wireshark 14

CONCLUSÃO 17

REFERÊNCIAS 18
INTRODUÇÃO

Os sistemas distribuídos representam a base da infraestrutura computacional


contemporânea, sendo vitais para aplicações que demandam escalabilidade, alta
disponibilidade e resiliência. Caracterizados por um conjunto de máquinas
independentes que operam de forma coordenada via rede, esses sistemas permitem
o compartilhamento eficiente de recursos, sustentando serviços essenciais de nuvem
e redes corporativas. Contudo, sua implementação impõe desafios complexos,
especialmente no que tange à consistência de dados e à orquestração de processos
distribuídos.
Um ponto crítico reside na sincronização temporal. A coordenação entre nós
geograficamente dispersos exige precisão para evitar falhas em serviços de
autenticação e integridade de logs, papel desempenhado por protocolos como o NTP
(Network Time Protocol). Paralelamente, a robustez do sistema depende de
mecanismos rigorosos de segurança. Para viabilizar o desenvolvimento e teste
dessas arquiteturas, a virtualização e a conteinerização (através de ferramentas como
VirtualBox e Docker) surgem como soluções indispensáveis, conferindo flexibilidade
e otimização de hardware.
Este trabalho propõe uma análise prática dos fundamentos de sistemas
distribuídos, focando na sincronização de relógios em diferentes SOs e na
implementação de ambientes virtuais. O objetivo é consolidar o entendimento sobre a
confiabilidade dessas infraestruturas e preparar o desenvolvedor para os desafios
reais de manutenção e escalabilidade.
MÉTODOS E RESULTADOS
2.1– Conceitos de Sistemas Distribuídos

A coordenação cronológica entre dispositivos cliente e servidor desempenha


um papel vital em arquiteturas distribuídas, sendo fundamental para processos que
exigem alta fidelidade temporal, como sistemas de login e conexões remotas. Caso
existam variações expressivas entre os relógios das máquinas, o desempenho de
diversas funções do sistema pode ser prejudicado. Para evitar esse cenário, a
utilização do protocolo NTP é essencial, pois ele permite o ajuste rigoroso dos
horários, mantendo a harmonia necessária para a estabilidade dos serviços.
Nesta experiência prática, configurou-se o NTP em duas plataformas distintas:
o Ubuntu Desktop 18.04.1 (Linux) e o Windows 10. O trabalho envolveu a preparação
e o ajuste do serviço em cada sistema para garantir uma comunicação sincronizada.
Os métodos aplicados e os resultados observados em ambos os cenários estão
detalhados a seguir.
1. Procedimentos no Ubuntu 18.04.1
• Instalação do NTP: Inicialmente, o serviço foi adicionado ao
sistema operacional através do terminal de comando. Utilizou-se a instrução
sudo apt install ntp para baixar os arquivos necessários. Após o término, a
instalação foi validada e devidamente registrada por meio de prints de tela.
• Ajuste do Arquivo de Configuração: Posteriormente, o arquivo
/etc/[Link] foi aberto para edição com o utilitário nano. As linhas que
apontavam para os servidores genéricos do Ubuntu foram deletadas e trocadas
pelos endereços do [Link]. Essa customização permitiu que o sistema
utilizasse referências de tempo localizadas no Brasil, o que reduz a latência e
melhora a precisão devido à proximidade com os servidores nacionais.
2. Procedimentos no Windows 10
• Configuração via Prompt de Comando: No Windows, o processo
começou abrindo o CMD com privilégios de administrador. Para vincular a
máquina a uma fonte de tempo externa, aplicou-se o comando w32tm /config
/syncfromflags:manual /manualpeerlist:[Link]. Esse passo definiu o
servidor [Link] como a base de confiança para o relógio local.
• Reativação do Serviço: Com os novos parâmetros definidos, foi
preciso reiniciar o motor de sincronização do Windows. Para isso, foram usados
os comandos net stop w32time (para interromper) e net start w32time (para
iniciar novamente), assegurando que as alterações entrassem em vigor
imediatamente.
• Sincronização Forçada: Por fim, realizou-se um teste de validação
manual utilizando o comando w32tm /resync /rediscover. Essa ação obrigou o
sistema a buscar o horário atualizado no servidor escolhido. O êxito dessa
operação confirmou que a configuração foi bem-sucedida e que o sistema
estava operando com o horário correto.

Figura 1: Processo de atualização do servidor de tempo e execução da sincronização manual com êxito.
2.2– Virtualização e Implementação de Ambientes Virtuais

A virtualização consolidou-se como uma metodologia indispensável na


administração de servidores e em ecossistemas de sistemas distribuídos, viabilizando
a execução de diversas instâncias de sistemas operacionais sobre um único hardware
físico. Essa abordagem potencializa a eficiência no uso de recursos, além de oferecer
um ambiente seguro e versátil para o desenvolvimento e homologação de softwares.
No âmbito desta atividade, o objetivo central foi a estruturação de uma máquina virtual
(VM) com a distribuição Linux, utilizando para isso o hipervisor Oracle VM VirtualBox.
1. Metodologia e Execução:
• Etapa 1 – Obtenção e Instalação do Hipervisor: O processo
iniciou-se com a aquisição do pacote de instalação no portal oficial do
VirtualBox. A instalação no sistema hospedeiro seguiu os parâmetros padrão
do assistente, assegurando a plena disponibilidade da ferramenta para as
etapas subsequentes.
• Etapa 2 – Preparação do Ambiente: Uma vez instalado, o
software foi executado para dar início à interface de gerenciamento, onde seria
definida a nova arquitetura virtualizada.
• Etapa 3 – Definição da Nova VM: Ao acionar a opção "Novo",
iniciou-se o assistente de criação. Neste estágio, foram estabelecidos o nome
identificador da máquina e a tipologia do sistema (Linux). Também foi feito o
apontamento para a imagem ISO correspondente, elemento essencial para o
boot e instalação do sistema operacional.
• Etapa 4 – Dimensionamento de Hardware (RAM): Prosseguiu-
se com a alocação da memória RAM. A escolha foi feita de forma equilibrada,
garantindo que a VM possuísse recursos suficientes para seu desempenho
sem comprometer a estabilidade do sistema operacional principal (hospedeiro).
• Etapa 5 – Estruturação do Armazenamento Virtual: Foi
configurado um disco rígido virtual com a opção de tamanho fixo, visando maior
consistência de performance. Nesta fase, definiram-se o formato do arquivo, a
volumetria de armazenamento e o diretório de destino do disco virtual,
assegurando espaço adequado para os dados e aplicações do Linux.
• Etapa 6 – Desdobramento do Sistema Operacional: Com o
ambiente virtual devidamente parametrizado, a máquina foi inicializada através
do comando "Iniciar". Esse procedimento deu início à sequência de instalação
do Linux, percorrendo todas as etapas de configuração do SO até a sua
completa operacionalização.

Figura 2: Interface principal do Oracle VM VirtualBox após a instalação e inicialização do software.

Figura 3: Configuração de hardware da máquina virtual: definição de memória RAM e quantidade de processadores
(CPUs).
Figura 4: Configuração do disco rígido virtual: definição da capacidade de armazenamento (10,00 GB).

Figura 5: Visão geral das configurações da máquina virtual denominada "trabalho", detalhando os recursos de
sistema, tela e armazenamento.
Figura 6: Resumo das configurações da máquina virtual "trabalho-ubuntu" e início do processo de inicialização.

Figura 7: Área de trabalho do sistema operacional Ubuntu operacionalizado com sucesso em ambiente virtual.

A execução desta prática proporcionou uma oportunidade valiosa para


consolidar os conceitos fundamentais de virtualização. Ao longo do processo, tornou-
se evidente a importância do dimensionamento correto de recursos críticos, como a
memória RAM e o armazenamento virtual, fatores determinantes para a estabilidade
e o desempenho do ambiente. A atividade também demonstrou a versatilidade do
Oracle VM VirtualBox, que, ao suportar diversas distribuições GNU/Linux, consolida-
se como uma ferramenta indispensável para o desenvolvimento e a realização de
testes em ambientes controlados.
Ademais, o domínio na criação e gestão de máquinas virtuais revelou-se uma
competência essencial para a administração de sistemas distribuídos. Essa técnica
viabiliza a experimentação e a implementação de soluções técnicas sem oferecer
riscos à integridade do sistema hospedeiro. Ao proporcionar um ambiente isolado e
seguro, a virtualização permite a exploração de novas configurações e tecnologias,
garantindo a preservação da infraestrutura física subjacente enquanto se busca
inovação e eficiência nos processos de software.
2.3– Orquestração de Containers com Docker Swarm

A terceira etapa prática concentrou-se na orquestração de serviços utilizando o


Docker Swarm, uma ferramenta nativa do ecossistema Docker que permite a criação
e o gerenciamento de clusters de containers. O objetivo central foi estruturar um
ambiente de alta disponibilidade composto por três nós, implementando um serviço
web replicado baseado no servidor Apache HTTP. Para a execução desta atividade,
utilizou-se o Play with Docker, um laboratório virtual que simula com precisão
cenários reais de infraestrutura distribuída.
Esta prática permitiu explorar a definição de papéis dentro de um cluster
(gerentes e trabalhadores) e a escalabilidade dinâmica de aplicações, demonstrando
como o Swarm simplifica a gestão de cargas de trabalho em larga escala.
1. Procedimentos e Metodologia
• Ambiente de Laboratório: Embora o Docker Desktop tenha sido
explorado inicialmente, optou-se pela plataforma Play with Docker para a
condução do experimento. O ambiente em nuvem possibilitou a configuração
ágil de múltiplas instâncias virtuais, facilitando a execução dos comandos de
clusterização sem a necessidade de recursos locais extensivos.
• Configuração do Cluster de Três Nós: A arquitetura foi
desenhada para conter três instâncias: uma atuando como Manager
(gerenciador) e duas como Workers (trabalhadores).
o Inicialização do Swarm: No nó principal, foi executado o
comando docker swarm init, definindo o endereço IP do gerente. Este
comando ativou o modo Swarm e gerou o token de autenticação
necessário para a adesão dos demais nós.
o Adesão dos Workers: Nas outras duas instâncias,
utilizou-se o comando docker swarm join com o token gerado. Com isso,
o cluster foi devidamente estabelecido, integrando os três nós sob uma
única camada de gerenciamento.
• Implementação e Orquestração do Serviço Apache: Com a
infraestrutura pronta, procedeu-se à implantação do serviço web de forma
distribuída.
o Criação do Serviço Replicado: Através do nó Manager,
foi instanciado um serviço denominado "WEB", utilizando a imagem
oficial do Apache (httpd). Configurou-se a publicação na porta 80 e a
criação de cinco réplicas. O comando utilizado foi: docker service
create --name WEB --publish 80:80 --replicas=5 httpd
o Distribuição e Verificação: Para auditar a alocação das
réplicas, utilizou-se o comando docker service ps WEB. A saída
confirmou que o Swarm distribuiu os cinco containers de forma
equilibrada entre o Manager e os Workers, garantindo redundância e
balanceamento de carga.
o Validação de Acesso: A funcionalidade foi validada
acessando o endereço IP de cada nó via navegador. A exibição da
mensagem "It Works!" confirmou que o serviço estava operacional e
acessível através de qualquer ponto do cluster.
• Desmobilização da Infraestrutura: Após os testes, o serviço foi
removido com docker service rm WEB. Em seguida, procedeu-se ao desmonte
do cluster utilizando o comando docker swarm leave, garantindo o
encerramento limpo das instâncias.
A experiência prática foi determinante para compreender a mecânica de
tolerância a falhas e escalabilidade automática. O uso do Docker Swarm
demonstrou ser uma solução eficaz para manter serviços resilientes, evidenciando
como a orquestração de containers é vital em ambientes de produção modernos que
exigem desempenho constante e distribuição inteligente de processos.
2.4 – Análise de Tráfego de Rede com Wireshark

O estudo dos protocolos, o diagnóstico de conectividade e o desenvolvimento


de aplicações em sistemas distribuídos exigem um conhecimento profundo sobre o
tráfego de dados. Para este fim, utilizou-se o Wireshark, uma ferramenta de código
aberto que permite a captura e inspeção de pacotes em tempo real, oferecendo uma
visibilidade granular das comunicações e dos protocolos ativos na rede.
1. Procedimentos Iniciais
• Instalação e Configuração: O processo iniciou-se com a
obtenção do instalador no portal oficial do Wireshark, seguido pela instalação
padrão no sistema hospedeiro.
• Interface e Navegação: Ao inicializar o software, explorou-se a
interface principal, que centraliza as interfaces de rede disponíveis e os menus
de análise. Funções críticas como Capture, Analyze e Statistics foram
identificadas como as ferramentas primordiais para a gestão e avaliação do
tráfego.
2. Monitoramento e Captura de Dados
A coleta de pacotes foi iniciada através do menu Capture > Options, onde
selecionou-se a interface Wi-Fi por ser o meio ativo de conexão com a rede local. Com
o acionamento do comando Start, o Wireshark passou a monitorar o tráfego em tempo
real, organizando os pacotes em uma tabela estruturada com informações de
protocolo, endereçamento (origem/destino) e volumetria de dados.
3. Refinamento por Filtragem
Dada a densidade de informações capturadas, utilizou-se o sistema de filtros
de exibição do Wireshark. Essa funcionalidade permitiu isolar pacotes específicos
(como protocolos ou IPs determinados), tornando a análise mais eficiente e focada
nos elementos de interesse para o diagnóstico do sistema distribuído.
4. Inspeção Detalhada das Camadas de Rede
Após a filtragem, procedeu-se à análise técnica dos pacotes, observando-se a
pilha de protocolos em três níveis fundamentais:
• Camada de Enlace: Forneceu detalhes sobre o protocolo físico
(como Ethernet) e o endereçamento MAC, essencial para a comunicação entre
dispositivos no mesmo segmento de rede.
• Camada de Rede: Revelou informações de roteamento através
dos protocolos IPv4 ou IPv6, permitindo rastrear o caminho dos pacotes entre
diferentes redes.
• Camada de Transporte: Expôs detalhes dos protocolos TCP e
UDP, incluindo números de porta, mecanismos de controle de fluxo e
confirmações de entrega, garantindo a compreensão da confiabilidade na troca
de dados.
5. Finalização e Resultados
A sessão de monitoramento foi encerrada através do comando Stop. Os dados
foram exportados no formato padrão PCAP, assegurando a possibilidade de análises
retrospectivas ou compartilhamento colaborativo.

A prática com o Wireshark consolidou o entendimento sobre a dinâmica das


comunicações em infraestruturas distribuídas. A capacidade de dissecar pacotes em
múltiplas camadas do modelo OSI (Enlace, Rede e Transporte) revelou-se uma
competência indispensável para diagnosticar falhas, otimizar a performance e reforçar
a segurança das aplicações. A interface intuitiva e o poder de análise da ferramenta
confirmam sua posição como padrão de mercado para profissionais de TI que buscam
garantir a integridade e a eficiência das comunicações em rede.

Figura 8: Interface de Opções de Captura do Wireshark, exibindo a lista de adaptadores de rede disponíveis no sistema.
Figura 9: Visão geral da interface do Wireshark durante a monitoração do tráfego, apresentando a lista de pacotes
capturados e o detalhamento hexadecimal.

Figura 10: Menu de filtros do Wireshark, demonstrando a ampla gama de protocolos suportados para a filtragem
personalizada do tráfego.
CONCLUSÃO

O presente trabalho percorreu pilares essenciais da computação moderna,


abordando desde a precisão cronológica em redes até a orquestração avançada de
serviços. Através das atividades práticas de sincronização, virtualização,
conteinerização e auditoria de pacotes, foi possível consolidar uma visão técnica
abrangente sobre como manter a escalabilidade e a resiliência em ecossistemas
distribuídos, competências indispensáveis para os desafios atuais do setor de TI.
A experiência com o Network Time Protocol (NTP) evidenciou que a
consistência temporal é um requisito de segurança e integridade, sendo vital para o
sucesso de protocolos de autenticação e logs de auditoria. A prática demonstrou que
a ausência de sincronismo pode comprometer a confiabilidade de toda a rede,
validando a necessidade de uma base temporal unificada.
No campo da virtualização, a implementação de máquinas virtuais via Oracle
VM VirtualBox destacou a eficiência na abstração de hardware. A capacidade de
simular cenários heterogêneos em ambientes isolados provou ser uma estratégia
fundamental para a otimização de recursos e para a segurança no desenvolvimento
de soluções, permitindo testes rigorosos sem impactos na infraestrutura física.
A exploração do Docker Swarm elevou o nível da discussão para a
orquestração e alta disponibilidade. A criação de clusters e a gestão de réplicas
demonstraram como a conteinerização permite escalar aplicações dinamicamente,
garantindo que o sistema suporte falhas pontuais em nós sem interromper a entrega
do serviço ao usuário final.
Por último, a análise de tráfego com o Wireshark forneceu a visibilidade
necessária sobre o fluxo de dados e o comportamento dos protocolos em tempo real.
A ferramenta consolidou-se como um recurso de diagnóstico e segurança, permitindo
identificar vulnerabilidades e compreender a complexidade das comunicações entre
os componentes de um sistema distribuído.
Em suma, o conjunto de práticas realizadas permitiu a transição do
conhecimento teórico para a aplicação técnica, capacitando o desenvolvimento de
arquiteturas robustas, seguras e preparadas para as demandas de alta performance
da computação contemporânea.
REFERÊNCIAS

• COULOURIS, G. et al. Sistemas Distribuídos. Porto Alegre: Bookman, 2013.


• MAIA, L. P. Arquitetura de redes de computadores. Rio de Janeiro: LTC, 2013.

Você também pode gostar