Skip to content

Instantly share code, notes, and snippets.

@edsoncelio
Last active October 15, 2020 23:08
Show Gist options
  • Save edsoncelio/4aff2f7918560dab59a151cbb591c0ae to your computer and use it in GitHub Desktop.
Save edsoncelio/4aff2f7918560dab59a151cbb591c0ae to your computer and use it in GitHub Desktop.
Requisitos para configuração do ambiente com a app VoteApp

Usando o projeto https://github.com/dockersamples/example-voting-app, fazer as seguintes alterações:
Importante: criar uma branch para cada alteração abaixo

Deployment by docker-compose

  1. No arquivo docker-compose.yml:
    • Verificar quais imagens são usados como base, e fazer o build externo e salvando em um registry (aplicando boas práticas de tageamento)
    • Retirar todos os builds e alterar para apontar para as imagens no registry usado
    • Usar docker volumes para persistir os dados
  2. Configurar CI com os seguintes requisitos (usar Github Actions ou TravisCI):
  • Commits/merge em qualquer branch: executar um lint do Dockerfile (validar o dockerfile)
  • Merge na branch master/: gerar build das imagens do worker, vote e result (ver a melhor estratégia de tageamento)
  • merge na branch master/: aplicar em um ambiente (pode ser GCP, AWS, Azure...) usando docker-compose: docker-compose up -d (não esquecer de baixar a última versão da imagem docker!)

Deployment by docker swarm

  1. No arquivo docker-stack.yml:
    • Apontar para as imagens personalizadas no registry
    • Adicionar limites de recursos (cpu e memoria) nos services de result, vote e worker (pesquisar por "resources": https://docs.docker.com/compose/compose-file/)
    • Para informações sensíveis, usar secrets ao invés de variáveis de ambiente

Deployment by kubernetes

TODO

Monitoramento

TODO

Alterações gerais

  • O worker existe em duas langs: dotnetcore e java, por padrão é usado dotnetcore, fazer uma versão usando java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment