GIT y FTP - Pipelines para Publicar y controlar código
OK, lo admito, soy un programador formado a la antigua, tengo muy malos hábitos y necesito modernizarme para resolver problemas serios. Mi metodología no es escalable ni sustentable. No puedo seguir modificando código "ad libitum" y peor aún, directo en el servidor.
Aún no platicaré sobre como hacer lo que voy a hacer usando frameworks tales como Coldbox y Commandbox, voy en su lugar a reemplazar mi proceso actual de editar código directo en el servidor, que hoy acostumbro hacer con FTP para primero pasarlo por GIT en gitHub y luego automatizar la publicación para que al haber actualizaciones al repositorio, se suba el código al servidor.
Con lo anterior resuelvo un problema fundamental - el tener un control de versiones práctico donde no deba ni pueda cambiar cosas sin saber que se hizo, donde se hizo, como se hizo, quien lo hizo, etc. Esto da una capacidad intrinseca de revertir errores, sumar desarrolladores, tener seguridad y sobre todo de tener un respaldo de código versionado y sincronizado con producción.
Este articulo lo escribo justo después de ver un maratón de videos sobre GIT, GITHUB, GITHUB Actions, CI/CD y CommandBox. Quiero confesar que mientras los veía lloraba de felicidad por finalmente comenzar a entender este mundo tan complejo del Devops que en realidad puede ser simple.
Desde ya empezaré a establecer este "Pipeline" para todos mis desarrollos. Nunca más modificaré nada directo y sin respaldos - Ya he sufrido serias consecuencias.
La realidad es que todo lo que voy a mostrar se puede hacer sin costos adicionales, no son tareas que demanden muchos recursos por complejidad ni frecuencia. Finalmente voy a programar de forma local ya sea en mi lap o en mi desktop y en lugar de conectarme directo al FTP y orquestar versiones simplemente las descargaré de mi repositorios cuando los necesite.
Durante mi viaje de descubrimiento pensé que este tema de Devops era solo para aplicaciones corporativas con cientos de developers que publicaran a la nube y que tuvieran que crear todo tipo de instancias y controles, nada más lejos de la realidad. También aplica para un simple mortal con un proyecto personal que publica a un servidor compartido, donde ya esta instalado todo, usando simple ftp.
Con lo anterior los invito a entender el proceso de este primer paso, gradualmente iremos agregando herramientas para pruebas automáticas e incorporación de frameworks, librerías, servicios y todo lo maravilloso del mundo de integración continua y publicación continua. Entonces, empecemos con algunos conceptos -