Slide 1
“Construção de um servidor web com containers, Integração de Banco de Dados e
Provisionamento de Recursos” 2ªipia
Slide 2
Participantes: Alyel – Pesquisa, Ana Carolina – Edição, Ariane – Slides, Daniela –
Pesquisa, Letícia – Slides, Thaíres – Pesquisa.
Slide 3
“Introdução”
O que são containers e sua importância no desenvolvimento?
É uma espécie de tecnologia de virtualização leve que permite empacotar uma aplicação
juntamente com todas as suas dependências (bibliotecas, configurações e arquivos
necessários) em um único pacote correspondente. Diferente de máquinas virtuais, que
incluem um sistema operacional complete.
O que é Docker?
Para usar containers, geralmente utilizamos o Docker. O Docker é o coração da configuração
de um container. Ele define o ambiente do container e como sua aplicação será executada.
Ele é uma plataforma que permite criar, gerenciar e executar containers de maneira
eficiente
Slide 4
O servidor web será criado utilizando a imagem oficial do Nginx.
Comandos para Usar Docker com Servidor Web
1. Baixar e executar a imagem oficial do Nginx:
docker run -d -p 80:80 nginx
docker run: Executa um novo container.
-d: Modo "detached" (em segundo plano).
-p 80:80: Mapeia a porta 80 do host (servidor) para a porta 80 do container.
nginx: Nome da imagem que será utilizada. Se ela não estiver localmente, o Docker a baixa
do Docker Hub.
Slide 5
2. Criar uma imagem personalizada com Dockerfile:
Exemplo de Dockerfile para um servidor Node.js:
IMAGEM
FROM node:16: Define a imagem base como Node.js versão 16.
WORKDIR /usr/src/app: Define o diretório de trabalho no container.
COPY package*.json ./: Copia os arquivos de dependências do Node.js para o container.
RUN npm install: Instala as dependências.
COPY . .: Copia o restante do código da aplicação.
EXPOSE 3000: Expõe a porta 3000 do container.
CMD ["node", "server.js"]: Comando para executar o servidor ao iniciar o container.
Comandos para construir e executar o container:
Construir a imagem:
IMAGEM
docker build -t meu-servidor-web .
docker build: Constrói uma imagem a partir do Dockerfile.
-t meu-servidor-web: Define um nome/tag para a imagem.
“.” Indica que o Dockerfile está no diretório atual.
Slide 6
Configuração de uma rede Docker, e conexão do servidor web ao banco de dados para
permitir comunicação:
No Docker, as redes são utilizadas para interligar containers. Ao criar uma rede
personalizada, todos os containers conectados a ela podem se comunicar
Conectar o servidor web à rede:
Conectar o banco de dados à rede:
meu-servidor-web: Nome do container do servidor web.
meu-banco: Nome do container do banco de dados.
Agora ambos os containers estão conectados na mesma rede e podem se comunicar usando
seus nomes de container.
Slide 7
Limitação de recursos
É possível restringir a quantidade máxima de memória RAM que um contêiner pode usar.
memory="256m": Limite de uso de memória a 256 MB.
Containers que tentarem consumir mais memória serão pausados para evitar falhas no
sistema.
Você também pode limitar a quantidade de CPU que um contêiner pode consumir. O Docker
permite especificar o número de núcleos que o contêiner pode utilizar.
pus="1.0": Limita o container a usar apenas 1 núcleo de CPU.
Slide 8
Importância do Gerenciamento de Recursos
Evitar sobreccaregar
Sem limitação, um container mal configurado ou sobrecarregado pode consumir todos os
recursos do sistema e prejudicar outros serviços.
Isto é importante em ambientes de produção onde a estabilidade é essencial.
Previsibilidade
Ao limitar os recursos, o desempenho do contêiner é mais previsível e você pode estimar
melhor a capacidade do host.
Redução de custos
Em ambientes de nuvem, você paga pelos recursos que utiliza. O controle de CPU e memória
reduz custos desnecessários.
Otimização de desempenho
Ao limitar os recursos, é possível organizar solicitações importantes e manter a qualidade
do serviço.
Slide 9
O uso de containers mudou a forma como as aplicações são desenvolvidas, distribuídas e
gerenciadas. Eles oferecem muitos benefícios para atender às necessidades dos ambientes
modernos de desenvolvimento e produção
Segurança:
o Cada container é isolado e as vulnerabilidades e falhas em outros
serviços em um único host têm impacto mínimo. Além disso, a rede interna do
Docker garante que a comunicação entre contêineres seja perfeita.
Reprodutibilidade:
Ambientes de desenvolvimento e produção consistentes,
eliminando dependências ou problemas de incompatibilidade.
Agilidade:
o Com containers, o ciclo de vida de desenvolvimento é
acelerado. As alterações podem ser feitas rapidamente, testadas em um ambiente
isolado e implementadas sem interromper os serviços.
Slide 10
Ao longo do trabalho, foi demonstrada a construção de um serviço web baseado em
containers, incluindo a integração de um banco de dados e o provisionamento de recursos.
Essa abordagem moderna não apenas resolve desafios de compatibilidade e escalabilidade,
mas também reduz custos operacionais e simplifica a gestão de sistemas complexos.
O uso de containers é uma prática essencial para organizações que buscam agilidade,
confiabilidade e inovação no desenvolvimento e operação de software.
Slide 11
Obrigada por assistir!