Por qué y cuándo usar Git para desplegar un proyecto web (y no el FTP)
Aunque tradicionalmente siempre se ha utilizado el FTP para enviar los archivos a nuestros servidores y que estén online, puede que la agilidad y fiabilidad de Git, la conocida aplicación de control de versiones, nos convenza para realizar todas las tareas de despliegue de proyectos web, aunque requeriremos permisos de administración sobre el servidor y ciertos conocimientos técnicos. En este artículo, te explicamos las ventajas de utilizar Git en comparación con el tradicional FTP y, próximamente, publicaremos un tutorial sobre cómo llevarlo a la práctica. Antes de entrar en materia, comencemos por aclarar algunos conceptos iniciales:
- El despliegue de un proyecto es la acción por la que los archivos se ponen a disposición general del público, en el servidor donde van a estar disponibles para ser consultados por los usuarios finales.
- FTP es el protocolo más básico para la transferencia de ficheros hacia o desde servidores. Es el mecanismo más habitual para enviar los archivos de un sitio web que queremos hacer disponible en un espacio de alojamiento.
- Por su parte, Git es un sistema para el control de versiones del código. Aunque está ideado inicialmente para mantener los distintos estados por los que han pasado el código de cada uno de los archivos de un proyecto, podemos usarlo también para realizar operativas como el despliegue de proyectos.
Despliegue con FTP
Tradicionalmente, los sitios más sencillos se despliegan usando FTP, debido a que esta es la herramienta que también está disponible en los servicios de alojamiento básicos. No hay problema en usar FTP y probablemente funcionará satisfactoriamente en muchos casos, pero cuando la cosa se complica y el proyecto comienza a crecer, podemos ver algunos inconvenientes:
- Velocidad. El FTP suele ser lento, porque tiene que subir los archivos uno a uno. No es que tengamos que hacerlo manualmente uno a uno, puede que solo hayamos tenido que arrastrar una carpeta, pero el proceso de subida sí que se hace unitariamente, lo que suele requerir cierto tiempo.
- Fiabilidad. Si las conexiones FTP tienen problemas, muchas veces algunos archivos se ven afectados. Pueden ser pocos o muchos, pero es común que sea difícil saber cuáles eran y, en el mejor de los casos, requiere acciones manuales para poder restaurarlos.
- Seguimiento. Cuando se introducen cambios en un proyecto es complicado saber qué se debe subir al servidor y qué no. Lo que puede provocar que sea necesario actualizar el proyecto entero, con el peligro de sustituir archivos o carpetas que estén más actualizados en el servidor remoto.
Puede ser fácil mantener proyectos de pocos archivos con un despliegue basado en FTP, pero si los sitios se complican es difícil saber si realmente han subido todo correctamente, si no nos hemos olvidado nada o introducido cambios no deseados en el proyecto.
Despliegue con Git
Cuando tenemos sitios o aplicaciones más grandes es muy recomendable usar otras herramientas para el despliegue. El siguiente paso a FTP puede ser Git, que cuenta con un sistema completamente automatizado de despliegue y es capaz de garantizar que el proyecto que se está subiendo se encuentra en el servidor remoto exactamente como debería.
- Velocidad. El proceso de subida es muy rápido y la operativa muy sencilla, un solo comando de consola.
- Fiabilidad. Podemos confiar perfectamente en que los archivos del proyecto se han modificado perfectamente y que tienen exactamente el mismo contenido que debería. No existe la posibilidad que suban unos archivos y otros no.
- Seguimiento. No necesitamos preocuparnos de qué archivos se han modificado y cuáles no, ya que el propio Git es especialista en eso y subirá todo aquello que sea necesario.
Cuándo podemos utilizar e Git
Como se puede ver, prácticamente todos los puntos débiles de FTP se traducen en ventajas al usar Git. Sin embargo, se necesita acceso a la interfaz de línea de comandos del servidor, algo que no es posible es los servicios de hosting compartido, además de dominar el propio Git (encontrarás tutoriales prácticos sobre Git en este mismo blog). Sí podremos optar por Git en aquellos servicios avanzados, como VPS, Servidores Cloud y Dedicados. en los que podemos acceder al servidor por SSH para ejecutar cualquier comando de administración, entre los que se incluye el trabajo con Git.
Muchas veces, el uso de Git es suficiente para considerar un alojamiento más avanzado, requiriendo a día de hoy una inversión también bastante ajustada. Pero además, de un VPS hacia adelante, aunque nos requerirá de ciertos conocimientos técnicos de administración de sistemas, también podremos utilizar muchas otras herramientas como gestores de dependencias, la instalación de software a medida, la configuración personalizada de la seguridad o la personalización y optimización del servidor, entre muchas otras ventajas.
En las próximas semanas, publicaremos un tutorial práctico en el que explicaremos cómo desplegar un proyecto web con Git. ¡Permanece atento a nuestro blog!