En primer lugar, pido disculpas por el gran tamaño de esta pregunta como estoy seguro de lo que estoy proponiendo es un "gran problema" en cuanto a la implementación y probablemente podría ser tres o cuatro preguntas separadas en sí mismo. No preguntaría si no necesitaba desesperadamente ayuda.Una estrategia de control Git Fuente para un sitio web en vivo Sitecore
Se me ha dado la tarea monumental de la revisión de los procedimientos de gestión de riesgos de mi empresa en lo que respecta a nuestro trabajo en línea.
Al tomar ninguna copia de seguridad, ni protegemos nuestros datos que he decidido que, al igual que cualquier persona involucrada en la programación profesional ya debería estar haciendo, nos vamos a proteger nuestro trabajo a través de control de código fuente. Actualmente lo hago a nivel local con Git, pero otros no usan control de fuente y finalmente perdemos muchos de los beneficios que ofrece el control de fuente. Preferiría que tuviéramos un sistema en el que todos usen Git y que haga cumplir la regla de que si no está en control de fuente, no se queda. Obviamente, vamos a necesitar un plan de respaldo, pero como desarrollador, supongo que lo primero que debe hacer es ordenar el aspecto de codificación antes de ordenar una solución de respaldo; obviamente, cualquier consejo sobre eso es más que bienvenido. .
corremos un sitio web ASP.NET con un servidor SQL 2005 back-end, corriendo Sitecore como nuestro CMS de elección. En un mundo ideal, me gustaría tener todas las partes cambiantes de este sitio CMS bajo el control de la fuente, incluida la base de datos.
Por el momento, y sé que esto no es la mejor idea, corro una solución para todas sublayouts construidas en Sitecore. Esto está bajo el control de la fuente y gracias a Git he podido agregar ramas e insertar nuevas características y corregir errores fácilmente (usando Git-flow como mi solución de flujo de trabajo). Todavía soy bastante nuevo en Git, así que no he manejado nada demasiado complejo fuera de comprometerme, ignorando ciertos archivos, etc.
Además de esto, también me gustaría usar el control de fuente para obtener la base de datos contenidos bajo control de fuente. Según tengo entendido, puede serializar elementos de contenido de Sitecore como un árbol enorme dentro del sistema de archivos (¿se guardan como archivos .item si no recuerdo mal?). Si esta es la solución ideal, también me gustaría agregarlos al control de fuente, aunque no sé exactamente dónde se guardarían en el sistema de archivos. Mi sistema de archivos en este momento es la siguiente:
- Data (Logs, indexes, etc - is this needed to be in source control?)
- Source (Helper files, although occasionally modified)
- Website (Containing all the files I edit, and other essential Sitecore stuff)
Como ya se ha mencionado mi repositorio actual solo está en mi sistema, y consiste en una carpeta única solución con un montón de Ascx, .ascx.cs, Ascx .cs.designer y el archivo .aspx impar o dos. Esto tiende a hacer la vida más fácil al subir como, al igual que con el
Lo que me gusta de entrada en es una forma ideal de gestión de este para todos los desarrolladores. A pesar de usar un DVCS, preferiría tener el servidor en vivo como el repositorio principal y para que todos los desarrolladores lo empujen y lo atraigan, y entre ellos. Usaremos el git-flow workflow solution ya que se ajusta muy bien a nuestra forma de desarrollo. Lo que me preocupa, obviamente, es configurarlo correctamente sin destruir lo que actualmente es un sitio muy caro y de alto tráfico en un servidor sin respaldo.
Sugerencias y consejos sobre la cantidad de datos del servidor que se deben pegar en el repositorio, orientación sobre cómo manejar los datos serializados en Sitecore y, potencialmente, cómo utilizar el control de origen como una forma de realizar copias de seguridad repositorio sería bienvenido. Esta es la primera vez que tengo que crear un sistema de control de fuente/flujo de trabajo para un sitio web en vivo, por lo que cualquier orientación y consejo sobre lo que sería lo mejor para mí sería muy apreciada.
EDIT: Voy a poner una recompensa por este para tratar de obtener más guías sobre cómo las personas manejan Sitecore con Git.
Para aclararme a mí mismo, NO estoy buscando una manera de hacer una copia de seguridad de mi trabajo, sino una forma de que un número de desarrolladores pueda trabajar en él y asegurar que el código en el sitio web esté actualizado con un repositorio central . Por ejemplo, he mencionado antes que usaré git-flow para administrar mi flujo de trabajo. El repositorio de origen existirá en un servidor compartido (que a su debido tiempo probablemente será un entorno de prueba), y todos los desarrolladores tendrán clones de eso para trabajar y para presionar. Desde aquí, deseo poder enviar cambios desde el repositorio de origen en la unidad compartida al servidor activo y viceversa si se encuentran errores. También me gustaría incluir elementos de contenido serializado en mi repositorio.
Eso estaría bien. Lamentablemente, solo tenemos la licencia para ejecutar una copia única de Sitecore, y eso se está ejecutando en el sitio en vivo, por lo que no podemos ejecutar uno para fines de desarrollo/prueba. Es la peor manera posible de hacer las cosas, pero sin gastar mucho dinero nuestras manos aparentemente están atadas. – AlexT
@AlexT: Heya. Por favor revisa mi respuesta revisada. – ralphtheninja
Gracias por la respuesta. Me gusta la idea de lo que estás sugiriendo, y es algo que definitivamente examinaré. Sin embargo, con respecto al repositorio en sí, ¿merece la pena pegar todo el CMS, con contenido serializado en el repositorio, o solo agregar los archivos que es probable que cambien? – AlexT