Se considera una mejor práctica construirlo en otro lugar y luego implementarlo en producción. Hay algunas buenas razones para esto:
- El proceso de construcción generalmente tiene dependencias adicionales que no son necesarias en la producción. En algunos casos, esas dependencias son vectores de ciberataques.
- El proceso de compilación tiene un perfil de recursos (CPU, memoria, disco, etc.) diferente que un servidor de producción. Puede ser más rentable tener diferentes máquinas sintonizadas para cada proceso.
- Es posible que tenga varios entornos: desarrollo, prueba, puesta en escena, etc. Si construyo la aplicación y la guardo en algún lugar, puedo asegurarme de que se implementen exactamente los mismos artefactos en cada entorno. De esa manera sé que lo que estoy probando es lo mismo que puse en producción. Si lo compilo en el servidor, entonces tengo que asegurarme de que el entorno de compilación en cada máquina sea el mismo, y eso agrega una complejidad innecesaria.
- Construir en producción significa que el proceso de implementación lleva más tiempo y eso significa más tiempo de inactividad (a menos que esté haciendo azul-verde).