ВВЕДЕНИЕ
Nuestro Repositorio de Código Tiene Más de 6 Años, Cada Mes Agregamos más de 2000 Commits al Repositorio, Por cierto es un solo proyecto, y daré una charla en el SG Live Conference de nuestro monolito en php … y ese pues es tema de otro blog.
En ese в блоге Post Intentaré Recapitular Algunas de Las Experiancias y Lecciones aprendidas por las que hemos pasado En Estos 6 Años de Desarrollo de Software Usando Git.
Mi Diffo De Desarrollo Está Ubicado En México, En La Bella Ciudad de Santiago de Querétaro, Yo Soy Chilango, Pero He Advatado a Querétaro Como Mi Nuevo Hogar, Tanto Que aquity nació nuestra hija, Quien tiene toda atencin.
Este Blog Post Recuerda algunas de las Cosas Que Hicimos Cuando estuvimos demasiado tiempo enfocados en las funcionalidades y operación, y adquirimos moada deuda técnica.
Иницио
Настройка :
- 🧍dev: 5.
- 🗓 Выпустите Prod: 1 Vez Al Mes.
- 🗺 Estrategia de Git: Ninguna, Todo A
Мастер
(Ahora se Dicemain
).
Inicialmente el Выпуск Condistía en:
- En una máquina local, hacer checkout de
Мастер
Анкет - CREAR UNA COPIA DEL PROYECTO ACUAL EN PROD, COMO RESPALDO.
- Subir el Código por ftp al servidor de prod (Prifyción).
- Ejecutar sql scripts en prod server.
- Боррарский кеш.
El Proceso de Subir El Código Tardaba Deviendo del Ancho de Banda Que tuviéramos al mompono, y confiábamos en el cliente ftp remplazará todos los archivos oproperiates.
Проблемы Comunes:
- Algún script no se ejecutaba en prod y teníamos que ejecutarlo мано.
- El Sistema Tardaba Varios Minutos en estar.
- Faltaban Cambios en
Мастер
Debido a que alguien olvidaba hacer un commit, y en local funcionaba, Hacía el commit-push y solo subíamos ese archivo faltante a prod.
Проблемы с эстосом по апектарону Poco a nuestros usuarios porque al darnos cuenta de ellos, hacemos el lepred durante las noches o en fines de semana, que es es o cuando no teníamos tráfico.
Mitigación проблемы
- Выпустить Durante La Noche, O Fines de Semana.
- Generábamos Archivos Copartidos para tener los sql scripts a la mano durante el proceso de.
V 1.0
Креот важный mencionar que tanto en la etapa передний комол, esta usábamos gitlab, самостоятельный, капельница digrogy degul, las Actualizaciones de linux y de gitlab nos Quitaban tiempo, Veces Digital Ocean Tenia, Nuestro Repositorio no eraababababababababable.
Настройка :
- 🧍dev: 10.
- 🧍QA: 2.
- 🗓 Выпустите Prod: Када 15 Диас.
- 🗺 Estrategia de Git: Branch Por Nombre de включает в себя Después слияние
Мастер
Анкет
Para Poder Percar Las Cosas Más Seguido ahora teníamos 2 Ambientes, Uno de Develop, Uno de постановка (Pre-Producción) y el de uefridción. Разработка Mucals Veces Literal Subíamos desde Nuestros Equipos Locees, en ensing subíamos el Мастер
Que Estábamos Preparando Para El. ESE Мастер
Ya Tenía Cambios Preparados.
Si Ocurría un error en prod, Veces Bajábamos erackivos, Los Editábamos y Subíamos Decitamente, Porque Nuestro мастер
я Нет эпохи Лимпио.
Проблемы Comunes:
- Faltaban Cambios en
Мастер
Debido a que alguien olvidaba hacer un commit, y en algún ambiente si funcionaba, hacía el commit-push y solo subíamos eshivo faltante a prod. - El Server de las Aplicaciones de разработайте, когда вы ставили Eran El Mismo, Y A Veces Se Subía El Código A Uno en lugar de al otro.
- Veces Los Scripts de SQL Eran ejecutados en anmbiente Inforcecto, № autosaboteabamos sin Querer.
V 2.0
Abandonamos gitlab en nuestro propio servidor, teníamos roops de espacio de disco duro, y a veces el mismo server se agotaba en recursos de ram cuando éramos mucos usándolo. Decidimos Contratar Bitbucket porque ya teníamos toda la suite de atussian y pues era más fácil agregarlo a la factura.
Настройка :
- 🧍dev: 20.
- 🧍QA: 5.
- 🗓 Выпустите Prod: CADA 1 O 2 СЕР.
- 🗺 Estrategia de Git: Gitflow Workflow.
Decidimos usar el Gitflow Workflow ahora si ya podíamos mantener Мастер
Limpia, Y Sin Cambios para un Release, y creábamos ramas de выпуски.
Teníamos un Release Grande Al Mes, Y USábamos Nomenclatura Como 2.1
, y выпускает Intermedios en donde a Veces se iba uno o dos исправления ошибок 2.1.1
, en jira , las tareas y épicas las tailábamos por número de Release, Así Podíamos Ir Identificando el alcance de lo que íbamos a lograr liberar.
USábamos Tags de lo Planeado, против Lo Liberado, La Verdad es Que el Proceso Era Engorroso, Me Sentía Hablando en Clave, Diciendo V.3.14.16
y cosas Насколько я. En Cada Release Siempre Quedaban Osas Pendientes de Liberar.
Ahora Teníamos Como 5 Ambientes de Develop, en donde subíamos las ramas de los показывает Para Que los analistas qa pudieran hacer pruebas previo su merge a la rama del relessure courceleiente.
Проблемы Comunes:
- EL CONTROL DE SCRIPTS DE SQL POR VERSION DE ERA ERA COMPLEJO.
- Veces teníamos tantas ramas de verseres abiertas, que era muy complejo pensar en un revert.
Пауса
Hasta Este Punto, Algo Que Normalmente terminábamos haciendo es que después de cada relerie Para asegurarnos Que no habíamos roto nada. ESE PROCESO NOS LLEVABA Normalmente Unas 2 O 4 HORAS.
Nuestro sistema ya tenía más de 30 O 40 Módulos, y nos enfocábamos a los 10 más usados, y lo demás le echábamos la bendición, de Vez en cuando rompíamos algo de otro módulo y tardábamos algo en darnos cuenta de otro módulo y tardábamos algo en darnos.
ERA CADA ERA ON PROCESO PESADO, EN DONDE LOS QUE APORTABAN Código y Los Analistas de Qa Debían de Estar Al Pendiente de Que Todo Hubiera Sido Essitoso.
Todos Los развертывает Eran Usando FTP.
V 3.0
Настройка :
- 🧍dev: 30 ~.
- 🧍QA: 10.
- 🗓 Выпустите Prod: 1-10 Veces Al Día.
- 🗺 Estrategia de Git: GIT функция филиала Workflow Анкет
Decidimos dejar de usar ftp, y empezamos a Programar Pipelines en Bitbucket, Que Hicieran El Deploy (выпуск) A Ambientes que desearemos, Eso le dio tiempo a los líderes técnicos Que Eran Quienes numbermente Deployaban DEVELIENDO DE LAS NECESIDADES DE SUS DEVS, ESTO AYUDO A QUE SE PUNERAN ENFOCAR Más En La Calidad del Código y de los.
Además iniciamos el proceso de agregar pruebas Automatizadas Al Proyecto, Unitarias, Funcionales y de selenium. Así antes de Hacer el развернуть SE PODía Validar Si El Proyecto seguya funcionando reforramente.
Los SQL Scripts Dejaron de estar en un archivo compartido, ahora se ejecutaban a través de Миграции que las ejecutaban en el server cropersye al hacer el развернуть Анкет
Cada Que se validaba un функция o un bug, se hace rebase, se hace слияние
A Мастер
y se ejecuta el выпустить продюсер.
Cuando trabajamos conserses y выпускает эпоху Más común Que intentáramos unprimar un proceso de sprints de scrum, ahora con los procesos más sueltos, un tablero kanban en jira nos pomtry llevar mejor control de las tareas que se están acercando aberarse -in.
El Tema de Las Metodologías es Para Otro Blog Post.
Серре
Espero Que Este Post Blog Motive A Más Líderes Técnicos de Latam. CO -CO -COMPARTIR SUS LECCIONES APRENDIDAS COMUNIDADES QUE ESTán Avidas de Conocimiento, Como decía (Osvaldo) [ https://twitter.com/omercadocoss ] en su сообщение , y como decía Висенте en nuestro подкаст , Los Líderes debemos ser más humildes en compartir nuestras experiancias, y pienso que dejarlas escritas ayuda a que más personas las incuentren.
Оригинал: «https://dev.to/marianorenteria/lecciones-aprendidas-usando-git-y-liberando-codigo-18mi»