Eu tenho um aplicativo da Web relativamente simples que consiste em dois contêineres do Docker trabalhando juntos. Um contêiner hospeda o servidor da web e o outro hospeda um software de renderização de imagem.
Na minha máquina de desenvolvimento, ele funciona perfeitamente usando docker-compose
.
Para produção, este aplicativo fará uso do Amazon SES e de alguns bancos de dados como Amazon DynamoDB . Nessa combinação, os containers em si não precisam de nenhum armazenamento persistente. Por causa desses serviços, meu primeiro pensamento é obviamente usar o Amazon EC2 para hospedar o aplicativo.
Meus principais objetivos agora são:
- certifique-se de que o aplicativo seja dimensionado automaticamente quando o site estiver sob carga pesada (exigindo um balanceador de carga, é claro)
- implantação simples de novas versões de contêiner sem interrupção do serviço
- definir e esquecer o tipo de solução
No início do lançamento do site, espero que uma única instância do EC2 manipule a carga com facilidade, talvez com picos de duas ou três ocorrências do EC2 durante feriados.
A própria solução de hospedagem Docker da Amazon (com balanceador de carga e dimensionamento automático) pareceu muito promissora, mas sendo um novato da Amazon não consegui fazer essa coisa funcionar, também porque a configuração parece muito complexa e você precisa pedaços juntos.
Estou bem familiarizado com outros tipos de clusters (principalmente baseados em Proxmox), mas ainda assim o Amazon Web Services parece complexo (pelo menos o console de configuração).
Existe alguma solução alternativa que facilite isso?
Eu passei muito tempo procurando no Docker Cloud / Tutum (parece caro), Docker Swarm, Rancher e outros (a maioria deles "beta"), mas ainda estou confuso sobre o caminho a seguir.
Como você implantaria esse aplicativo?