Estoy trabajando en una aplicación web que se ejecuta en la pila LAMP (Linux Apache Mysql PHP) y me gustaría recibir recomendaciones para mejorar mi flujo de trabajo.¿Cómo puedo mejorar mi estrategia de desarrollo e implementación?
tengo 3 ambientes:
- mi máquina local AKA mi desarrollo ambiente
- Un puesta en escena cuenta en mi servidor dedicado para que pueda probar la aplicación web
- Una producción cuenta en mi servidor dedicado
Hago todo el desarrollo en mi computadora local y uso un servidor de subversión que se encuentra en mi servidor dedicado. Configuré un script de gancho para que cada vez que me comprometa, mi cuenta de "preparación" se actualice con el nuevo código.
De vez en cuando me aseguro de que todo funcione bien en la cuenta provisional y envío los cambios a mi cuenta de producción mediante un pequeño script.
Esto funciona bastante bien en su mayor parte, pero hay un par de irritaciones:
Mi nombre de dominio está codificado en un par de lugares, por lo que es mucho tiempo para cambiar entre entornos . Puedo modificar el archivo de mi host de forma manual, pero no es exactamente rápido y no funciona para las 2 cuentas (prod/staging) en el mismo servidor.
No tengo forma de mantener la base de datos actualizada en los tres entornos. Podría usar la misma base de datos para todos los entornos, pero tendría que correr el riesgo de romper el entorno de producción.
Entonces, mi pregunta es: ¿qué podría hacer para mitigar estos problemas?
ACTUALIZACIÓN: El problema del dominio codificado es introducido por un software de terceros y, por lo tanto, "no codificarlo duro" no es una opción en este momento.
Olivier: He editado su pregunta para intentar que sea más específica. SO no es un foro, y tiende a funcionar mal para "¿algún comentario sobre esto?" preguntas; Creo que hizo un buen trabajo al identificar problemas específicos en su párrafo final, y por eso intenté enfatizarlos (también alterando el enfoque del título de una solicitud de anécdotas) – Shog9
¿Alguien puede decirme por favor cuál es la convención general y el significado? asociado con dev, stg y prod. Parece que estoy confundido acerca de su significado (o parece que he estado usando la convención/semántica que no están en sintonía con lo que otros están usando). Gracias –
Creo que esta es la convención habitual: Dev: medio ambiente para los desarrolladores Puesta en escena: medio ambiente para la garantía de calidad (antes de empujar cambios a prod) Producción: entorno público –