Eu tenho um desafio divertido para todos vocês. Uma empresa com a qual estou trabalhando está configurando seu fluxo de trabalho e ambientes de desenvolvimento / lançamento. O ambiente de produção final é um VPS hospedado com um host popular que executa o CentOS em um ambiente de virtualização Virtuozzo.
Gostaríamos de instalar uma instância virtualizada do ambiente de produção (ou algo próximo a ela) no sistema local de cada desenvolvedor. Isso permitirá que cada desenvolvedor teste as alterações localmente em seu próprio sistema sem corromper o sistema de outra pessoa quando as coisas derem errado.
Claramente, existem muitas maneiras de fazer isso, mas imagino que exista uma abordagem específica que seja superior. É aqui que preciso da sua ajuda.
Até agora, as melhores opções parecem ser as seguintes.
Exportar / fazer backup da Virtuozzo VM. Faça o download para um sistema local e instale-o em um contêiner Virtuozzo.
Esta é a solução mais limpa / pura, mas pode não funcionar. A VM clonada ainda teria toda a configuração de rede da rede do VPS, por exemplo. Seria difícil escrever um script para atualizar esses (e quaisquer outros valores de configuração antigos) para que eles sejam mais apropriados para a VM local?
Implemente a base de código em uma VM configurada de forma semelhante criada em um produto de virtualização arbitrário.
Essa abordagem não é tão limpa, mas sei que pode funcionar (já fiz isso antes). Por exemplo, poderíamos instalar a mesma versão do CentOS, Apache, MySQL, etc. em uma VM VMWare local. O ambiente não seria idêntico ao ambiente de produção, mas pode estar próximo o suficiente para tornar esse fluxo de trabalho viável.
Outra opção?
Quais outras opções você acha que pode haver? Ou, uma dessas opções é a melhor? Eu adoraria ouvir seus pensamentos! :)
Editar:
Várias contas de cPanel / usuário no servidor de produção
Entrei em contato com o suporte ao cliente do VPS para ver se conseguia obter acesso aos backups do Virtuozzo; ele negou nossa solicitação, mas sugeriu que pudéssemos tentar criar uma conta cPanel / user separada para cada desenvolvedor. Isso permitiria que o ambiente fosse idêntico ao do servidor, mas seria um pouco mais inconveniente, já que o ambiente ainda estaria sendo executado remotamente, em vez de localmente. Ainda assim, uma opção decente.