Docker
Docker Compose
O sistema NovoSGP depende de vários serviços para funcionar corretamente. Utilizamos diferentes arquivos do tipo Compose, cada um representando uma stack de serviços específica.
Elasticsearch, Kibana, APM server - docker-compose.elk.yml
RabbitMQ, Logstash - docker-compose.logs.yml
Postgres, Redis, MinIO - docker-compose.infra.yml
Grafana, Prometheus - docker-compose.monitor.yml
Como utilizar ?
Para iniciar todas as stacks de forma completa:
docker compose -f docker-compose.elk.yml -f docker-compose.logs.yml -f docker-compose.infra.yml -f docker-compose.monitor.yml up -d
Através do arquivo compose de cada stack pode ser verificado a dependencia de cada serviço na opção "depends".
Tilt
O que é?
O Tilt é uma ferramenta que simplifica a observação e gerenciamento de serviços Docker/Kubernetes em um ambiente local.
Conheça mais sobre o Tilt.
Saiba como instalar:
macOS:
curl -fsSL https://github.com/tilt-dev/tilt/releases/download/v0.33.6/tilt.0.33.6.mac.x86_64.tar.gz | tar -xzv tilt && \
sudo mv tilt /usr/local/bin/tilt
curl -fsSL https://github.com/tilt-dev/tilt/releases/download/v0.33.6/tilt.0.33.6.linux.x86_64.tar.gz | tar -xzv tilt && \
sudo mv tilt /usr/local/bin/tilt
Invoke-WebRequest "https://github.com/tilt-dev/tilt/releases/download/v0.33.6/tilt.0.33.6.windows.x86_64.zip" -OutFile "tilt.zip"
Expand-Archive "tilt.zip" -DestinationPath "tilt"
Move-Item -Force -Path "tilt\tilt.exe" -Destination "$home\bin\tilt.exe"
Como utilizar ?
O Tilt utiliza o arquivo Tiltfile como configuração padrão e se integra com o Docker/Docker Compose.
Para iniciar a stack completa de todos os serviços:
Em seguida, pressione a "barra de espaço" para abrir o Tilt no navegador padrão.
Para baixar todos os serviços:
Também é possível iniciar stacks individualmente. Por exemplo, para iniciar a stack de logs:
E para baixá-la:Irá baixar a stack de logs.
Você também pode iniciar/desativar várias stacks simultaneamente:
E para baixar.Além disso, você pode ativar/desativar serviços através da interface gráfica do Tilt, escolhendo um recurso e clicando em "Enable Resource". O mesmo pode ser feito para desativar o serviço.
Existem outras stacks disponíveis:
logs: (setup-elastic, elastic, kibana, setup-rabbitmq, rabbitmq, logstash):
Esta stack possibilita a utilização de filas para determinadas operações do sistema, além da integração do RabbitMQ com o Logstash para carregar logs do sistema no Elasticsearch.
elk: setup-elastic, elastic, kibana, logstash
Esta stack possibilita a utiliza do Elasticsearch, Logstash e Kibana.
apm: setup-elastic, elastic, kibana, apm
Esta stack possibilita o uso do APM, juntamente com Kibana e Elasticsearch.
rabbitmq: setup-rabbitmq, rabbitmq
Apenas o serviço do Rabbitmq.
postgres: postgres, flyway
Apenas o serviço do Postgres juntamente com uma primeira carga de banco de dados via Flyway.
redis: redis
Apenas o serviço do Redis.
minio: minio
Apenas o serviço do Minio.
monitor: prometheus, grafana
Esta stack inicia o Grafana com o Prometheus, já configurado para coleta de métricas do NovoSGP. (Validar configuração.)
Variáveis de ambiente:
Algumas variáveis de ambiente são necessárias para executar as stacks.
ELASTIC_PASSWORD=SGP123
RABBITMQ_DEFAULT_USER=user
RABBITMQ_DEFAULT_PASS=bitnami
RABBITMQ_VHOST_APP=dev
POSTGRES_PASSWORD=SGP123
POSTGRES_USER=usr_sgp
POSTGRES_DB=db_sgp
APM_TOKEN=apm-server-secret-token
Recomenda-se a criação de um arquivo .env
no mesmo diretório dos arquivos de Docker Compose contendo as variáveis seguindo o padrão chave=valor, conforme acima.
Também é possível definir os valores manualmente dentro de cada arquivo de Docker Compose ou defini-los dentro do sistema operacional.