Não sei bem quais são as suas perguntas reais. Sua pergunta geral é bastante vaga. Você tem três perguntas principais aqui a partir do que eu posso reunir:
- Onde devo começar a obter minha própria infraestrutura de PaaS escalável?
- O Passenger é algo que eu deveria estar considerando?
- O Docker é algo que eu deveria estar considerando?
Respondo primeiro ao número 3, já que é mais fácil. A resposta é sim. Se você vai construir algo novo, o Docker ajudará você a entrar em um mundo mais portátil, o que, por sua vez, o ajudará a alcançar um ponto mais escalável. Seus webapps herdados seriam executados como seus próprios contêineres, com seus próprios conjuntos de dependências e, portanto, se tornariam mais portáveis.
A resposta para o número 2 soa mais dependente do Ruby e dos aplicativos Ruby em geral. Você pode executar o passageiro? Talvez ... Isso parece mais dependente de como o aplicativo foi escrito e com quais servidores ele pode ser compatível. No entanto, parece que o Phusion está fazendo avanços para ser muito amigável ao Docker. As imagens do Docker têm especificamente em torno da execução de aplicativos Ruby, Python e Node.js, pelo menos - link .
Minha resposta para o número 1 seria começar colocando em containers aplicativos legados. Torne os aplicativos mais compatíveis com fator doze ( link ) se eles ainda não estiverem. Torne-os mais orientados para o serviço. Em vez de executar coisas como MySQL, Redis, Apache, PHP-FPM, etc. em um contêiner, separe-os em diferentes serviços que se conectam entre TCP e HTTP (os links do Docker seriam um ótimo ponto de partida para isso - link ).
Ao levar seus aplicativos a um ponto em que eles são executados em seu próprio contêiner, usam serviços externos que podem ser executados em qualquer lugar e podem ser versionados com uma configuração de trabalho padrão (uma versão), você está se aproximando de um mundo onde pode então começar a escrever agendamento, descoberta de serviço e implantação de scripts.
Se você ainda não o fez, confira coisas que surgem um pouco antes de um Docker PaaS completo, como link ou link . Algo parecido com isso lhe dá um agendamento em torno de seus próprios contêineres / unidades, em vez de realmente construir seus contêineres de aplicativos para você. Para aprender no desenvolvimento, você pode usar algo como link ou link . Ótimo para testar seus novos contêineres orientados a serviços localmente.
Para mais ferramentas em torno do Docker, fique de olho no link . A resposta principal tem uma boa visão geral do que está atualmente fora deles e o autor o mantém atualizado razoavelmente bem.