DevWeb

TodoListDockerAula

Descrição do Projeto

Este projeto é uma aplicação de lista de tarefas (To-Do List) desenvolvida como um sistema monolítico com recursos avançados de escalabilidade e performance. A aplicação permite aos usuários criar, editar, excluir e marcar tarefas como concluídas, oferecendo uma interface simples e funcional, além de recursos de estatísticas e cache.

Arquitetura

O sistema utiliza uma arquitetura escalonável baseada em contêineres Docker com balanceamento de carga:

Tecnologias Utilizadas

Como Executar o Projeto

Pré-requisitos

Passos para Execução

  1. Clone o repositório:
    git clone [URL_DO_REPOSITÓRIO]
    cd todolist
    
  2. Execute a aplicação com Docker Compose:
    docker compose up -d --build
    
  3. Acesse a aplicação:
    • HTTP: http://localhost
    • HTTPS: https://localhost (aceite o certificado autoassinado)

Comandos Úteis

Funcionalidades

Estrutura de Escalabilidade

A aplicação implementa dois tipos de escalabilidade:

  1. Escalabilidade Vertical: Através do Gunicorn com múltiplos workers
  2. Escalabilidade Horizontal: Múltiplas instâncias da aplicação (app1, app2) com balanceamento de carga

O sistema também implementa alta disponibilidade através de:

Estrutura de Diretórios

Banco de Dados PostgreSQL

O projeto utiliza PostgreSQL como sistema de banco de dados principal, oferecendo:

Redis para Cache e Estatísticas

A integração com Redis proporciona:

Monitoramento e Manutenção

Para monitorar os containers em execução:

docker stats
docker compose ps

Para forçar a recriação de um serviço:

docker compose up -d --force-recreate [serviço]

Limpeza do Ambiente

Para limpar completamente o ambiente:

docker compose down
docker system prune -a