Ambiente de estudo para exploração prática dos principais frameworks de uma plataforma moderna de dados, provisionado com IaC via Terraform na AWS e orquestrado com Docker Compose.
Nota: Este projeto foi replicado e adaptado a partir do trabalho do Prof. Fábio Jardim (PUC Minas), no curso de DevOps & Continuous Software Engineering. O objetivo foi reproduzir o ambiente de forma prática para aprofundar o entendimento das ferramentas envolvidas.
| Camada | Ferramentas |
|---|---|
| Infraestrutura | Terraform, AWS EC2 |
| Containerização | Docker, Docker Compose |
| Ingestão | Apache NiFi, Debezium (CDC), Kafka (Confluent) |
| Armazenamento | MinIO (Data Lake), PostgreSQL |
| Processamento | Apache Spark, Apache Hive, Trino |
| Orquestração | Apache Airflow |
| Observabilidade | Elasticsearch, Kibana |
| Visualização | Apache Superset, Metabase, CloudBeaver |
A instância recomendada na AWS é t2.xlarge (16GB RAM). Na primeira execução, todas as imagens serão baixadas automaticamente.
1. Provisionar a infraestrutura com Terraform
cd Terraform
terraform init
terraform apply2. Clonar o repositório na instância AWS
git clone https://github.com/moa-devops/mds.git
cd mdsÉ recomendado subir apenas os serviços do workload que será utilizado.
Data Lake + Spark
docker-compose up -d minio spark-workerCDC com Kafka + PostgreSQL
docker-compose up -d minio kafka-broker kafka-connect nifi postgresTodos os containers (requer 16GB+ de RAM)
docker-compose up -d# Verificar containers em execução
docker ps
# Parar um container
docker stop <nome>
# Parar todos os containers
docker stop $(docker ps -a -q)
# Remover todos os containers
docker rm $(docker ps -a -q)
# Inspecionar um container
docker container inspect <nome>
# Ver logs de um container
docker container logs <nome>| Serviço | Endereço |
|---|---|
| MinIO | http://IP-da-AWS:9051 |
| Jupyter Spark | http://IP-da-AWS:8889 |
| Apache Pinot | http://IP-da-AWS:9000 |
| NiFi | http://IP-da-AWS:9090 |
| Kafka Control Center | http://IP-da-AWS:9021 |
| Airflow | http://IP-da-AWS:8180 |
| Elasticsearch | http://IP-da-AWS:9200 |
| Metabase | http://IP-da-AWS:3000 |
| Kibana | http://IP-da-AWS:5601 |
| Superset | http://IP-da-AWS:8088 |
| Trino | http://IP-da-AWS:8080 |
| CloudBeaver | http://IP-da-AWS:8010 |
| Serviço | Usuário | Senha |
|---|---|---|
| Superset | admin | admin |
| Metabase | admin@mds.com | admin |
| PostgreSQL | admin | admin |
| MinIO | admin | admin |
| Pinot | admin | admin |
| Kibana | admin | admin |
| CloudBeaver | admin | admin |
- CloudBeaver
- Trino
- Superset
- Metabase
- Delta Lake
- MinIO
- Elasticsearch
- PostgreSQL
- Pinot
- Jupyter Spark
- Airflow
- Kafka Confluent
- Debezium
- NiFi
- Imagens no Docker Hub
Projeto baseado no repositório do Prof. Fábio Jardim — PUC Minas, curso de DevOps & Continuous Software Engineering.

