PORTIFÓLIO DE SISTEMAS
DISTRÍBUIDOS
GUSTAVO HENRIQUE DE OLIVEIRA
FACULDADE ANHANGUERA
1 INTRODUÇÃO
Nesta atividade prática, foi proposto 4 atividades sobre fundamentos da
disciplina de Sistemas Distribuídos, sendo elas as seguintes:
1. Sincronização NTP - Nesta atividade prática, você aplicará a sincronização
relógios através de servidor NTP em sistema operacional Linux e Windows.
2. Virtualização e conteinerização - Virtualização VM: Nesta atividade
prática, você fará a criação de máquina virtual com sistema operacional
GNU/Linux.
3. Virtualização e conteinerização - Conteinerização com Docker: Nesta
atividade prática, você compreenderá como orquestrar o servidor web
Apache em um cluster simples através do Docker.
4. Segurança em sistemas distribuídos - Compreender como um analisador
de protocolos funciona. Trabalharemos com o Wire Shark.
2 DESENVOLVIMENTO
2.1 ATIVIDADE 01 - SINCRONIZAÇÃO NTP:
2.1.1 INTRODUÇÃO
A sincronização NTP é um processo que permite que os relógios de
dispositivos de uma rede sejam sincronizados, utilizando um protocolo de
tempo. O NTP é a sigla para Network Time Protocol, que significa "Protocolo de
Tempo para Redes".
O NTP é utilizado para sincronizar relógios de computadores, estações de
trabalho, roteadores e outros equipamentos. A sincronização é feita com base
em referências de tempo confiáveis, como os relógios atômicos do
Observatório Nacional. Abaixo segue como fazer a instalação do protocolo NTP
no Linux e no Windows.
2.1.2 DESENVOLVIMENTO
• Realizando o exercício:
Para a realização deste foi utilizado uma máquina virtual com uma Distro
UBUNTU 20.04 (Focal Fossa)
Passo 1 – Abra o terminal, pressionando as teclas “CTRL + T”.
Passo 2 – Instale o serviço “ntp”atrvés do gerenciador de pacotes äpt”,
com o comando 1
Passo 3 – Agora que está instalado, vamos editar o arquivo de
configuração com o Comando 2
Passo 4 – Excluir todas informações que estão abaixo da frase #
Specify one or more NTC Servers
Passo 5 – Incluir o comando: pool [Link].
Passo 6 – Salvar as alterações com “CTRL + X” e depois “S”
Passo 7 – Reiniciar o serviço ntp usando o comando 3
Passo 8 - Feito isso, o serviço estará configurado adequadamente e já
estará funcionando, consultando um conjunto de servidores NTP através
da Internet. Adicionalmente, para fazer uma consulta manual e pontual,
você poderá digitar o seguinte comando no Terminal: ntpq -p.
• Procedimento no Windows
1. Abra o Prompt de Comando (CMD), pressionando as teclas “CTRL + R”
do teclado, digitando “cmd” e OK.
2. Na janela do CMD vamos inserir o código a seguir e pressionar a tecla
“Enter”: w32tm /config /syncfromflags:manual
/manualpeerlist:[Link]
3. Observamos que ao final do comando aparece a mensagem “O
comando foi concluído com sucesso”. Lembre-se, para executar os
comandos você deve estar em um usuário Administrador ou executar o
CMD como Administrador.
4. Podemos forçar uma sincronização através do comando “w32tm /resync
/rediscover” Através da saída podemos observar que nossa configuração
foi feita com sucesso.
2.1.3 CONCLUSÃO
O NTP, se corretamente utilizado, é capaz de garantir as propriedades
necessárias ao relógio do computador para o bom funcionamento das
aplicações. Num primeiro momento isso pode parecer algo muito simples:
"consultar o tempo em um servidor" e "ajustar o relógio local" de tempos em
tempos. Mas na verdade o NTP faz muito mais do que isso.
Uma característica básica e ao mesmo tempo importante do tempo é que ele
sempre avança. O tempo não para e não volta atrás. Vários programas de
computador fazem uso dessa característica e podem ter seu funcionamento
comprometido se o relógio do computador inesperadamente passar a indicar
um horário errado, especialmente se for um horário no passado. Isso se
complica ainda mais na Internet, com vários computadores trocando
informações entre si. Diante disso conseguimos perceber a importância do
Protocolo NTP.
2.2 ATIVIDADE 02 – VIRTUALIZAÇAO E
CONTEINERIZAÇÃO – VIRTUALIZAÇÃO VM
2.2.1 INTRODUÇÃO
A virtualização é uma tecnologia que usa recursos tradicionalmente vinculados
ao hardware. Com ela, é possível usar toda a capacidade de uma máquina
física, distribuindo seus recursos entre muitos usuários ou ambientes. Entre os
tipos de virtualizações está: Virtualização de sistema operacional, que torna
possível a execução de vários sistemas operacionais em um único computador.
Uma máquina virtual (VM) é um computador digitalizado que
funciona em um servidor físico, utilizando recursos virtuais como CPU,
memória e armazenamento. As VMs são executadas como computadores
individuais, mas são independentes umas das outras e do computador físico.
As VMs podem ser usadas para: Testar novos sistemas operacionais, executar
software incompatível, criar e implantar aplicações na nuvem, fazer backup do
sistema operacional, executar aplicativos legados em hardware moderno. Para
criar VMs, é necessário utilizar um hypervisor, que é uma camada de software
que aloca recursos de computação física para cada VM.
O VirtualBox é um software gratuito e de código aberto que permite criar,
gerenciar e executar máquinas virtuais (VMs). Ele é multi-plataforma e pode ser
usado em Windows, Mac OS X, Linux e Solaris.
O VirtualBox é uma ferramenta útil para quem precisa usar mais de um sistema
operacional ou para testar sistemas. Ele também pode ser usado para reduzir
custos operacionais e implementar aplicações de forma segura. O VirtualBox é
ideal para desenvolvedores, profissionais de TI e usuários comuns.
2.2.2 DESENVOLVIMENTO
Criação de máquina virtual com sistema Linux.
• Instalação do Debian
Após isso devemos definir um nome e qual o tipo do sistema
Agora devemos definir a quantidade de RAM e CPU.
Agora que nossas configurações já estão prontas a máquina já aparece
na lista.
Vamos até a opção "Configurações" representada pelo ícone de uma
engrenagem para apontar o caminho de nossa imagem (iso) que contém
o sistema operacional. Vemos como apontamos o caminho da imagem
de instalação do sistema operacional, para isso ocorrer devemos criar
um leitor de CD virtual e indicar a imagem como se fosse um CD-ROM.
Acessamos o menu "Armazenamento", depois "Vazio", depois o ícone
de um novo CD para loca lizar nossa imagem.
Após o apontamento do caminho da imagem e o botão OK pressionado,
basta clicar em Iniciar
Após iniciado basta apenas realizar as configurações básicas de inicio e
sua máquina Linux já estará rodando!
2.2.3 CONCLUSÃO
A virtualização usando aplicativos como o VirtualBox é uma poderosa
ferramenta que oferecem diversas vantagens, incluindo a capacidade de
testar e desenvolver software em diferentes sistemas operacionais,
isolamento seguro de ambientes e eficiência no uso de recursos de
hardware. No entanto, é importante estar ciente das possíveis
sobrecargas de desempenho e das necessidades de recursos de
hardware para garantir o funcionamento eficiente das máquinas virtuais.
2.3 ATIVIDADE 03 - CONTAINERIZAÇÃO COM DOCKER:
2.3.1 INTRODUÇÃO
A conteinerização com Docker é uma tecnologia que permite criar e
utilizar contêineres Linux para executar aplicações. Os contêineres são
ambientes isolados que contêm todos os componentes necessários para
executar um programa. O Docker é uma ferramenta de conteinerização
que permite criar contêineres de imagens do Docker. Os contêineres do
Docker são executados no kernel do host, o que permite que vários
processos e aplicações sejam executados separadamente.
A conteinerização é uma tecnologia essencial para a migração para a
nuvem.
2.3.2 DESENVOLVIMENTO
A realização dessa atividade tem como objetivo compreender como
orquestrar o servidor web Apache em um cluster simples através do
Docker, e para iniciar foi acessado o site:
[Link] e em seguida feito a
inscrição com a criação da conta.
Depois de inscrito basta ir para a tela Play With Docker através do link
[Link] e clicar em Start
Com acesso à plataforma:
1 passo: Foi adicionado 3 nós, que farão parte do cluster, através do
botão “add new instance”
2 passo: Foi escolhido 1 nó para ser o mestre, através do seguinte
comando: Docker swarm init –advertisse-addr [Link]
Este comando define esse nó como manager do cluster. Repare
que, ao executar esse comando, é apresentada uma saída, com a
mensagem: (To add a worker to this swarm, run the following command)
"Para adicionar um worker ao swarm, execute o seguinte comando",
conforme pode ser visto na Figura.
Sendo assim, foi copiado a saída que foi apresentada, pois este
comando deverá ser executado em cada um dos demais nós do cluster,
adicionando estes como Workers desse cluster
3 passso: Agora que está tudo criado e configurado, para criar o serviço
que estará rodando do servidor Apache, foi digitado o seguinte comando
no nó mestre: Docker service create –name WEB –publish 80:80 –
replicas=5 httpd
Este comando criou 5 instâncias de um servidor web Apache, que
responderá na porta 80, e para facilitar a monitoração demos o nome de
WEB
4 passo: Para finalizar vamos acessar a página de boas-vindas desse
servidor Apache através do endereço de IP
2.3.3 CONCLUSÃO
A conteinerização com Docker oferece uma maneira eficiente e
consistente de desenvolver, implantar e gerenciar aplicações. Utilizando
contêineres, é possível garantir que o ambiente de execução seja o mesmo em
todas as etapas do ciclo de desenvolvimento, reduzindo problemas de
compatibilidade e facilitando a escalabilidade.