Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Porque utilizar o Docker? (Duvida um pouco mais de tomada de decisão do que técnica)

Olá, estou com uma duvida bem grande em porque, e como eu poderia utilizar...

Meu ambiente la na empresa é da seguinte forma. Trabalhamos com Ruby on Rails, a aplicação é feito deploy manualmente, temos um CI, e somos uma equipe de 8 pessoa...

Nesta ultima semana, um cliente pediu para subir uma nova maquina virtual, porque se negava a ter o serviço de hospedagem fora do Brasil, e esta nova máquina acabou dando bastante dor de cabeça, pois teve que se criar um ambiente do zero, e reconfigurá-lo (nisso alguns serviços faltaram e deu uma seria de problemas de ambiente...).

Estou com algumas dúvidas a respeito de hospedagem Como vai funcionar o git ou esquema de versionamento? Seria viável tentar utilizar o docker neste cenário? Seria interessante contratar outra máquina para testar o serviço? Por onde posso começar?

2 respostas
solução!

Olá André!

Recentemente topei com um artigo muito interessante sobre situações práticas para aplicar Docker. Talvez possa lhe trazer alguma luz:

http://blogs.gartner.com/richard-watson/ok-get-dockers-great/

:)

Fala André blz?

Cara eu creio que o cenário da sua aplicação é ideal para dockerizar. Você tem um setup complexo com alguns serviços dependentes o que dificulta a reprodução. Nesse caso é onde docker brilha.

A parte de deploy vai depender da abordagem que você vai utilizar para geração da imagem.

Por exemplo, a imagem da aplicação pode levar dentro dela a própria aplicação, no seu local adequado e o CMD ou ENTRYPOINT simplesmente roda a aplicação. Dessa forma você tem um container auto contido. Nessa abordagem se você utilizar alguma ferramenta para automatizar o deploy (CI) você pode gerar uma nova versão da imagem a cada release.

Uma outra abordagem seria criar uma imagem e deixar o diretório da aplicação exposto para ser mapeado, dessa forma você só precisa mapear onde está a aplicação no host e o CMD/ENTRYPOINT só rodam ela. Dessa forma você teria uma única versão do container e ficaria a cargo de quem for rodar o container mapear a aplicação para que o container consiga subir.

Obviamente que para ambas as abordagens funcionar os outros containers com os serviços que a aplicação dependa também devem estar rodando, mas aí já entra em orquestração de containers (uma solução que a galera tem usado muito fortemente no mercado é o Kubernates para fazer essa orquestração talvez valia a pena dar uma conferida).

Não entendi muito bem sua dúvida com relação ao versionamento, pode me explicar melhor?