A veces necesito reproducir problemas que aparecen sólo en el entorno del cliente. Podría configurar manualmente máquinas virtuales para reflejar suficientemente su entorno, pero sería muy bueno encontrar una forma semiautomática de hacerlo.
En otras palabras, estoy buscando algo que me permita decir: "Crear un entorno que ejecute esta versión de Linux, tenga instalada esta versión de PHP", etc. Entonces espero poder iniciar sesión en ese entorno y ejecutar los pasos de reproducción.
Obviamente, estos entornos tendrían una duración relativamente corta, ya que una vez que haya reproducido ese problema en particular, existe la posibilidad de que nunca más tenga que recrear el mismo entorno. Dicho esto, sería bueno si la configuración del entorno estuviera en un formato fácil de controlar, en caso de que fuera necesario nuevamente.
¿Existe alguna tecnología adecuada para este tipo de caso de uso?
Cosas que he oído que pueden ser relevantes.
- Proxmox (parece excesivo e insuficiente por sí solo)
- Vagrant (podría ser insuficiente por sí solo, también podría necesitar gestión de configuración como Ansible)
- Docker (comúnmente utilizado para ejecutar aplicaciones individuales, no para recrear entornos completos del sistema operativo)
¿Alguno de estos se adapta bien a este caso de uso? ¿Debería buscar otras opciones?
Respuesta1
He usado Docker para prácticamente esto en el pasado y funcionó perfectamente. Le recomendaría que lo investigue, pero será mejor que haga esa pregunta en StackExchange de recomendación de software.
Respuesta2
Terminé eligiendo Vagrant, después de haber aprendido que también puede aprovisionar la máquina mediante scripts de shell:https://www.vagrantup.com/intro/getting-started/provisioning.html
Esta parece ser la forma más sencilla de lograr lo que quiero: configurar rápidamente un entorno temporal específico separado del mío, con una configuración simple basada en texto que puede controlarse por versión.