Queremos configurar um serviço de integração contínua (CI) para o nosso projeto. Esse serviço de IC deve controlar todos os aspectos da vida do projeto, incluindo a implantação.
Ou seja, queremos que um agente de IC em cada iteração adote um sistema limpo (especificamente o Ubuntu Server), implante nosso projeto lá e execute testes.
Provavelmente, nós mesmos escreveríamos o serviço de IC, do zero, pois nosso ecossistema é bastante incomum. A questão é: como fornecer efetivamente um sistema de ardósia limpo para cada iteração de IC?
A implantação do projeto instala alguns pacotes Debian, configura vários sites nginx e também instala alguns pacotes em um gerenciador de pacotes específico da linguagem de implementação (LuaRocks), em todo o sistema. Nada mais intrusivo do que isso (acredito). Portanto, é mais importante poder configurar uma lista limpa rapidamente (dentro de um minuto em hardware moderno, mais rápido - melhor) do que garantir isolamento e limpeza absolutos.
Vejo duas maneiras de fazer o que precisamos:
- Configure uma prisão de algum tipo (como lxc, talvez).
- Ou instale uma máquina virtual que possa fazer instantâneos e usá-los.
Mas, neste momento, não tenho informações suficientes para decidir.
O que você recomendaria? Alguma outra opção? Algum nome de ferramenta específico?
Nota: O serviço de IC seria executado dentro de um convidado do Citrix XenServer. As soluções pagas são aceitáveis se os preços forem razoáveis. (Geralmente, eles não são razoáveis nesse campo.) As soluções de IC remoto não estão OK.